一个窗体上有32个Label和Edit控件。它们visible的属性为False(均为隐藏)。取数据库的数据赋予Lable的Caption属性,并使之为可视,同时改变Edit的Visible的属性为可视(如果数据库中只有5条记录,那么Label和Edit从1开始只显示5个,其它的还为隐藏)。
为何在程序中label可以使现。
for i:=0 to ADOQadd.RecordCount -1 do
begin
frmComponent:= Components[i];
if frmComponent is TLabel then
begin
(frmComponent as TLabel).Visible:=True;
(frmComponent as TLabel).Caption:=Trim(ADOQadd.FieldValues['account_hz'])+':';
end;
end
而Edit就不行
frmComponent:= Components[i];
从i:=0开始就显示不出来,改为:frmComponent:= Components[33+i]后就可以,而且每打一次窗体Edit的显示顺序就发生变化(没有从Edit1顺序的把visible改为True),Label正常
为何在程序中label可以使现。
for i:=0 to ADOQadd.RecordCount -1 do
begin
frmComponent:= Components[i];
if frmComponent is TLabel then
begin
(frmComponent as TLabel).Visible:=True;
(frmComponent as TLabel).Caption:=Trim(ADOQadd.FieldValues['account_hz'])+':';
end;
end
而Edit就不行
frmComponent:= Components[i];
从i:=0开始就显示不出来,改为:frmComponent:= Components[33+i]后就可以,而且每打一次窗体Edit的显示顺序就发生变化(没有从Edit1顺序的把visible改为True),Label正常
解决方案 »
- 请教大家,如何用delphi实现不写驱动提权至ring0
- 得了运气分,散出去点分
- 请问根据自定义的函数名,按什么键可以让光标快速定位到该函数的内容语句的地方?
- 请问 Wallpaper Calendar 是如何实现在桌面显示日历和输入数据的????
- 用Animate控件来显示avi文件的问题
- 关于Ttoolbar控件在Ttoolbutton中同时显示image和caption的瓜问题
- 在delphi中该怎样对jpg图片进行一些常见的图像处理?
- 怎樣在Delphi中調用ActiveX控件(ocx)?
- 如何阻止《任务管理器》结束我的进程呀??
- 怎样实现数据记录中的某一个字段的数据更新?
- 超级强档,虽然只是一部分,但可以看出气势,推荐大家使用!
- 问个蠢问题, 得到了记录的索引值,如何选中这条记录啊
begin
if aForm.Components[i] is TEdit then
begin
TEdit(Components[i]).Enabled:=a;
end;
if aForm.Components[i] is TLabel then
begin
TLabel(Components[i]).Enabled:=a;
end;
end;
自己再个循环
或者
if aForm.Components[i] is TEdit then
就可以分开TLable和TEdit。
if aForm.Components[i] is TEdit Then 如果i=0的话,它就显示不出来,i=34+i的话就可以。
procedure TForm9.FormShow(Sender: TObject);
var
ADOQadd:TADOQuery;
ADOgwgz:TADOQuery;
frmComponent:TComponent;
i:integer;
year,month:string;
begin
ADOQadd:=TADOQuery.Create(self);
ADOgwgz:=TADOQuery.Create(self);
frmComponent:=TComponent.Create(owner);
ADOgwgz.Connection:=MainForm.ADOConnection1;
ADOQadd.Connection:=MainForm.ADOConnection1;
year:=FormatDateTime('yyyy',Now);
month:=FormatDateTime('mm',Now);
MaskEdit2.Text:=year+'年'+month+'月';
ADOQadd.Active:=False;
ADOQadd.SQL.Clear;
ADOQadd.SQL.Add('select * from '+TableName_rec+';');
ADOQadd.Prepared;
ADOQadd.Active:=True;
ADOQadd.Open;
ADOQadd.First;
E_Count:=ADOQadd.RecordCount;
for i:=0 to E_count do
begin
frmComponent:= Components[i];
if frmComponent is TEdit then
begin
(frmComponent as TEdit).Visible:=True;
(frmComponent as TEdit).Hint:=Trim(ADOQadd.FieldValues['account_colum']);
IF Trim(ADOQadd.FieldValues['account_colum'])='gwgz' Then
Begin
With ADOgwgz Do
Begin
SQL.Clear;
SQL.Add('Select post_level.level_money From post_level,worker');
SQL.Add(' Where worker.work_id="'+Temp_id+'" and post_level.post_class=worker.work_post');
SQL.Add(' And post_level.level_class=worker.work_level;');
Prepared;
Open;
End;
IF ADOgwgz.RecordCount > 0 Then
(frmComponent as TEdit).Text:=ADOgwgz.FieldValues['level_money']
Else
(frmComponent as TEdit).Text:=inttostr(i);
ADOgwgz.Close;
End
Else
(frmComponent.Components[i] as TEdit).Text:=inttostr(i);
End;
if frmComponent is TLabel then
begin
(frmComponent as TLabel).Visible:=True;
(frmComponent as TLabel).Caption:=Trim(ADOQadd.FieldValues['account_hz'])+':';
end;
ADOQadd.Next;
End;
frmComponent.Free;
end;