Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

Aus TrayIcon Application "steuern"

  Alt 12. Nov 2005, 13:07
Hallo,

ich habe eine TrayIcon-Komponente, in der ich die Application-Mainform anzeigen lasse oder verstecke.

Beim Anzeigen soll die Form 1. angezeigt werden und 2. gleich in den Vordergrund kommen.

Beim Verstecken soll die Form 1. versteckt werden und 2. auch aus der Taskleiste verschwinden.

Ich hab das mal so gelöst:
Delphi-Quellcode:
procedure TTrayIcon.ShowMainForm;
begin
  with Application do
    begin
      ShowWindow(Handle, SW_SHOW);

      //maximieren
      Restore;

      //Haupt-Form anzeigen
      MainForm.Show;

      //in den Vordergrund bringen
      BringToFront;
    end;
end;

procedure TTrayIcon.HideMainForm;
var
  hwndOwner: HWnd;

begin
  with Application do
    begin
      //minimieren
      Minimize;

      //Haupt-Form verstecken
      MainForm.Hide;

      ShowWindow(Handle, SW_HIDE);

      //Icon aus der Taskleiste verstecken
      hwndOwner := GetWindow(Handle, GW_OWNER);
      ShowWindow(hwndOwner, SW_HIDE);

      //für Windows 2000
      ShowWindowAsync(hwndOwner, SW_HIDE);
      ShowWindowAsync(Handle, SW_HIDE);
    end;
end;
Was mich an diesem Code stört, dass ich "VCL-Code" mit "API-Code" vermische.

Gibt es eine andere, VCL-basierende Lösung?
oder grundsätzlich einen anderen Lösungsweg?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat