btn=class(Tshape)
Public
des:string;
id:Integer;
procedure clicked(Sender: TObject);
with cdstables do
begin
cdsTables.open;
cdsTables.First;
for i:=0 to cdsTables.RecordCount-1 do
begin
with btn.Create(self) do
begin;
ID:=cdsTables.FieldByName('ID').Asinteger;
Top:=cdsTables.FieldByName('X').AsInteger;
Left:=cdsTables.FieldByName('Y').AsInteger;
end;
END;
通过以上创建完毕后,如果当cdsTables.FieldByName('idyy').Asstring,发生变化的时候,如何能找到对应的panel,使其中对应的panel改变颜色?
谢谢@@@
Public
des:string;
id:Integer;
procedure clicked(Sender: TObject);
with cdstables do
begin
cdsTables.open;
cdsTables.First;
for i:=0 to cdsTables.RecordCount-1 do
begin
with btn.Create(self) do
begin;
ID:=cdsTables.FieldByName('ID').Asinteger;
Top:=cdsTables.FieldByName('X').AsInteger;
Left:=cdsTables.FieldByName('Y').AsInteger;
end;
END;
通过以上创建完毕后,如果当cdsTables.FieldByName('idyy').Asstring,发生变化的时候,如何能找到对应的panel,使其中对应的panel改变颜色?
谢谢@@@
btn=class(Tshape)
Public
des:string;
id:Integer;
procedure clicked(Sender: TObject);
例如定义动态数组
var
btnAry : array of btn
with cdstables do
begin
cdsTables.open;
cdsTables.First;
//给动态数组分配大小,下标从0..cdsTables.RecordCount-1
setlength(btnAry,cdsTables.RecordCount );
for i:=0 to cdsTables.RecordCount-1 do
begin
btnary[i] := btn.create(nil)
with btnary[i] do
begin;
ID:=cdsTables.FieldByName('ID').Asinteger;
Top:=cdsTables.FieldByName('X').AsInteger;
Left:=cdsTables.FieldByName('Y').AsInteger;
end;
END; 历遍的时候,就可以直接根据数组下标来历遍了