Menu verstecken
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
PebenderBetreff: Menu verstecken |
Mi, Feb 01, 2017 21:31 Antworten mit Zitat |
|
---|---|---|
Hallo,
ich habe eine Menüleiste erstellt mit einigen Einträgen, nun möchte ich einzelne Einträge deaktivieren. Code: [AUSKLAPPEN] ADMmenu=CreateMenu("&Admin",0,WindowMenu(window))
CreateMenu "Admin anle&gen",MENU_ADMan,ADMmenu,KEY_G,MODIFIER_COMMAND CreateMenu "A&dmin bearbeiten",MENU_ADMbe,ADMmenu,KEY_D,MODIFIER_COMMAND Ich habe es so probiert Code: [AUSKLAPPEN] DisableGadget (ADMmenu)
was im Prinzip auch funktioniert, dann ist aber das ganze Menü deaktiviert. Wie deaktiviere ich denn die Einträge, wenn ich es mit Disablemenu probiere, bekomme ich eine Fehlermeldung, das er INT nicht zu TGADGET konvertieren kann. mfg |
||
BMax & MaxGUI |
XeresModerator |
Mi, Feb 01, 2017 21:34 Antworten mit Zitat |
|
---|---|---|
Ich würde drauf tippen, dass du die Rückgabewerte von dem 2. und 3. CreateMenu verwenden musst - das sind doch die Menüeinträge? | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Pebender |
Mi, Feb 01, 2017 22:43 Antworten mit Zitat |
|
---|---|---|
Hallo,
Ja da hast du Recht. Habe ich aber auch schon probiert ohne Erfolg dann bekomme ich ja die oben genannte Fehlermeldung. Mit DisableMenu funktioniert es auch nicht. Aber danke dir für die Hilfe, ist wahrscheinlich ein AnfängerFehler. Das bekomme ich schon irgendwie hin. Mfh |
||
BMax & MaxGUI |
XeresModerator |
Mi, Feb 01, 2017 22:51 Antworten mit Zitat |
|
---|---|---|
Warum wird da Int anstatt TGadget benutzt?
Entweder du benutzt kein Strict oder du hast die runden Klammern bei den Funktionsaufrufen weggelassen und bekommst deshalb keinen richtigen Rückgabewert. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
FireballFlameBetreff: Re: Menu verstecken |
Do, Feb 02, 2017 5:41 Antworten mit Zitat |
|
---|---|---|
Pebender hat Folgendes geschrieben: Wie deaktiviere ich denn die Einträge Indem du die Einträge in einer Variablen speicherst (das hast du scheinbar nur beim übergeordneten Menü getan) und dann einfach DisableMenu damit aufrufst. Wo die Fehlermeldung mit dem "Int" herkommt, weiß ich nicht, aber du musst da irgendwas anderes gemacht haben.
|
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Pebender |
Do, Feb 02, 2017 8:56 Antworten mit Zitat |
|
---|---|---|
Danke füe eure Hilfe, vielleicht soll es mal so zeigen:
PseudoCode: Code: [AUSKLAPPEN] Global ADMmenu:TGadget 'Admin Menü (Hauptmenü) Const MENU_ADMan=125 'Untermenü, im Hauptmenü Admin, das deaktiviert werden soll ADMmenu=CreateMenu("&Admin",0,WindowMenu(window)) 'Hauptmenü Admin erstellen CreateMenu "Admin anle&gen",MENU_ADMan,ADMmenu,KEY_G,MODIFIER_COMMAND 'Untermenü erstellen If FileType(AppDir+"\Datenbank\admin.db") 'Überprüfung der Datei auf Existenz DisableMenu (ADM_ADMan) 'wenn die Datei existiert, Eintrag deaktivieren EndIf UpdateWindowMenu window und irgendwo habe ich einen Denkfehler.... mfg |
||
BMax & MaxGUI |
FireballFlame |
Do, Feb 02, 2017 10:17 Antworten mit Zitat |
|
---|---|---|
Ja, der liegt darin, dass du versuchst ADM_ADMan zu disablen, und das ist kein Menü sondern die Zahl 125.
Du musst bei DisableMenu das ensprechende Menü (d.h. das TGadget) angeben, und das bekommst du von CreateMenu zurückgegeben. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Midimaster |
Do, Feb 02, 2017 10:53 Antworten mit Zitat |
|
---|---|---|
Also... Jeder Menüeintrag benötigt eine eigene Variable vom Typ TGadget. Bei mir löse ich das mit einem Array.
Durch die Definition der Konstanten erreiche ich, das die Menu-Eintrage im Code so "heißen", wie im Menü. Durch direktes Ansprechen eines solchen Array-Eintrags kann ich nun einzelne Menüs ein-/ausschalten. Ebenso kann ich die Check-Haken setzen: BlitzMax: [AUSKLAPPEN] Type MDI |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Pebender |
Do, Feb 02, 2017 11:17 Antworten mit Zitat |
|
---|---|---|
Danke Midimaster,
ich habe das jetzt so gemacht anstatt: Code: [AUSKLAPPEN] CreateMenu "Admin anle&gen",MENU_ADMan,ADMmenu,KEY_G,MODIFIER_COMMAND 'Untermenü erstellen
habe ich Code: [AUSKLAPPEN] MENU_ADMan=CreateMenu ("Admin anle&gen",0,ADMmenu,KEY_G,MODIFIER_COMMAND)
gemacht, nun funktioniert es soweit, nun muss ich es nur noch in das richtige Event packen. |
||
BMax & MaxGUI |
Midimaster |
Do, Feb 02, 2017 17:30 Antworten mit Zitat |
|
---|---|---|
BlitzMax: [AUSKLAPPEN]
|
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Pebender |
Fr, Feb 03, 2017 8:56 Antworten mit Zitat |
|
---|---|---|
Hallo und Danke,
@Midimaster, ich habe das jetzt auf deine Art und Weise umgebastelt, jetzt funktioniert es auch. mfg |
||
BMax & MaxGUI |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group