Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TPopupMenu.Visible (https://www.delphipraxis.net/30323-tpopupmenu-visible.html)

PeterRettig 23. Sep 2004 14:42


TPopupMenu.Visible
 
Hallo,

ich suche eine Möglichkeit herauszufinden, ob ein
bestimmtes Popupmenü gerade angezeigt wird, oder
nicht. Also etwas in der Art:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if PopupMenu1.Visible then exit;
  bla;
  blabla;
end;
Kurz gesagt, während das Popupmenü angezeigt wird,
führe bestimmte zyklische Abläufe nicht aus...


Ciao Peter

Alex_ITA01 23. Sep 2004 14:45

Re: TPopupMenu.Visible
 
hallo,
also unter Popup-Menü verstehe ich, wenn ich mit der rechten Maustaste irgendwo hinklicke, das mir ein Menü aufklappt.Da brauchst du doch nur überprüfen ob die linke Maus an der Stelle geklickt wurde...
Oder verstehe ich das falsch?
MFG Alex

alcaeus 23. Sep 2004 14:47

Re: TPopupMenu.Visible
 
Hi Peter,

du musst mit mehreren Ereignissen arbeiten:
TPopupMenu.OnPopup: Dieses Ereignis wird ausgelöst, sobald sich das Popupmenu öffnet. Leider gibt es kein Ereignis, das eintritt sobald das Menu wieder geschlossen wird, dies ist aber auch nicht sehr schwer abzufangen: der nächste Mausklick auf dem Form schließt das Menu wieder (egal ob auf ein MenuItem oder nicht). Ich hoffe du kannst damit etwas anfangen.

Greetz
alcaeus

Alex_ITA01 23. Sep 2004 14:48

Re: TPopupMenu.Visible
 
oder du fragst,

Delphi-Quellcode:
  if PopupMenu1.Items[0].Visible then ...
MFG Alex

PeterRettig 23. Sep 2004 14:49

Re: TPopupMenu.Visible
 
Das Popup wird aber bei einem Klick auf ein
Trayicon angezeigt. Also wird es keinen Klick
auf ein Hauptfenster geben :-(

alcaeus 23. Sep 2004 14:49

Re: TPopupMenu.Visible
 
Hi Alex,

Zitat:

Zitat von Alex_ITA01
oder du fragst,
Delphi-Quellcode:
  if PopupMenu1.Items[0].Visible then ...
MFG Alex

ist IMHO nicht die beste Möglichkeit. Ich ändere immer die Visible-Eigenschaft der MenuItems, um dem Benutzer nur begrenzte Möglichkeiten zu geben. Außerdem sind die Items AFAIK auch Visible, obwohl das PopupMenu nicht angezeigt wird ;)

Greetz
alcaeus

alcaeus 23. Sep 2004 14:50

Re: TPopupMenu.Visible
 
Hi Peter,

Zitat:

Zitat von PeterRettig
Das Popup wird aber bei einem Klick auf ein
Trayicon angezeigt. Also wird es keinen Klick
auf ein Hauptfenster geben :-(

Aber es wird einen Klick geben, also wirst du wohl um einen Hier im Forum suchenHook nicht herumkommen.

Aber ob das nicht ein bisschen overkill ist :gruebel:

Greetz
alcaeus

Alex_ITA01 23. Sep 2004 14:52

Re: TPopupMenu.Visible
 
das es nicht die schönste Variante ist weiß ich auch, trotzdem danke

ich benutze selber auch nur die visible eigenschaft fürs aus/ein-blenden bestimmter Einträge.
dies beispiel ist mir nur eben grade mal eingefallen...

ich würde auch am besten auf die Mouseereignisse reagieren, weil sie schon vorhanden sind (MouseUp,Down,Move) und dadurch leicht zu bewältigen sind
MFG Alex

PeterRettig 23. Sep 2004 14:57

Re: TPopupMenu.Visible
 
Es muß doch aber eine Möglichkeit vorhanden sein,
sich beim öfnnen des Popupmenüs das Handle zu merken
und dann damit zu prüfen ob das Menü noch offen ist!?

Ein Popupmenü ist doch streng genommen auch nur ein Fenster!
Oder?

alcaeus 23. Sep 2004 14:59

Re: TPopupMenu.Visible
 
Na klar:

du speicherst im OnPopup das Handle des PopupMenus, und anschließend musst du mit den API-Funktionen prüfen, ob das Handle noch existiert. Ob oder Wie das geht weiß ich jetzt leider auch nicht :oops:

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:00 Uhr.
Seite 1 von 2  1 2      

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