Delphi-PRAXiS

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/)
-   -   PopupMenu SubMenu öffnen (https://www.delphipraxis.net/176473-popupmenu-submenu-oeffnen.html)

EarlyBird 7. Sep 2013 13:58

PopupMenu SubMenu öffnen
 
Hallo,
ich möchte ein nach einem Klick auf einen Menüpunkt im PopupMenu das Menü an der gleichen Stelle wieder öffnen.
Das mache ich im onclick Ereignis des MenüItems mit :
Delphi-Quellcode:
PopUpM1.Popup(PopUpM1.PopupPoint.X,PopUpM1.PopupPoint.Y);

das klappt so weit auch prima mit dem PopUpMenu selbst.
Ich möchte aber auch das Submenü öffnen wenn das geklickte Item in einem Submenü war.
Könnt Ihr mir einen Tipp dazu geben wie ich das lösen kann.

Thanks

EarlyBird 9. Sep 2013 08:48

AW: PopupMenu SubMenu öffnen
 
hat keiner eine Idee?

EarlyBird 9. Sep 2013 17:30

AW: PopupMenu SubMenu öffnen
 
ich kann einfach nicht warten :oops:

1. [] dumme Frage
2. [] falsches Forum
3. [] wurde schon X mal behandelt (nicht schon wieder)
4. [] unlösbare Aufgabe
5. [] streng Dich selber mehr an
6. [] Antwort:__________________________________________ ____

Ich komm einfach nicht selbst drauf :?
Hat denn Niemand einen Tipp?

Helmi 9. Sep 2013 19:16

AW: PopupMenu SubMenu öffnen
 
Hallo,

auch wenn ich dir nicht wirklich weiterhelfen kann, aber ich glaube das geht nicht.
Ich habe jetzt einiges probiert, mit SendMessage etc., aber man kann nur das PopUp
selbst anzeigen lassen, aber keinen SubItem.

Die Frage ist aber auch, warum das überhaupt wollen?
Mit der Maus musst du ja sowieso ins PopUp klicken

EarlyBird 9. Sep 2013 19:42

AW: PopupMenu SubMenu öffnen
 
Hallo Helmi,
danke für Deine Antwort.
Ich hab auch schon so viel probiert, aber es geht nicht.
Ich dachte "einer" muss es doch schon mal hinbekommen haben.

Ich möchte das Verhalten so implementieren das bei gedrückter Strg Taste das Menü nach einem Klick offen bleibt.
Ich füge damit Werte in einer Tabelle ein.
Und manchmal ist es halt erforderlich mehr wie einen Wert einzufügen.
Dann ist es lästig das Menü immer neu aufzurufen.

Vielleicht findet sich ja noch eine Lösung

Helmi 9. Sep 2013 19:44

AW: PopupMenu SubMenu öffnen
 
das einzige was mir dabei einfällt, wäre, die SubItems aufzulösen und sie im "normalen" PopUp einzubauen und dann mitels PopUpMenu.PopUp(x,y) anzeigen zu lassen

EarlyBird 9. Sep 2013 19:54

AW: PopupMenu SubMenu öffnen
 
hab ich auch schon dran gedacht.
Hat aber auch nicht geklappt:cry:

Helmi 9. Sep 2013 20:01

AW: PopupMenu SubMenu öffnen
 
Zitat:

Zitat von EarlyBird (Beitrag 1227768)
hab ich auch schon dran gedacht.
Hat aber auch nicht geklappt:cry:

Und was nicht?

EarlyBird 9. Sep 2013 20:22

AW: PopupMenu SubMenu öffnen
 
Es bleibt einfach das "Hauptmenü" offen.
sonst passiert nichts, nicht mal ein Error
Delphi-Quellcode:
//ein einfacher Test
   PopUpM1.Popup(PopUpM1.PopupPoint.X,PopUpM1.PopupPoint.Y);
   TPopupMenu(TMenuItem(Sender)).Popup(PopUpM1.PopupPoint.X + 20,PopUpM1.PopupPoint.Y + 20);

Helmi 9. Sep 2013 20:27

AW: PopupMenu SubMenu öffnen
 
das Hauptmenü mein ich ja

EarlyBird 9. Sep 2013 20:38

AW: PopupMenu SubMenu öffnen
 
Sorry da hab ich wohl nicht aufmerksam genug gelesen.
Aber das Hauptmenü bekomme ich ja auch schon ordentlich angezeigt.
Ich dachte jetzt daran aus dem Submenü ein zweites Hauptmenü zu machen und dann an der richtigen Position einzublenden.
Alles im Hauptmenü anzuzeigen ist leider keine Option für mich

Helmi 9. Sep 2013 20:38

AW: PopupMenu SubMenu öffnen
 
vielleicht hilft dir das weiter (was ich jetzt nicht ganz glaube):

http://www.s170867368.online.de/delphi/menpop.php

EarlyBird 9. Sep 2013 20:59

AW: PopupMenu SubMenu öffnen
 
Leider hilft es nicht.
Schade.
Ich bekomme zwar das SubMenü angezeigt aber dafür wird das Hauptmenü ausgeblendet.
Außerdem funktioniert auch das erst wenn ich das zweite mal auf den Submenüeintrag klicke :?:

Delphi-Quellcode:
//die Position stimmt so natürlich auch noch nicht
  PopUpM1.Popup(PopUpM1.PopupPoint.X,PopUpM1.PopupPoint.Y);
  TrackPopupMenu(TMenuItem(Sender).Parent.Handle, TPM_LEFTBUTTON or
    TPM_LEFTALIGN, PopUpM1.PopupPoint.X + 50,PopUpM1.PopupPoint.Y + 40, 0, self.Handle, Nil);

Helmi 9. Sep 2013 21:02

AW: PopupMenu SubMenu öffnen
 
was passiert, wenn du
Delphi-Quellcode:
PopUpM1.Popup(PopUpM1.PopupPoint.X,PopUpM1.PopupPoint.Y);
mal weg lässt?

EarlyBird 9. Sep 2013 21:19

AW: PopupMenu SubMenu öffnen
 
Dann geht das Submenü auf aber das Hauptmenü wird nicht angezeigt.
Das ganze funktioniert dann auch nur einmal.
Beim nächsten Klick ist dann auch das Submenü weg.

Und ich dachte ich mach das mal eben
das muss doch auch irgendwie funktionieren :roll:

Perlsau 10. Sep 2013 03:52

AW: PopupMenu SubMenu öffnen
 
Wie wäre es, den gewünschten SubMenü-Punkten Hotkeys zu verpassen, so daß der Anwender nicht jedesmal diese Submenüs mit der Maus anfahren muß?

EWeiss 10. Sep 2013 06:02

AW: PopupMenu SubMenu öffnen
 
Zitat:

Zitat von Perlsau (Beitrag 1227793)
Wie wäre es, den gewünschten SubMenü-Punkten Hotkeys zu verpassen, so daß der Anwender nicht jedesmal diese Submenüs mit der Maus anfahren muß?

Und nur dann ist es auch möglich über sendkeys die jeweilige funktion des Submenus aufzurufen
ohne es jedesmal mit der Maus aktivieren zu müssen.

Ein Beispiel für diese Methode kannst in meinem ProgCommand Sample finden.
Oder schau mal hier..

Fremde (Eigene) Menüs Fernsteuern

gruss

EarlyBird 10. Sep 2013 12:31

AW: PopupMenu SubMenu öffnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank für Eure Tipps.
Leider bekomme ich es trotzdem noch nicht richtig hin.

Folgendes klappt aber schon mal:
(nutze die SendKeys.pas danke an EWeiss dafür)

Das Submenü wird angezeigt, allerdings immer erst beim zweiten klick in einen Submenüeintrag.
Beim ersten klick wird nur das "Popup Hauptmenü" angezeigt.
Ab dem zweiten klick wird das Hauptmenü und das Submenü angezeigt, fast so wie ich es haben möchte.
Nur das der Parent auch nicht immer richtig erkannt wird.
Klickt man erst im ersten Submenü und dann im zweiten wird auch das ersteSubmenü aufgerufen.
Sehr eigenartig.

Ich habe mal ein kleines Testprojekt angehangen.
Vielleicht kann es sich ja mal jemand ansehen.
Das wäre echt prima.

EarlyBird 11. Sep 2013 09:10

AW: PopupMenu SubMenu öffnen
 
Es scheint keine befriedigende Lösung zu geben.
Daher werde ich das Problem mit einer eigenen Komponente lösen.

Danke für Eure Hilfe

bcvs 11. Sep 2013 10:42

AW: PopupMenu SubMenu öffnen
 
Das schien mir von Anfang an die beste Lösung zu sein, denn irgendwelche PopupMenus mit Strg offen zu halten ist irgendwie nicht besonders intuitiv.

Vielleicht geht ja was mit einer TreeView-Komponente.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz