property editor 的建立方式請教 |
尚未結案
|
bill534
一般會員 發表:38 回覆:51 積分:17 註冊:2007-02-22 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
一般delphi內建的資料型態,ide皆能呼叫對應的屬性編輯器
要自定特殊編輯器,需在Register程序裡用RegisterComponentEditor向IDE註冊 不知道您要做的是什麼型態的屬性編輯器? 如果有進一步的想法,提出來,讓大家幫您想想辦法 下面片斷是我根據 http://delphi.about.com/od/vclusing/a/customvcldev.htm 剛才試驗的程式碼 [code delphi] type TLineDirection = (drLeftRight, drUpDown, drTopLeftBottomRight, drTopRightBottomLeft); TMyTestControl = class(TGraphicControl) private { Private declarations } FLineDir: TLineDirection; function GetLineWidth: Integer; function GetLineColour: TColor; procedure SetLineWidth(const NewWidth: Integer); procedure SetLineColour(const NewColour: TColor); procedure SetLineDir(const NewDir: TLineDirection); protected { Protected declarations } public { Public declarations } published property Direction: TLineDirection read FLineDir write SetLineDir; property LineColour: TColor read GetLineColour write SetLineColour; property LineWidth: Integer read GetLineWidth write SetLineWidth; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TMyTestControl]); end; { TLine } function TMyTestControl.GetLineColour: TColor; begin Result := Canvas.Pen.Color; end; function TMyTestControl.GetLineWidth: Integer; begin Result := Canvas.Pen.Width; end; procedure TMyTestControl.SetLineColour(const NewColour: TColor); begin if NewColour <> Canvas.Pen.Color then begin Canvas.Pen.Color := NewColour; Invalidate; end; end; procedure TMyTestControl.SetLineDir(const NewDir: TLineDirection); begin if NewDir <> FLineDir then begin FLineDir := NewDir; Invalidate; end; end; procedure TMyTestControl.SetLineWidth(const NewWidth: Integer); begin if NewWidth <> Canvas.Pen.Width then begin Canvas.Pen.Width := NewWidth; Invalidate; // redraws the component end; end; [/code] 進一步資料吸收,請參考 http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=22211 http://www.drbob42.com/delphi/property.htm |
bill534
一般會員 發表:38 回覆:51 積分:17 註冊:2007-02-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |