MainMenu: Welcher Unterpunkt wurde gewählt?
-
Hallo zusammen,
ich möchte in meinem MainMenu gerne einen Punkt, der (wie in Windows-Anwendungen üblich) "Fenster" heißt und alle derzeit offenen Fenster auflistet. Das auflisten klappt ja noch recht gut, jedoch hab ich das Problem, daß bei einem CLICK auf einen dieser zur Laufzeit erstellten Menüpunkte auch das jeweilige Fenster öffnen muß.
Ich kann zwar dem OnClick jedes neuen Menüeintrags toll was zuweisen, jedoch muß ich - um jeweils auch das richtige Fenster anzusprechen - auch wissen, welcher der Punkte des Untermenüs angeklickt wurde.
Hab's schon mit
MainMenu1->Items->MenuIndex
probiert, aber das ist nicht wirklich hilfreich
Für einen kleinen Tip wäre ich sehr dankbar,
Mipe
-
Den Parameter "Sender" auswerten vielleicht?!?
(-> FAQ, abschnitt Komponenten)
-junix
-
ich habe das bei mir so gelöst, dass ich den fensternamen in der Hint-Eigenschaft des Menüelements vermerke und dann im OnClick alle Fenster (Name)durchsuche und mit dem aktuellen (Hint) vergleiche. wenn gefunden, dann wird es wieder angezeigt (in den vordergrund geholt).
-
Hallo,
Man könnte auch jeden untergeordnete Fenster eine Nummer geben und die dann im Tag des MenuItems speichern. Bei einer MDI Anwendung sind diese Nummern ja schon vorhanden.
Ciao
-
Naja was andres ist ein Handle auch nicht...
-
Klar kannst du da auch das Fenster-Handle reinschreiben. Du musst dann bloss über die WinAPI gehen um damit auf das Fenster zugreifen zu können. Ich versuche normalerweise WinAPI zu vermeiden, wenns nicht unbedingt nötig ist.
[ Dieser Beitrag wurde am 12.06.2003 um 16:44 Uhr von Braunstein editiert. ]
-
Naja man könnte sich den Handle einfach mit ->Handle schnappen, dann zu einem long casten und dann so arbeiten als hätte man die Nummer per Hand verteilt.
Aber vieleicht wäre es einfacher die Eigenschaft "Tag" zu benutzen und dann Sender->Tag
-
und was willst du mit dieser Zahl dann anfangen ? Auf long casten musst du sowieso nicht.
Ich gehe hier aber mal davon aus das dieses Menu in einer Applikation ist was die anzuzeigenden Fenster erstellt hat. In diesem Fall hast du ja meistens sowieso eine Liste der untergeordneten Fenster (oder kannst dir eine erstellen) und somit auch einen Index.
-
Original erstellt von Mipe:
ich möchte in meinem MainMenu gerne einen Punkt, der (wie in Windows-Anwendungen üblich) "Fenster" heißt und alle derzeit offenen Fenster auflistet. Das auflisten klappt ja noch recht gut, jedoch hab ich das Problem, daß bei einem CLICK auf einen dieser zur Laufzeit erstellten Menüpunkte auch das jeweilige Fenster öffnen muß.Hi,
ich glaube das macht MDI selber! Bei den MDI-Childs muss man nur irgendwo den Menüpunkt einstellen! Und sowas wie Nebeneinander gibt's ja im ActionManager als vordef. Aktion!MFG
Alexander Sulfrian
-
hallo,
alexander hat recht, mdi erledigt das von hause aus allein. du brauchst keine zeile code zu schreiben, du mußt nur ein paar eigenschaften im objectinspector einstellen und dann geht alles von allein. ich habe es selber schon mal so gemacht. dein hauptfenster ist ja eine mdi-form, dieses form hat eine eigenschaft namens windowmenu, in diesem property musst du einstellen, welches menü das ist, wo deine fenster aufgelistet werden sollen. an dieses menü werden dann alle fenster angehängt. es kann sein, dass ich noch was vergessen hab, wie gesagt, ist schon lange her, geht aber 100%, ohne eine zeile code...
mfg
murph