在delphi中,我要向某函数同时传递一批不同类型的控件,比如TEDIT、TButton、Tcheckbox控件,怎么传递
补充一下:我要向aaa函数传递aaa([edt1,btn1,chk1],visible,true),函数就这三个参数,怎么实现,而且第一个参数可变,要求aaa函数实现以下...
补充一下:我要向aaa函数传递aaa([edt1,btn1,chk1],visible,true),函数就这三个参数,怎么实现,而且第一个参数可变,
要求aaa函数实现以下功能:
edt1.visible :=true;
btn1.visible :=true;
chk1.visible :=true;
就是我代码中很多以下这样的赋值,我想我调用一个函数比如我要设置它的visible属性或者enbled属性,我就以aaa([edt1,btn1,chk1],visible,true)传到子函数,这样不是很方便啊,也减少代码书写啊。
edt1.Visible := True;
edt1.Enabled := True;
lbl1.Visible := True;
txtCashUnit.Visible := True;
edt2.Visible := True;
edt2.Enabled := False;
lbl2.Visible := True;
txt2.Visible := True;
chk1.Visible :=False;
ckh2.Visible := True;
cbbUnDone.Visible := False;
lblUnDone.Visible := False; 展开
要求aaa函数实现以下功能:
edt1.visible :=true;
btn1.visible :=true;
chk1.visible :=true;
就是我代码中很多以下这样的赋值,我想我调用一个函数比如我要设置它的visible属性或者enbled属性,我就以aaa([edt1,btn1,chk1],visible,true)传到子函数,这样不是很方便啊,也减少代码书写啊。
edt1.Visible := True;
edt1.Enabled := True;
lbl1.Visible := True;
txtCashUnit.Visible := True;
edt2.Visible := True;
edt2.Enabled := False;
lbl2.Visible := True;
txt2.Visible := True;
chk1.Visible :=False;
ckh2.Visible := True;
cbbUnDone.Visible := False;
lblUnDone.Visible := False; 展开
2个回答
展开全部
在函数参数表中写上(ed:Tedit;bt:Tbutton;ckbx:Tcheckbox);就行
更多追问追答
追问
可是我不仅仅是这样啊,你看我的补充
追答
你这个函数的作用(功能)是什么?
如果要对一组界面已经存在的控件的属性进行设置,直接写一个过程就行了,如果要进行动态设置,比如有时候需要这些组件不显示,有时候又要它显示,有时候要全部显示,有时候要部分显示,那就根据需要写几个过程,然后在根据需要调用这些过程。不需要传递什么参数的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数原型就应该是 AAA(OBJCT : TOBJECTLIST;PROPERTY : STRING ;VALUE:STRING);
然后根据rtti判断每个OBJECT时候有PROPERTY这个属性,然后再设置值
然后根据rtti判断每个OBJECT时候有PROPERTY这个属性,然后再设置值
追问
问题是我要同时传递三个不同类型的控件,你这样怎么实现呢,能说的具体一点不,或者给我个例子,谢谢哦
追答
行不通吧
这等于将语句这样写:
btn1.‘visible’ :=‘true’;
这不报错吗?
我从来都没有说直接用btn1.‘visible’ :=‘true’;这样直接赋值
而是根据rtti判断每个OBJECT的TRttiPropertys有没有PROPERTY这个属性
直接用TRttiPropertys[i].value来赋值就可以了的呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询