Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Form1 in den Vordergrund bringen (https://www.delphipraxis.net/168250-form1-den-vordergrund-bringen.html)

value is NULL 11. Mai 2012 08:37

Form1 in den Vordergrund bringen
 
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

himitsu 11. Mai 2012 10:16

AW: Form1 in den Vordergrund bringen
 
Zitat:

Form1 in den Vordergrund bringen
Delphi-Referenz durchsuchenBringToFront?

value is NULL 11. Mai 2012 12:18

AW: Form1 in den Vordergrund bringen
 
Epic Fail!

Danke

himitsu 11. Mai 2012 12:26

AW: Form1 in den Vordergrund bringen
 
Ach ja, der Grund könnte darin liegen, daß über dieses Popupmenü dein Programm einmal den Eingabefokus bekommt oder schon hat und beim Doppelklick der Fokus bei der Traybar landet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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