[Text] PopupMenu für Anfänger Verfasst am: 28.03.2007, 19:23
Thema: PopupMenu
Heute möchte ich euch zeigen wie man ein Popupmenu erstellt und damit umgeht.
Falls jemand nicht weiß was ein Popupmenu ist: Das ist das Kontextmenü wenn ihr mit der rechten Maustaste an irgendeine Stelle klickt.
1. Wozu braucht man ein PopupMenu?
Popmenüs können sehr praktisch sein, besonders für den User der euer Programm in Zukunft benutzen soll, da man viele Funktionen schnell zu Verfügung hat.
Besonders, wenn man sein Programm nur als TrayIcon anzeigen lässt ohne Form am Desktop, ist ein PopupMenu sehr hilfreich, da dem Benutzer über einen Klick auf das Trayicon die Möglichkeit gegeben wird, schnell und einfach zu entscheiden welche Funktion er ausführen möchte.
Also, Zusammengefasst sind PopupMenus eine Möglichkeit an jeder Stelle schnell an alle Funktionen ranzukommen und außerdem Platz sparend.
2. Menü anlegen
Wie legt man also ein Menü an?
Ihr drückt einfach mit der rechten Maustaste auf eure Form und wählt den Menü-Editor. Dann seht ihr erstmal dieses Fenster.
Unter Caption: könnt ihr einen Namen angeben, der in der Liste dann angezeigt wird.
Unter Name: müßt ihr einen Einzigartigen Namen angeben so wie ihr es für jeden Button, Form, Textbox usw. tut.
Mit den Pfeilbuttons könnt ihr die Einträge dann verschieben.
Davon sind die Buttons links und rechts interessant. Damit könnt ihr Menüs mit ihren Untermenüs erstellen.
Hier mal ein Beispiel.
So haben wir also einmal das Hauptmenü „Menu“ und dazu die Einträge in diesem Menü.
3. Rechte Maustaste abfragen
Hier müßt ihr erstmal entscheiden wo ihr das Menü anzeigen wollt.
Also, ob es in einer Textbox, Listbox oder vielleicht auf der Form sein soll.
Ich mach es einfach mal auf der Form als Beispiel.
Code:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Call PopupMenu(menu)
End If
End Sub
Button 2 ist also die rechte Maustaste. Ihr könnt natürlich auch die Linke Maustaste abfragen wenn ihr wollt.
Durch Call PopupMenu(menu) wird dann Euer Hauptmenü aufgerufen.
4. Extras
1. Trennlinien
Wie macht man diese Trennlinien zwischen bestimmten Menüeinträgen?
Ganz einfach.
Ich braucht natürlich ein Hauptmenü indem ihr einen Eintrag erstellen könnt.
Den neuen Eintrag müßt ihr auch einen Namen vergeben.
Schreibt einfach Linie1.
Unter Caption macht ihr einfach einen einzelnen Bindestrich.
Dieser wird euch dann als Trennlinie angezeigt.
So könnt ihr euer Menü also gruppieren.
2. Shortcuts
Wie ihr sicher schon gesehen habt, könnt ihr im Menü-Editor für jeden Eintrag
einen Shortcut bestimmen. Dabei solltet ihr natürlich darauf achten keinen
Shortcut doppelt zuzuweisen.
Aber ihr kennt auch sicher die Möglichkeit über Alt und dem
unterstrichenen Buchstaben.
Diese Möglichkeit kann man dem Benutzer auch ganz einfach bieten.
Schreibt einfach bei Caption vor den Buchstaben den ihr als Shortcut wollt
ein „&“.
Bsp.: &Datei Öffnen
3. Menü nicht sichtbar auf der Form
Falls ihr nicht wollt dass das Menü oben in der Form angezeigt wird,
müßt ihr nur bei den Eigenschaften des Hauptmenüs die Option visible
deaktivieren.
So wird das Menü nur über die rechte Maustaste aufgerufen und ist sonst nicht
sichtbar.
5. Ein Dynamisches Menü
Um ein Dynamischen Menü zu realisieren muss man einen Menüpunkt als Array anlegen.
Dieses Array können wir dann erweitern wie wir wollen, oder auch Einträge wieder rauslöschen.
Um ein Array anzulegen braucht ihr nur bei einem Eurer Einträge bei dem Punkt Index: eine Null hineinschreiben.
Den Eintrag mit dem Index 0 nenne ich jetzt einfach mal „List1_men“.
Um das Array zu erweitern brauchen wir jetzt diesen Code:
Code:
Load List1_men(1)
List1_men.Caption = “List2”
In der ersten Zeile legen wir einen weiteren Punkt im Array List an. Nämlich List(1).
In der zweiten Zeile übergeben wir diesem neuen Punkt einen Namen der dann angezeigt wird.
Wenn ihr wieder einen Eintrag entfernen wollt, braucht ihr diesen Code.
Code:
Unload List1_men(1)
Wenn ihr wissen wollt, wie groß das Array ist, bzw. wie viele Einträge ihr erstellt habt, schreibt ihr das.
Code:
List1_men.Count
Das ist natürlich für Schleifen sehr praktisch.
Außerdem könnt ihr auch Einträge deaktivieren, so dass sie nicht angeklickt werden können.
Code:
List1_men(1).Enabled = False
Wie erkennt man jetzt, welcher dieser Einträge angeklickt wurde?
Dadurch, dass wir aus List1 ein Array gemacht haben sieht der Code jetzt etwas anders aus.
Code:
Private Sub List1_men_Click(Index As Integer)
End Sub
Wie ihr seht wird uns jetzt ein Index übergeben, wenn der Benutzer auf einen Eintrag klickt.
Mit diesem Index könnt ihr dann auf den Eintrag zugreifen und abfragen was ihr benötigt.
Hier ein Beispiel:
Code:
Private Sub List1_men_Click(Index As Integer)
Select case Index
Case 1
Text1.Text = List1_men.Caption
Case 2
Text2.Text = List1_men.Caption
End select
End Sub
6. Häkchen vor einen Eintrag setzen
Häkchen setzen kann man einfach über
Code:
List1_men(1).Checked = True
Und deaktivieren natürlich über False.
So könnt ihr dem Benutzer zeigen welche Option gerade aktiv ist.
Das war es wieder mal.
Ich hoffe ihr könnt eure Programme um eine interessante Funktion erweitern und habt was gelernt.
Mit freundlichen Grüßen, ZiG _________________ Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
Zuletzt bearbeitet von ZiG_ am 15.11.2007, 22:19, insgesamt 2-mal bearbeitet
fakerl_ Tutorial Leser
Anmeldedatum: 11.03.2007 Beiträge: 33
Verfasst am: 24.06.2007, 10:42
irgentwie geht das bei mir nicht, ich geh auf meine Form und drück die Rechte maustaste und was kommt NIX.
Ich nutze Microsoft Visual Basic 6....
weiss jmd woran das liegt? _________________ wtf?!
Amethyst_ Poster
Anmeldedatum: 24.02.2007 Beiträge: 172
Verfasst am: 24.06.2007, 11:28
fakerl hat Folgendes geschrieben:
irgentwie geht das bei mir nicht, ich geh auf meine Form und drück die Rechte maustaste und was kommt NIX.
Ich nutze Microsoft Visual Basic 6....
weiss jmd woran das liegt?
Strg + E _________________
boehser enkel_ Tutorial Leser
Anmeldedatum: 29.07.2007 Beiträge: 40
Verfasst am: 04.03.2008, 22:25
nettes tut
würe mich noch über n update freuen (menü mit icons?) _________________
ZiG_ Überflieger
Anmeldedatum: 07.03.2007 Beiträge: 1248
Verfasst am: 05.03.2008, 09:09
Normal werden Icons nicht unterstützt, aber wahrscheinlich kann man das per Api regeln. (Google hilft weiter)
Ich würde dir aber einfach eine nette ActiveX Komponente empfehlen womit man das regeln kann. Bei CoolXP gibt es z.B. so eine. _________________ Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
boehser enkel_ Tutorial Leser
Anmeldedatum: 29.07.2007 Beiträge: 40
Verfasst am: 05.03.2008, 14:05
ja hab schon n source gefunden und arbeite mich mal durch _________________