TTrayIconの使い方

解決


ムジラ  2008-11-05 14:55:55  No: 32452  IP: 192.*.*.*

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

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-05 20:45:50  No: 32453  IP: 192.*.*.*

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

編集 削除
ムジラ  2008-11-06 08:55:08  No: 32454  IP: 192.*.*.*

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

編集 削除
ムジラ  2008-11-06 09:40:29  No: 32455  IP: 192.*.*.*

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

Application.MainFormOnTaskbar := True;

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

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

Application.MainFormOnTaskbar := false;

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

編集 削除