掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自作コンポーネントのプロパティに自作の型を設定するには? (ID:17685)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
巡回する度に読ませて頂いてはいるのですが,表題と書込みの内容から, どの程度情報を提供すればいいのか判断できませんので.ヒントだけ. オブジェクトインスペクタのクリック[...部],またはダブルクリック[値部] でダイアログ等を表示するには,プロパティエディタを作成します. 例えば以下は,MyCompBという,MyTextというString型のプロパティを追加 したものです.プロパティエディタは,MyCompBReg.pasとしています. MycompB.pasのコード unit MyCompB; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TMyCompB = class(TComponent) private FMyText : String; published property MyText : String read FMyText write FMyText; end; implementation end. MyCompBReg.pasのコード unit MyCompBReg; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,DsgnIntf; type TMyTextProperty = class(TStringProperty) function GetAttributes: TPropertyAttributes; override; procedure Edit; override; end; procedure Register; implementation uses MyCompB; { TMyTextProperty } function TMyTextProperty.GetAttributes: TPropertyAttributes; begin Result:=[paDialog]; end; procedure TMyTextProperty.Edit; var S : String; begin //MyCompBからMyTextプロパティの値を受取る S:=GetStrValue; S:='MyTextプロパティの値です [ '+S+' ] '; Application.MessageBox(PChar(S),'プロパティ',MB_OK); end; // コンポーネント登録情報 procedure Register; begin RegisterComponents('Samples2',[TMyCompB]); RegisterPropertyEditor(TypeInfo(String), TMyCompB, 'MyText', TMyTextProperty); end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.