いつもお世話になります。
MDIの子ウィンドウが仮に2個有って、
アクティブで無い方の子ウィンドウのタイトルバーを
クリックするとアクティブになりますが、
アクティブになる直前に処理(例えば切り替えますか?とダイアログ表示)
したいのです。
activeFormChangeでは、切り替わった事は、わかりますが
TPageControlのイベントOnChanging のように切り替える直前に
アプリケーション側で検知し、場合によっては切り替えない
ような処理はどのように行えばよいのでしょうか?
よろしくお願い致します。
Unit1 (MDIForm) で
var
Form1: TForm1;
ActiveForm: TForm;
のように設定して
Unit2 (MDIChild) で
implementation
uses
Unit1;
{$R *.dfm}
procedure TForm2.FormActivate(Sender: TObject);
begin
if ActiveForm <> Self then
begin
if MessageDlg('切り替えますか',mtInformation,[mbYes,mbNo],0) = mrYes then
begin
ActiveForm := Self;
end
else
begin
ActiveForm.SetFocus;
end;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
ActiveForm := Self;
end;
KHE00221さんありがとうございます。
早速、コーディング&動作しました。
切り替わった後(FormActiveate->if ActiveForm <> Self)でないと
判定できないのですね。
別の考え方で、現在アクティブな子ウィンドウ以外の
子ウィンドウをアクティブにならないようにしたり、
解除して普通に切り替えが、できるようにしたりする事は、
できないのでしょうか。お願い致します。
Enabled を False にしておけば切り替えはできなくなるけど?
できました。
KHE00221さん、どうもありがとうございました。
ツイート | ![]() |