AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TPopupMenu.CloseMenu funktioniert nicht

Ein Thema von tofse · begonnen am 6. Aug 2012 · letzter Beitrag vom 7. Aug 2012
Antwort Antwort
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
128 Beiträge
 
Delphi XE Professional
 
#1

TPopupMenu.CloseMenu funktioniert nicht

  Alt 6. Aug 2012, 14:18
Hallo,
ich habe in meinem Programm zwei Menüs TPopupActionBar.
Diese sollte in manchen Situationen vom Programm geschlossen werden.
Dazu verwende ich
Code:
PopUpActionBarTermin.CloseMenu;
Leider hat das gar keinen Effekt. Selbst wenn ich mit einem Haltepunkt an die Stelle im Quelltext springe, bleibt das Menü offen und legt sich sogar über die Entwicklungsumgebung, die ja dann gerade offen. Was ich damit sagen will: das Programm kommt auf jeden Fall an die Stelle, wo das Menü geschlossen werden soll, es passiert nur nichts.

Woran kann das liegen?
Eigentlich kann man ja lt. Hilfe nichts falsch machen.
Zitat:
Schließt das Popup-Menü auf dem Bildschirm.

Rufen Sie CloseMenu auf, um das Popup-Menü zu schließen.
Grüße
Christof
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
6.808 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TPopupMenu.CloseMenu funktioniert nicht

  Alt 6. Aug 2012, 15:51
Der PopupActionBar ist nicht das tatsächlich instanziierte PopupMenu. Du musst PopUpActionBarTermin.PopupMenu.CloseMenu; aufrufen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
128 Beiträge
 
Delphi XE Professional
 
#3

AW: TPopupMenu.CloseMenu funktioniert nicht

  Alt 7. Aug 2012, 06:31
Du musst PopUpActionBarTermin.PopupMenu.CloseMenu; aufrufen.
Dann erhalte ich leider eine Zugriffsverletzung

Was ich nicht verstehe. In der Hilfe steht
Zitat:
TPopupActionBar ist eine Unterklasse von TPopupMenu.
Also müsste TPopupActionBar.CloseMenu; doch auch funktionieren.

Edit:
So, nun habe ich zum Testen mal ein TPopupMenu eingebunden.
Rufe ich da PopupMenuZoom.CloseMenu; auf, funktioniert es. Ich verstehe es aber nicht.

Geändert von tofse ( 7. Aug 2012 um 07:01 Uhr) Grund: Getestet:
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
6.808 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: TPopupMenu.CloseMenu funktioniert nicht

  Alt 7. Aug 2012, 07:53
Wie ich bereits sagte:
Zitat:
Der PopupActionBar ist nicht das tatsächlich instanziierte PopupMenu.
Das tatsächlich sichtbare Menü wird dynamisch erzeugt und ist über das Property PopupMenu erreichbar - natürlich nur, wenn es auch gerade existiert. Da ich aber nicht weiß, wo und wie du das CloseMenu aufrufen willst, ist das so etwas schwer zu analysieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
128 Beiträge
 
Delphi XE Professional
 
#5

Gelöst: TPopupMenu.CloseMenu funktioniert nicht

  Alt 7. Aug 2012, 08:06

Das tatsächlich sichtbare Menü wird dynamisch erzeugt
Dieser nochmals explizite Hinweis auf dynamisch hat mich nun auf die Fährte gebracht. Eigentlich blöd...wie geschrieben habe ich ja 2 Menüs.
Da habe ich nacheinander wie von dir erklärt das CloseMenu aufgerufen. Zum Testen kann ich ja aber immer nur ein Menü einblenden, beim anderen gabs dann die Zugriffsverletzung. Ist mir im Detail nicht aufgefallen. Dass es dynamisch erzeugt wird, war mir nicht klar.

Jetzt klappt's, wieder was gelernt

Danke
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf