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 Speedbutton mit Hauptmenuepunkt? (https://www.delphipraxis.net/187309-speedbutton-mit-hauptmenuepunkt.html)

Mattze 18. Nov 2015 11:21

Speedbutton mit Hauptmenuepunkt?
 
Hallo,

wie kann man einem Speedbutton ein Menuitem (sprich: das zugehörige "Popup"-Menue) zuordnen.

Wäre in meinem Falle günstiger als ein weiterer TToolbutton.

Gruß
Mattze

haentschman 18. Nov 2015 11:27

AW: Speedbutton mit Hauptmenuepunkt?
 
Moin...8-)

zuordnen gar nicht. Du kannst das Popupmenü selbst positionieren, öffen und schließen. :P

Wer lesen kann ist klar im Vorteil. :P Die Property PopupMenu gibt´s doch...

mikhal 18. Nov 2015 11:31

AW: Speedbutton mit Hauptmenuepunkt?
 
Willst du ein Popup-Menu dem SpeedButton zuordnen? Dann der Eigenschaft PopupMenu das entsprechenden PopupMenu Zuweisen.

Soll der SpeedButton die gleiche Aufgabe wie das MenuItel erfüllen: TAction anschauen

Grüße
Mikhal

Mattze 18. Nov 2015 11:37

AW: Speedbutton mit Hauptmenuepunkt?
 
Hallo,

habe ich ja eigentlich geahnt!
Meinst Du mit dem Tipp, ein eigenes Popupmenu mit den "gleichen Einträgen" wie im Hauptmenue basteln?

Daran hatte ich jedenfalls auch schon gedacht. Aber, irgendwie, war das wohl nicht sooo schön bequem...

Auf die Gefahr hin, dass ich jetzt einen lauten Aufschrei höre (obwohl ich gehörlos bin!):
Ich fand TAction immer ziemlich sinnlos. Vielleicht auch deshalb, weil ich das Konzept dahinter nicht richtig verstanden habe. Was hindert mich, mehreren Buttons die gleiche Onclick-Methode zuzuordnen. Was macht TAction besser?

Gruß
Mattze

Ralf Kaiser 18. Nov 2015 11:44

AW: Speedbutton mit Hauptmenuepunkt?
 
Zitat:

Zitat von Mattze (Beitrag 1321744)
Was macht TAction besser?

TAction verwaltet z.B. auch verschiedene Statuswerte (z.B. Enabled, GroupIndex, ImageIndex, Caption usw.) deren Änderung sich auf alle angehängten Clients auswirken. So kann man mit einer Zuweisung gleich alle Buttons/Menus/Popupmenus in- oder ausschalten. Außerdem können mit dem Update-Event einer TAction diese Eigenschaften verwaltet werden ohne selbst viele Statusvariablen verwalten zu müssen.

Mattze 18. Nov 2015 11:58

AW: Speedbutton mit Hauptmenuepunkt?
 
Hallo,

diese Möglichkeit von TAction habe ich vor ganz Kurzem erst bemerkt.
Wenn man einem Menupunkt ein Untermenu zuordnet, geht das automatische Checked setzen nur per TAction.

Komisch, aber (scheinbar) wahr.

Falls das nicht anders zu machen geht, werde ich wohl doch mal auf TAction übergehen müssen...

Gruß
Mattze

Perlsau 18. Nov 2015 12:10

AW: Speedbutton mit Hauptmenuepunkt?
 
@Mattze:

Offenbar hast du ein HauptMenü (TMainMenu) mit diversen Einträgen und dazu entsprechende Event-Handler. Nun möchtest du via Buttonklick eines dieser Events auslösen. Nichts leichter als das: Dem OnClick des Buttons weist du einfach den Event-Handler zu. Bei Verwendung von TAction weist du dem Action-Property einach das jeweilige TAction-Item zu; damit erhält dein Button dieselbe Caption und reagiert auf denselben Event-Handler.

Mattze 18. Nov 2015 17:39

AW: Speedbutton mit Hauptmenuepunkt?
 
Hallo,

das ist schon klar und kein Problem.

Meine Frage, vielleicht deutlicher:
Ich habe ein Hauptmenu mit 4 Items (Datei, Bearbeiten, Ansicht, Hilfe).
An den Items hängen dann natürlich die "Untermenüs" dran.
Mein Problem:
Ich möchte das "Untermenü", das an Hilfe hängt, über einen Speedbutton aufrufen.
Bloß wie? Einen Namen hat es ja nicht, oder?

Gruß
Mattze

nahpets 18. Nov 2015 18:17

AW: Speedbutton mit Hauptmenuepunkt?
 
Schau einfach nach:
Delphi-Quellcode:
  for i := 0 to Application.MainForm.Menu.Items.Count - 1 do begin
    ShowMessage(TMenuItem(Application.MainForm.Menu.Items[i]).Caption + #13
              + TMenuItem(Application.MainForm.Menu.Items[i]).Name);
  end;
Wenn Du ein Hauptmenü (TMainMenu) auf dem Formular hast, dann muss es (eigentlich) auch die entsprechenden Einträge für die Untermenüs geben und die müssten auch Namen haben.

Soll denn das Untermenü der Hilfe dann am Speedbutton erscheinen oder soll im Hauptmenü das Menü Hilfe aufgeklappt werden?

Suchst Du eher sowas hier? http://www.delphi-treff.de/tipps-tri...nu-aufklappen/

Captnemo 18. Nov 2015 19:03

AW: Speedbutton mit Hauptmenuepunkt?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ob ich dich richtig verstanden habe, weiß ich nicht genau.

Zitat:

Zitat von Mattze (Beitrag 1321774)
Bloß wie? Einen Namen hat es ja nicht, oder?

Gruß
Mattze

Ein Menupunkt z.B. Hilfe hat ganz sicher einen Namen. Wenn du ihn über die GUI angelegt hat, dann lautet er wahrscheinlich "Hilfe1". Dieses MenuItem hat dann Items, die selbst auch TMenuItems sind und eben als SubMenu angezeigt werden.
Jetzt könnte man denken, dass sich ein MenuItem auch einem zweiten Menu zuordnen ließe. Dem ist aber nicht so. Man erhält dann die Exception "Menü zweimal eingefügt".

Aber du könnte die dir einfach eine Kopie des Submenus in ein Popupmenu kopieren.

Ich habe mal einen Beispielcode angehängt. Ggf. ist das das was du machen willst. Ist natürlich nur ein Beispiel. Eigenschaften wie ImageIndex, SubMenuImages, Checked, Enabled usw. kannst du ja bei Bedarf selber noch ergänzen.

[Edit] Nach nochmaligem Lesen des Threads habe ich doch das Gefühl dich falsch verstanden zu haben. Aber je nach Delphiversion verfügt ein TButton über die Eigenschaften DropDownMenu und Style, den man auf bsSplitButton setzen kann und mit dem Popupmenu verbinden kann. Das ermöglicht dann vielleicht etwas in der Art, was du dir vorstellst [\Edit]


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