TTrayIconの使い方

解決


ムジラ  2008-11-05 23:55:55  No: 32452

基本的な事ですがわかりません。教えてください。

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


igy  2008-11-06 05:45:50  No: 32453

Application.Restore;
    Visible := True;          // 追加
    Application.BringToFront;
で、どうですか?


ムジラ  2008-11-06 17:55:08  No: 32454

ありがとうございます。
試してみましたが状況は変わりません・・・・
環境依存なのでしょうか?


ムジラ  2008-11-06 18:40:29  No: 32455

codegearのコードセンター?にサンプルがありましたので、これとの差分を虱潰しに調べたところ、
デフォルトで作成したプロジェクトには

Application.MainFormOnTaskbar := True;

が設定されているのが原因とわかりました。

これをコメントアウトするか、formのクリエイト時にでも

Application.MainFormOnTaskbar := false;

とすれば、意図したとおりになりました。
お騒がせしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加