掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
OnChangeのキャンセルをするには (ID:36358)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初期化メソッド内で一度全てのEditのOnChengeを退避させれば良いので 以下ではどうでしょうか。 var Loop, Count: Integer; TempEvents: array of TNotifyEvent; begin Count := 0; for Loop := 0 to Self.ComponentCount - 1 do begin if Components[Loop] is TEdit then begin SetLength(TempEvents, Count + 1); TempEvents[Count] := (Components[Loop] as TEdit).OnChange; (Components[Loop] as TEdit).OnChange := nil; Inc(Count); end; end; { Editの変更処理 } Count := 0; for Loop := 0 to Self.ComponentCount - 1 do begin if Components[Loop] is TEdit then begin { Components配列に変化がない事が前提 } (Components[Loop] as TEdit).OnChange := TempEvents[Count]; Inc(Count); end; end; TCheckBoxのCheckedの変更でOnClickが発生する等他にも初期化時に いちいちイベントに飛ばれると面倒な場合は何らかの形でイベントの メソッドポインタを退避させれば良いと思います。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.