▼ Syakeさん
> 何故、消す必要があるの?ってのは無しにして下さい。
知りたい〜!! (ウソ、ウソ)
> ほんで、課題は再表示された時のイベントを捕まえるのはどうするんじゃろ?
単に、アクティブにされるウィンドウにメッセージを送るってのはどうで
しょうか。
ただし、アクティブにされる方もDelphi製で、自分でメッセージを受取る
コードを書くことが条件です。
====== 送る側 =========
procedure TSenderForm.Button1Click(Sender: TObject);
var
hWindow : HWND;
begin
//受取る側のウィンドウハンドル
hWindow := FindWindow('TReceivForm',nil);
if hWindow<>0 then begin
//アクティブにする等の処理
SendMessage(hWindow,WM_USER+100,0,0);
//またはここにアクティブにする等の処理
end;
end;
====== アクティブにされる側 =========
procedure WMUser100(var Message: TMessage); message WM_USER+100;
を定義しておいて、このメッセージハンドラを
procedure TReceivForm.WMUser100(var Message: TMessage);
begin
Panel1.Caption:='起こされてしまった!!';
end;
注意:
このメッセージのWParam,Lparam等に値を設定しても、異なるプロセスでは
受取れません。これができれば、先のTSさんのような悩みは簡単解決です。
追記:
HWNDという変数はやめた方がいいかと。予約語ですので... (^_^;)
特に理由があれば別ですが。余計なお世話だったらゴメンなさいませ。
後、あるサンプルコードからコピペしてオンライン修正ですので、よろしく。
(つまり、動作確認してございません)
|