Einzelnen Beitrag anzeigen

value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#1

Form1 in den Vordergrund bringen

  Alt 11. Mai 2012, 07:37
Hi Leute,

Ich hab echt schon viel gegoogelt aber irgendwie komme ich nicht auf den Fehler.
Ich habe eine Formularanwendung welche sich beim minimieren ins Tray legt. Das mache ich so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMinimize := AppMinimize;
  ShowWindow(Application.Handle, SW_HIDE);
  ShowWindow(Form1.Handle, SW_HIDE);
  form1.Hide;
end;
Mit einem Rechtsklick auf das Tray bekomme ich ein Popup in welchem ich einen Menüpunkt mit Show habe:

Delphi-Quellcode:
  ShowWindow(Application.Handle, SW_RESTORE);
  ShowWindow(Form1.Handle, SW_RESTORE);
  form1.Show;
Mit einem Doppelklick will ich das Form auch wieder anzeigen sprich in den Vordergrund bringen. Das mache ich genauso wie bei dem Rechtsklick
auf das Tray.

Mein Problem ist, das es mit dem Rechtsklick funktioniert, mit dem Doppeklick aber nicht. Er öffnet zeigt mir zwar das Form an, wenn jedoch zB Excel
gestartet ist und dieses vor dem Doppeklick fokusiert wird, ist meim Form IMMER im Hintergrund, nur nicht mit dem Rechtsklick.

Was habe ich hier falsch?

hier der Code von meinem Doppelklick:

Delphi-Quellcode:
procedure TForm1.trayDblClick(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_RESTORE);
  ShowWindow(Form1.Handle, SW_RESTORE);
  form1.Show;
end;
Habe es auch schon mit der Funktion ForceForegroundWindow(hwnd: THandle): Boolean; versucht. Da funktionierts genau 2 mal und dann lässt es sich nicht mehr minimieren :/

LG und Danke schon mal
  Mit Zitat antworten Zitat