Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Popup Menu erscheint nicht! - Pestfrage! (https://www.delphipraxis.net/204467-popup-menu-erscheint-nicht-pestfrage.html)

NicoleWagner 30. Mai 2020 13:05

Popup Menu erscheint nicht! - Pestfrage!
 
Hallo User,

heute ein Problem. das so pestig ist, dass ich ratlos bin.
Ich habe ein Formular und eine ältere Version der TMS-Komponente (weshalb ich um Verzeichung bitte, den Code nicht posten zu können).

Doch ich denke, dass der Fehler eher in der Delphi XE 3 IDE liegt. Was immer ich codiere, bei Euch geht es wahrscheinlich ohnehin :bounce2:

Also ich habe ein Formular und klebe drauf (aus TMS):
- TPlanner
- TPlannerWaitingList

Programm läuft also fein, also noch Komfort:
Zu jedem schrieb ich ein Pop-up Menue. Das wird mir beim TPlanner angezeigt, bei der TPlannerWaitingList - - nicht! Das Popup probierte ich mit dem Objektmanager als auch via Code hinzuzufügen: Fehlanzeige!
Ich erstellte einen Button, fügte zu DEM das Popup-Menu hinzu, - es wird angezeigt.

Jetzt tat ich dies: neues Formular, - TPlanner und TPlannerWaitingList drauf, je 2 Popup-Menus dazu, eingetragen und gestartet.
Nichts: weder das eine noch das andere Element zeigt mein Kontext Menu. In meinem ersten Versuch zeigte der TPlanner das Popup WOHL an!

Das ist fuzzy!
Hoffentlich ist jemand hier, der schon "alles gesehen hat" und mir einen Tip geben kann, wie ich damit umgehe1

Danke!

jziersch 30. Mai 2020 13:15

AW: Popup Menu erscheint nicht! - Pestfrage!
 
Du kannst das menü selber anzeigen wenn Die Komponente ein MouseDown event hat. Rechte Maustaste abfragen und Popup aufrufen.

NicoleWagner 30. Mai 2020 13:39

AW: Popup Menu erscheint nicht! - Pestfrage!
 
Danke für Deine Idee!
MouseDown event ist vorhanden, doch
- wie frage ich die rechte Maustase ab?
- wie zeige ich das Pop-Up Memu an?

hoika 30. Mai 2020 14:10

AW: Popup Menu erscheint nicht! - Pestfrage!
 
Hallo,
MouseDown hat den Parameter Button.
Und

https://stackoverflow.com/questions/...lick-a-tbutton

NicoleWagner 2. Jun 2020 10:56

AW: Popup Menu erscheint nicht! - Pestfrage!
 
Danke an Hoika!
Das Rätsel geht weiter. Ich habe das jetzt implementiert:

Das ist ins Formular einzufügen
procedure ShowPopupMenuEx(var mb1:TMouseButton;var X:integer;var Y:integer;var pPopUP:TPopupMenu);
var
popupPoint : TPoint;
begin
if (mb1 = mbLeft) then begin
popupPoint.X := x ;
popupPoint.Y := y ;
popupPoint := ClientToScreen(popupPoint); //Error Here
pPopUP.Popup(popupPoint.X, popupPoint.Y) ;
end;
end;

und das als Mousedown-Event:

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
x:=100; y:= 500;
if Button = mbLeft then
ShowPopupMenuEx(button,x,y,PopupMenu_ToDo);
end;

=======================
Das Problem im Event MouseDown:
if (mb1 = mbLeft) klappt wunderbar,

hingegen:
if (mb1 = mbRight) => hier tut sich ebensowenig, wie wenn ich das Popup direkt mit Maus-Rechtsklick anzeigen möchte.

?!
Danke für Hinweise.

bcvs 2. Jun 2020 11:47

AW: Popup Menu erscheint nicht! - Pestfrage!
 
Hast du das
Delphi-Quellcode:
if (mb1 = mbLeft) then begin
im ShowPopupMenuEx entsprechend angepasst?

Ansonsten: Was sagt der Debugger? Kommst du überhaupt ins Button1MouseUp rein?

NicoleWagner 2. Jun 2020 12:41

AW: Popup Menu erscheint nicht! - Pestfrage!
 
Die Überschrift sagt "Pestfrage" und das ist es auch!

if Button = mbLeft then
ShowPopupMenuEx(button,x,y,PopupMenu_ToDo);
==> wird angezeigt


if Button = mbRight then
ShowPopupMenuEx(button,x,y,PopupMenu_ToDo);
==> wird NICHT angezeigt

Wobei "Button = mbRight" im Debugger "true" ist!

Das Ding mit einem anderen TWaitList und einem anderen TPopup auf einem neuen Fenster zu tun, - schon probiert. Dasselbe Problem.
Popup wird nicht angezeigt.
Als ich in grauer Vorzeit einmal so ein Problem hatte, war die Ursache ein verlorener Strichpunkt im implementation Teil. ;-(
Das fand ich erst nach Wochen.

==========================================
PS: Ich gab entnervt auf. Statt der WaitingList prangt jetzt auf meinem Formular eine Listbox, - MIT Popup-Menu.
Danke allen, die hier geantwortet, gelesen und getüftelt haben.
Ich habe das Ding und damit das Problem gelöscht.


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