Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Application.Minimize in der Taskleiste abfangen ? (https://www.delphipraxis.net/89276-application-minimize-der-taskleiste-abfangen.html)

Nils_13 28. Mär 2007 20:42


Application.Minimize in der Taskleiste abfangen ?
 
Hi,

kann man alles, was man bei Application.Minimize (eine Prozedur) ausführt auch ausführen, wenn der Benutzer das Programm via Taskleistenklick minimiert ? Form.OnHide verursacht mir irgenwie den Fehler, dass das TNA/Tray-Icon auch bei Taskleistenminimierung sichtbar ist (unerwünscht) :gruebel: Wenn man allerdings auf den Minimierbutton (TButton) klickt, funktioniert alles korrekt und Form.Hide ist auf den Button zugewiesen (über Obejectsinsepctor).

inherited 28. Mär 2007 21:24

Re: Application.Minimize in der Taskleiste abfangen ?
 
Fang doch die Message von Windows ab und reagiere drauf.

Nils_13 29. Mär 2007 15:05

Re: Application.Minimize in der Taskleiste abfangen ?
 
Wie heißt die ? WM_SIZE kennt Delphi nicht und SC_MINIMIZE ist ausschließlich der Button am Fensterrand.

SirThornberry 29. Mär 2007 16:46

Re: Application.Minimize in der Taskleiste abfangen ?
 
Warum nutzt du nicht einfach Application.OnMinimize?

Nils_13 29. Mär 2007 17:22

Re: Application.Minimize in der Taskleiste abfangen ?
 
Was dieser Post hier zu suchen hat weiß ich nicht, da ich es offensichtlich benutze. Da du wahrscheinlich etwas falsch verstanden hast:
Delphi-Quellcode:
// Buttonclick
// CTI = CoolTrayIcon
procedure TfrmMain.xiMinimizeClick(Sender: TObject);
begin
  if frmSetting.mtt then
  begin
    CTI.MinimizeToTray := True;
    FillPlayItems;
    CTI.IconVisible := True;
    CTI.HideMainForm;
    Application.Minimize;
  end else
  begin
    CTI.MinimizeToTray := False;
    Application.Minimize;
  end;
end;

procedure TfrmMain.CTIMinimizeToTray(Sender: TObject);
begin
  CTI.MinimizeToTray := True;
  FillPlayItems;
  CTI.IconVisible := True;
  CTI.HideMainForm;
end;
Wie am Code zu sehen ist, wird der Code nur bei einem Klick auf einen Button ausgeführt. Das Problem ist, dass es auch bei Taskleistenklicks passieren soll. Ich habe im OI einfach OnHide=xiMinimizeClick, aber da verhält sich die Anwendung sehr komisch. Falls es nicht anders geht, werde ich entweder ein kleines Beispiel schreiben oder gleich die RC6 des Players hochladen.

SirThornberry 29. Mär 2007 18:30

Re: Application.Minimize in der Taskleiste abfangen ?
 
deshalb nochmal die Frage. Warum verwendest du nicht Application.OnMinimize sondern TYourFormClass.OnHide? Bei Application.OnMinimize bekommst du jegliches Minimieren mit, egal ob dies per Button, Message oder Taskleisteneintrag ausgeführt wird.

Nils_13 29. Mär 2007 19:24

Re: Application.Minimize in der Taskleiste abfangen ?
 
:oops: Jetzt habe ich endlich verstanden, was du meinst. Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz