基本的な事ですがわかりません。教えてください。
TTrayIconとTAplicationEventsをおいて、イベント2つに下記を追加。
また、TrayIcon1のVisibleをtrueにしています。
-----------------------------------------
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
hide;
end;
procedure TForm1.TrayIcon1Click(Sender: TObject);
var
k: Integer;
begin
//Show;
for k := Screen.FormCount - 1 downto 0 do begin
Screen.Forms[k].Show;
end;
Application.Restore;
Application.BringToFront;
end;
-----------------------------------
これで実行後、最小化ボタンを押すとタスクバーの表示が消えます。
(ここまで意図どおり)
タスクトレイアイコンをクリックすると、元に・・・戻りません。
タスクバーの表示だけが戻ります。このタスクバーの表示をクリックするとウインドウが戻ります。
タスクトレイアイコンをクリックするとウインドウが元に戻るようにしたいのです。何がいけないのでしょうか?
よろしくお願いします。
D2007、WinXP SP3
Application.Restore;
Visible := True; // 追加
Application.BringToFront;
で、どうですか?
ありがとうございます。
試してみましたが状況は変わりません・・・・
環境依存なのでしょうか?
codegearのコードセンター?にサンプルがありましたので、これとの差分を虱潰しに調べたところ、
デフォルトで作成したプロジェクトには
Application.MainFormOnTaskbar := True;
が設定されているのが原因とわかりました。
これをコメントアウトするか、formのクリエイト時にでも
Application.MainFormOnTaskbar := false;
とすれば、意図したとおりになりました。
お騒がせしました。
ツイート | ![]() |