將所有元件中, 有 Caption 這屬性的元件找出來,並設定其值 |
答題得分者是:ha0009
|
Kevin@Taiwan
一般會員 發表:4 回覆:2 積分:1 註冊:2004-09-16 發送簡訊給我 |
各位高手, 請幫幫忙...
我想要在一個 Form 中, 將所有元件中, 有 Caption 這屬性的元件找出來,
並且給予設定一特定值...不知道怎麼做呢? 以下是小弟寫的...不知道有無其他方法可以做到 with (self as TForm) do begin
for i := ComponentCount - 1 downto 0 do begin
if GetPropInfo(Components[i].ClassInfo, 'Caption') <> nil then
{ 設定該 Caption 屬性為 '123' }
end;
end;
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好: caption 是 TControl 的屬性,因此你可以利用這個特性來完成。 以下範例你參考看看。 type TAccessControl = class (TControl) end; procedure SetAllCaption (Form : TForm; Const Caption : String); var idx : integer; PropInfo: PPropInfo; begin for idx := 0 to Form.ControlCount - 1 do begin TAccessControl(Form.Controls [idx]).Caption := Caption; // 註一 PropInfo := GetPropInfo(Form.Controls [idx], 'Caption'); // 註二 if PropInfo <> nil then begin SetPropValue (Form.Controls [idx], 'Caption', Caption); end; end; end; 註一 重點在宣告一個繼承自 TControl 以便藉由 TAccessControl 直接存取隱藏 在 protected 區段的宣告。但要注意的是所有繼承自 TControl 都有 Caption 這個屬性,但繼承的元件必一定會用這個屬性(沒把他宣告在 Published),例如 TMemo。 註二 跟你的範例差不多,但至少可以少跑幾次迴圈( >= > < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif"> |
Kevin@Taiwan
一般會員 發表:4 回覆:2 積分:1 註冊:2004-09-16 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |