German Menü mit "Addmenuitem" nur auf Startseite

Paulsche

Well-Known Member
Licensed User
Longtime User
Hallo, ich habe mehrere Layouts die in Panels geladen werden.
Ich habe Menüs für Einstellungen mit "activity.addmenuitem" zugefügt,
die aber in allen Layouts aufrufbar sind, die Menüs sollen aber nur vom ersten Layout aufrufbar sein, wie kann ich das anstellen ?

Wie ich das sehe, kann die Menüs nur der Activity zufügen, nicht einem Layout ,
richtig ?
 

klaus

Expert
Licensed User
Longtime User
So wie Du es darstellst geht es leider nicht.
Menüs können nur Activities zugewiesen werden, und können dann auch nicht mehr geändert werden.
Wenn Du verschiedene Menüs brauchst musst Du mit mehreren Activities arbeiten.
Ich verwende keine Menüs und arbeite mit Buttons, jedes Panel hat seine eigene Buttons. Der einzige Nachteil ist der nötige Platzbedarf. Hat für mich aber mehr Vorteile als Nachteile. Ein Beipiel dafür findest Du hier SQLiteDB.

Beste Grüsse.
 

CDPeter

Member
Licensed User
Longtime User
Hi,
ich hab mal gestöbert und den Befehl Activity.CloseMenu gefunden, aber so richtig aussagekräftig ist die Beschreibung dafür nicht. Wenn es das macht, was ich vermute (zum Testen bin ich noch nicht gekommen!) dann könnte man ja bei Aufruf des jeweiligen Panels auch neue Menüs erzeugen ... oder mach' ich da einen Denkfehler!?!?
LG von Peter
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Ah ok , danke .

Dann muss ich umdenken, entweder das Systemmenü nicht benutzen
oder einen Merker setzen und im jeweiligen Menüpunkt abfragen ob ich auf der Startseite bin, und dann evtl. abbrechen, muss ich testen.

evtl. so:

B4X:
Sub MNU_Einstellungen_click                                             ' Einstellungen
   If    pnl00Startseite.Visible      = True Then                                    ' Startseite ausblenden
      Msgbox("OK, Menü Einstellungen","")
   Else
      Msgbox("Menü hier nicht erlaubt","")
   End If
End Sub

Unschön ist halt dass das Menü zuerst trotzdem aufgeht und dann beim klicken erst "nicht erlaubt" kommt, aber man kann nicht alles haben ;)
 
Last edited:
D

Deleted member 103

Guest
Hallo Paulsche,

also ich persönlich würde dazu mehrere Activities und Layouts verwenden.
Vorteil, du kannst verschiedene Menü einbauen und dein Code ist viel übersichtlicher.

Ciao,
Filippo
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi Filippo,

booaa, :eek: da sagst Du was, hab mein Programm fast fertig, ne lass mal, jetzt bau ich nix mehr groß um wegen dem Menü, trotzdem danke für den Hinweis :)
.
 

klaus

Expert
Licensed User
Longtime User
Da Du nur ein Menü hast das Du je nach dem sichtbaren Panel entewder anzeigen willst oder nicht kannst Du es folgendermassen abfangen.
B4X:
[SIZE=2][FONT=Courier New][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]Sub [/COLOR][/FONT][/SIZE][/COLOR][/FONT][/SIZE][/COLOR][/FONT][/SIZE][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]Activity_KeyPress (KeyCode [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b]Int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]) [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b]Boolean[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT]
[FONT=Courier New][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]  If[/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][SIZE=2] KeyCode = [/SIZE][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]KeyCodes[/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][SIZE=2].KEYCODE_MENU [/SIZE][/SIZE][/FONT][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]Then[/COLOR][/FONT][/SIZE]
[/COLOR][/SIZE][/COLOR][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]    If[/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][SIZE=2] pnl00Startseite.Visible = [/SIZE][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]True [/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/FONT][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]Then[/COLOR][/FONT][/SIZE]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]      Return [/COLOR][/FONT][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]False[/COLOR][/FONT][/SIZE]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]    Else[/COLOR][/FONT][/SIZE]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]      Return [/COLOR][/FONT][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]True[/COLOR][/FONT][/SIZE]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]    End [/COLOR][/FONT][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]If[/COLOR][/FONT][/SIZE]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]  End [/COLOR][/FONT][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]If[/COLOR][/FONT][/SIZE]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][SIZE=2][FONT=Courier New][COLOR=#0000ff]End Sub[/COLOR][/FONT][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE]

Beste Grüsse.
 

JOTHA

Well-Known Member
Licensed User
Longtime User
... bei mir funzt gar nix!

@ Alle,
... alles schön und gut!
Ich mache es grundsätzlich auch wie Klaus und arbeite mit Buttons.

Ich habe jetzt aber mal interessehalber damit herumexperimentiert (um Paulsche eventuell helfen zu können) und dabei erstaunt festgestellt, dass bei mir das Menü überhaupt nicht funktioniert!

So müsste es doch klappen (abgespeckt dargestellt), oder?
B4X:
Sub Activity_Create(FirstTime As Boolean)
Activity.AddMenuItem("Programm beenden", "ProgrammBeenden")
End Sub

Sub ProgrammBeenden
ToastMessageShow("Programm beenden", False)
Activity.Finish
End Sub

Alles was dabei passiert, ist das das Menü eingeblendet wird, wenn ich aber in das Menü auf "Programm beenden" klicke, passiert nichts!

Es wird weder die Message angezeigt, noch wird die App beendet.

Woran kann das liegen?
 

CDPeter

Member
Licensed User
Longtime User
Hi Jotha,
@ Alle,
... alles schön und gut!
Ich mache es grundsätzlich auch wie Klaus und arbeite mit Buttons.

Ich habe jetzt aber mal interessehalber damit herumexperimentiert (um Paulsche eventuell helfen zu können) und dabei erstaunt festgestellt, dass bei mir das Menü überhaupt nicht funktioniert!

So müsste es doch klappen (abgespeckt dargestellt), oder?
B4X:
Sub Activity_Create(FirstTime As Boolean)
Activity.AddMenuItem("Programm beenden", "ProgrammBeenden")
End Sub

Sub ProgrammBeenden
ToastMessageShow("Programm beenden", False)
Activity.Finish
End Sub

Alles was dabei passiert, ist das das Menü eingeblendet wird, wenn ich aber in das Menü auf "Programm beenden" klicke, passiert nichts!

Es wird weder die Message angezeigt, noch wird die App beendet.

Woran kann das liegen?

die Sub ProgrammBeenden muss ProgrammBeenden_Click heissen ...
LG von Peter
 

JOTHA

Well-Known Member
Licensed User
Longtime User
Hallo CDPeter,
die Sub ProgrammBeenden muss ProgrammBeenden_Click heissen ...
nach zig-tausenden Programmzeilen passiert mir sowas! :eek:

Natürlich hast Du recht!

Manchmal sieht man vor lauter Bäumen den Wald nicht!

DANKE Dir! :)
 

Paulsche

Well-Known Member
Licensed User
Longtime User
@ Alle,
... alles schön und gut!
Ich mache es grundsätzlich auch wie Klaus und arbeite mit Buttons.

Ich habe jetzt aber mal interessehalber damit herumexperimentiert (um Paulsche eventuell helfen zu können) und dabei erstaunt festgestellt, dass bei mir das Menü überhaupt nicht funktioniert!

So müsste es doch klappen (abgespeckt dargestellt), oder?
B4X:
Sub Activity_Create(FirstTime As Boolean)
Activity.AddMenuItem("Programm beenden", "ProgrammBeenden")
End Sub

Sub ProgrammBeenden
ToastMessageShow("Programm beenden", False)
Activity.Finish
End Sub

Alles was dabei passiert, ist das das Menü eingeblendet wird, wenn ich aber in das Menü auf "Programm beenden" klicke, passiert nichts!

Es wird weder die Message angezeigt, noch wird die App beendet.

Woran kann das liegen?

Klaus, was soll ich sagen, es funktioniert mit Deinem Code :sign0098:

Danke.
 
Top