排序问题(50)

  • 主题发起人 主题发起人 huxhang
  • 开始时间 开始时间
H

huxhang

Unregistered / Unconfirmed
GUEST, unregistred user!
我有12个edit控件:edit1-edit12若他的text分别为0,1,3,32,12,11,0,54,55,2,1,3(均为数字)如何让edit的text值前3位(最大值)的edit控件字体变为红色呢?如果出现前三位是 edit1.text:= 10 edit4.text:=10 edit5.text:= 10 edit11.text:= 10 , 那么以edit1,edit4,edit5,的先后为准
 
Var TmA:Array[1..12] of integer; i:word;begin tmA[1]:=strtoint(trim(edit1.text)); ... ... tmA[12]:=strtoint(trim(edit12.text)); 对TmA排序 for i:=1 to 12 do begin if a end;end;
 
如果出现前三位是 10 10 10 10 如果出现前三位是 10 10 9 9 如果出现前三位是 12 9 9 9这样的情况该如何处理,楼主没有说明白!如果不出现上述情况。简单的方法是:先把edit的名称和内容保存到数据库(先清除历史数据,本地acess就可以),然后select查询,然后吧对应的edit名称的颜色设置下就可以!vars:string;I,j,k;integer;begin 可能先要清除数据库 for i:=1 to 12 do begin s:=' insert into tt(id,nr)values('''+inttostr(i)+''', Tedit(self.FindComponent('Edit'+inttostr(i))).Text)'; dosql(amd,s);//执行sql end; s:='select top 3 * from tt order by nr desc'; opensql(quary,s); //执行查询 while not quary.eof do begin Tedit(self.FindComponent('Edit'+quary.fieldbyname('id').astring).color=clred; quary.next; end;
 
不用那么麻烦吧设置 edit 的Tag值 ,再设置一个两维数组[Tag值,edit的内容](注:数组长度要多出3个用于存放前3位最大数)for 数组 i if 数组 i>第一位 then begin 数组1= 数组i;数组2=数组1;数组3=数组2 end Else if 数组 i>第2位 then begin 数组2=数组i;数组3=数组2 end Else if 数组 i>第3位 then begin 数组3=数组2 end
 
xnnfan: 具体写出来看看啊
 
后退
顶部