設定 FontCharset (含 Form, Quickrep ...等) |
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
此篇是由 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34463 討論所引發寫作的動機.
其中 hagar 兄提供使用 RTTI 方式判斷 Object 是否有 Font property, 其實有一個更簡單(也許是吧)的方式可用.
追蹤 VCL Source code 可以發現 Font 是定義在 TControl 的 protected 區段中, 如果各位還記得我寫的 "元件設計初步(一)" (http://sun.cis.scu.edu.tw/~nms9115/articles/delphi/VclWrite/VclWrite.htm)中有說到, protected 區段的內容只有繼承的後代可以存取, 因此我們就宣告一個繼承自 TControl 的後代, 用來設定 Font 用:
TMyFontControl = class(TControl) public property Font; // 宣告改到此區段給其他人使用 end; procedure SetFontCharset(Sender: TWinControl; FontCharset: Integer = DEFAULT_CHARSET); var i: Integer; begin for i := 0 to Sender.ComponentCount-1 do begin if (Sender.Components[i] is TControl) then TMyFontControl(Sender.Components[i]).Font.Charset := FontCharset; end; end;程式碼就上面這段; 其實這個作法還有其他的應用, 就看您的想像力了...
------
將問題盡快結案也是一種禮貌! |
carloyan
一般會員 發表:35 回覆:14 積分:9 註冊:2004-05-26 發送簡訊給我 |
引言: 此篇是由 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34463 討論所引發寫作的動機. 其中 hagar 兄提供使用 RTTI 方式判斷 Object 是否有 Font property, 其實有一個更簡單(也許是吧)的方式可用. 追蹤 VCL Source code 可以發現 Font 是定義在 TControl 的 protected 區段中, 如果各位還記得我寫的 "元件設計初步(一)" (http://sun.cis.scu.edu.tw/~nms9115/articles/delphi/VclWrite/VclWrite.htm)中有說到, protected 區段的內容只有繼承的後代可以存取, 因此我們就宣告一個繼承自 TControl 的後代, 用來設定 Font 用:請問 Danny 版主 ! 可不可以翻譯成 BCB ㄚ ! 極需 ! 謝謝 !TMyFontControl = class(TControl) public property Font; // 宣告改到此區段給其他人使用 end; procedure SetFontCharset(Sender: TWinControl; FontCharset: Integer = DEFAULT_CHARSET); var i: Integer; begin for i := 0 to Sender.ComponentCount-1 do begin if (Sender.Components[i] is TControl) then TMyFontControl(Sender.Components[i]).Font.Charset := FontCharset; end; end;程式碼就上面這段; 其實這個作法還有其他的應用, 就看您的想像力了... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |