AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speedbutton mit Hauptmenuepunkt?

Ein Thema von Mattze · begonnen am 18. Nov 2015 · letzter Beitrag vom 19. Nov 2015
Antwort Antwort
Seite 1 von 2  1 2      
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 18. Nov 2015, 12:10
@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.
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#2

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 18. Nov 2015, 17:39
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
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 18. Nov 2015, 18:17
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/
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 18. Nov 2015, 19:03
Ob ich dich richtig verstanden habe, weiß ich nicht genau.

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]
Angehängte Dateien
Dateityp: rar PopupMenuTest.rar (644,9 KB, 7x aufgerufen)
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo

Geändert von Captnemo (18. Nov 2015 um 19:45 Uhr)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#5

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 19. Nov 2015, 08:05
Hallo,

ich hatte eigentlich gehofft, dass ich mir den Umweg über das Popupmenue sparen und das "Hilfemenu" im Grunde als Popup am Speedbutton aufrufen kann.

Konkret:
Ich habe eine Toolbar, die mit dem Hauptmenue verknüpft ist.
Das Hilfemenue hätte ich aber gerne am rechten Rand und nicht als Toolbutton. (Ich möchte nur ein "?", keine Caption und die Dimensionen entsprechend einstellen. Das geht aber beim Toolbutton nicht! Wenn man in der Toolbar die Captions anzeigt, kann man den Button nicht mehr auf Bildgröße ändern, selbst, wenn man für den Toolbutton kein Caption angibt. Ist nur eine Kleinigkeit, sieht aber eben hübscher aus, wenn die Dimension des Schalters dem Bild entspricht!)
Also schreibe ich da einen Speedbutton hin. Das geht auch gut.
Das Problem war eben nur, wie kann ich mit dem Speedbutton das Hilfemenue direkt aufrufen und zwar positioniert am Hilfespeedbutton?

Aber mit dem Popup geht es auch. Wenn man da Ownerdraw:=true setzt, gibt es auch diese hässliche vertikalen Linie nicht mehr.

Gruß
Mattze
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 19. Nov 2015, 08:46
Eines ist und bleibt mir völlig unverständlich: Wieso schreibt man nicht gleich genau das, was man erreichen will, statt erst mit etwas völlig anderem anzufangen? Von einer Toolbar lese ich jetzt zum ersten Mal. Hilfreich, da du wohl leichte Schwierigkeiten damit hast, dich verständlich auszudrücken, wäre mit Sicherheit auch eine visuelle "Erklärung", also ein Bild davon, wie das, was du erreichen möchtest, aussehen soll.

Du möchtest also neben deiner Toolbar bzw. neben dem Toolbutton, der mit den Items im Menü Hilfe verknüpft ist, diese Items anzeigen. Ist das jetzt so richtig?
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#7

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 19. Nov 2015, 13:32
Ein Screenshot, wie es zur Zeit aussieht, wäre schon mal ein Anfang. Dann hätten wir besser eine Vorstellung von deinen Wünschen.

Des Weiteren denke ich, aber das ist nur meine Meinung, dass man a) das Mainmenu und seine Einträge dort lassen sollte, wo sie standardmäßig sind, weil jeder sie dort nun mal auch als erstes sucht und b) doppelte Menüs (ich meine natürlich nicht ein Popup für ein Listeneintrag) in einer Oberfläche Platzverschwendung ist. Aber wie gesagt, das ist nur meine Meinung.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#8

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 19. Nov 2015, 13:36
Hallo Perlsau,

um den Ball zurückzuspielen: Ich dachte doch tatsächlich, Du würdest verstehen, worum es geht.

Im Anhang: So soll es aussehen und so sieht es jetzt aus!

Gruß
Mattze
Angehängte Grafiken
Dateityp: jpg Menu.jpg (5,5 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 19. Nov 2015, 15:51
Na, dann hilft dir vielleicht das hier

Ähm...und wo ist der Unterschied zwischen den beiden Bildern?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo

Geändert von Captnemo (19. Nov 2015 um 15:53 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Speedbutton mit Hauptmenuepunkt?

  Alt 18. Nov 2015, 22:48
Hallo, das ist schon klar und kein Problem.
Was genau ist jetzt klar und kein Problem? Ich kann leider nicht hellsehen ...

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?
Auch das, was du als "Untermenüs" bezeichnest, sind Items. Alle Einträge in deinem TMainMenu sind Items. Und vor allem: Alle Menü-Items, die du über den Menü-Designer anlegst, erfordern zwingend das Belegen der Name-Eigenschaft. Name, das ist der Name, den deine Menüeinträge angeblich nicht haben.

Die Frage ist doch: Hat das Menü-Item, das du ausführen möchtest, bereits einen Event-Handler? Oder wenn du diese Frage nicht verstehst, anders ausgedrückt: Hast du im Menü-Designer einen Doppelklick auf den Menü-Eintrag ausgeführt und dadurch eine Ereignisbehandlung erzeugt und dort Befehle eingetragen, die ausgeführt werden sollen, sobald der Anwender diesen Menü-Eintrag anklickt? Wenn es da noch keinen Eventhandler gibt, dann wird beim Klick auf diesen Menüeintrag auch nichts ausgeführt. Gibt es bereits einen Eventhandler, dann trage den bei deinem Button in OnClick ein. Was ist daran jetzt so schwierig?

Oder willst du gar nicht dieses Ereignis auslösen und das ausführen, was im Eventhandler zu diesem Menüeintrag steht, sondern lediglich das Menü an dieser Stelle aufklappen? Also irgendwie solltest du schon deutlich machen, was du eigentlich erreichen willst oder was genau es bedeutet, wenn du schreibst: Ich möchte das "Untermenü", das an Hilfe hängt, über einen Speedbutton aufrufen. Das Untermenü kannst du nicht aufrufen, du kannst lediglich den Eventhandler aufrufen. Du kannst auch keinen Button aufrufen, sondern lediglich dessen Eventhandler. Deine Ausdrucksweise ist nicht eindeutig ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:18 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