如何判断一个控件是否有某个属性? |
答題得分者是:wameng
|
aKnightChen@Hotmail.com
一般會員 發表:62 回覆:57 積分:23 註冊:2003-06-13 發送簡訊給我 |
相问一个,我的一个FORM里有许多控件,
我用 FOR I:=0 TO FORM1.COMPONENTCOUNT-1 DO
...FORM1.COMPONENTS[I]...
这种方法来遍历所有控件,
我想判断每个控制是否有FONT属性,如果有,则赋值。
目前我的方法是:
if (Form1.Components[i] is TEdit) then
TEdit(Form1.Components[i]).Font:=....
else if if (Form1.Components[i] is TMemo) then
...
这种方法可以实现我的要求,但太烦琐,有没有其它更好的方法判断每个控件是否有FONT属性? 望前人指点小弟一下。
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
參考一下
Uses typInfo; procedure TForm1.Button1Click(Sender: TObject); var I:integer; PropInfo :PPropInfo; FontObj :TObject; begin For I:=0 to ComponentCount -1 do begin PropInfo := GetPropInfo(Components[I].ClassInfo,'FONT'); if (PropInfo<>Nil) and (PropInfo.PropType^.Kind=tkClass) then begin FontObj := GetObjectProp(Components[I],'FONT'); if FontObj is TFont then begin TFont(FontObj).Size := 14; end; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |