掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
カスタムコントロール:独自イベントを作成するには? (ID:21600)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いまいち方向性がわかりませんが、メッセージなんて使わなくても(たぶん)希望の動作は実現できるでしょう。 一応、自分が書くなら、こうなるのをコピペします。 コンパイルしていないので、多少のミスは多めに見てください。 ---[宣言部]--- //クラス型のプロパティ TMyPersistent=class(TPersistent) private //本クラスプロパティが変化した時に発生するイベント FOnChanging: TNotifyEvent; //本クラスのプロパティ FMyTag: Integer; protected //他のクラスからプロパティをコピるとき用 procedure Assign(aSource:TPersistent); override; //プロパティ procedure SetMyTag(aValue: Integer); protected //TMyCustomControl からのみ参照するイベントとするため //protected でよい //なぜなら、TMyCustomControl.OnMyPersistentChange が、 //実質のプロパティ変更イベントとして利用可能であるから property OnChanging:TnotifyEvent read FOnChanging write FOnChanging; published property MyTag:Integer Read FMyTag write SetMyTag; end; TMyCustomControl = class(TCustomControl) private FOnMyPersistentChange: TNotifyEvent; FMyPersistent:TMyPersistent; public constructor Create(aOwner: TComponent); override; destructor Destroy; override; private //クラス型プロパティ更新処理 procedure SetMyPersistent(const aValue:TMyPersistent); procedure MyPersistentChange(aObject:TObject); published //プロパティ property MyPersistent:TMyPersistent read FMyPersistent write SetMyPersistent; //イベント property OnMyPersistentChange:TNotifyEvent Read FOnMyPersistentChange write FOnMyPersistentChange; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.