自定义组件问题! |
答題得分者是:Justmade
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
>>memo1.Lines [{Q一r入框]
只要你的 Property 是 TStrings / TStringList 便可 >>memo1.Font [...`用一次m字体的O框,并怎么取到次m的值]
針對 Font 而言,只要你的 Property 是 TFont 便可。 若是你的自訂 Object 想要有類似效果便要自訂 Component Editor / Property Editor 了,這是一個大題目,你在 Google 裡 Search 應可找到很多相關的專文。
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
小弟在這兒找到一個多行 Hint 的範例: http://www.undu.com/LIBS/hintprop.zip
unit HintProp; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DsgnIntf, ExtCtrls, StdCtrls, ComCtrls; type THintStringEditDialog = class(TForm) Bevel1: TBevel; LineCounter: TLabel; Memo: TRichEdit; CancelButton: TButton; OkButton: TButton; ShowPanel: TPanel; procedure MemoChange(Sender: TObject); private public end; procedure Register; implementation {$R *.DFM} procedure THintStringEditDialog.MemoChange(Sender: TObject); begin ShowPanel.Hint := Memo.Text; LineCounter.Caption := Format ('%d Lines', [Memo.Lines.Count]) end; type THintProperty = class (TStringProperty) private public procedure Edit; override; function GetAttributes: TPropertyAttributes; override; end; procedure THintProperty.Edit; begin with THintStringEditDialog.Create (Application) do try Memo.Text := GetValue; if ShowModal = mrOk then SetValue (Memo.Text) finally Free end end; function THintProperty.GetAttributes: TPropertyAttributes; begin Result := [paDialog] end; procedure Register; begin RegisterPropertyEditor (TypeInfo (string), TControl, 'Hint', THintProperty) end; end.但有一個問題, 如何執行 RegisterPropertyEditor 這行呢? 或者說如何覆蓋原有的 Hint 的 Property Editor? 謝謝. --- --<-<-<@ |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |