掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
カスタムコンポーネントで親フォームの移動を検知したい (ID:48405)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんばんは、KONです。 > 親フォームの移動を子コンポーネントで検出する方法があるのでしょうか。 どの様なエラー表示(オリジナルのバルーン?)なのかは判りませんが、 単に親フォームの移動を検知して子コンポーネントに知らせるのでしたら、 親フォームでWM_MOVEメッセージをトラップして、 オリジナルのメッセージ(例:WM_USER + $100)でも作って、 その関数でエラー表示がなされていれば、消去しなさいという処理を 行えば良いのかも? [VCLコード] unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; const WM_CLEARBALLOON = WM_USER + 100; type TMyEdit = class( TCustomEdit ) procedure WMClearBalloon( var Message : TMessage ); Message WM_CLEARBALLOON; private { Private 宣言 } public { Public 宣言 } end; TForm1 = class( TForm ) procedure FormCreate ( Sender : TObject ); procedure FormDestroy ( Sender : TObject ); procedure FormWMMove ( var Msg : TWMMove ); Message WM_MOVE; private { Private 宣言 } Edit1 : TMyEdit; public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate( Sender : TObject ); begin Edit1 := TMyEdit.Create( Self ); Edit1.Parent := Self; Edit1.Left := ( Self.Width div 2 ) - ( Edit1.Width div 2 ); Edit1.Top := ( Self.Height div 2 ) - ( Edit1.Height div 2 ); Edit1.Text := ''; Edit1.Visible := TRUE; Edit1.Tag := 0; end; procedure TForm1.FormDestroy( Sender : TObject ); begin FreeAndNil( Edit1 ); end; procedure TForm1.FormWMMove( var Msg : TWMMove ); begin inherited; if Self.Visible then begin SendMessage( Edit1.Handle, WM_CLEARBALLOON, WPARAM( 0 ), LPARAM( 0 ) ); end; end; procedure TMyEdit.WMClearBalloon( var Message : TMessage ); begin // エラー表示がされていれば消去する処理 end; end. ハズしてたらすみません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.