German Benötige Tipps für den Design

pucki

Active Member
Licensed User
Ich bin noch Anfänger in B4x. Ich code nur schon seit 30 Jahren in anderen Sprachen. Hauptsächlich die letzten 20 Jahre fast in Visual-Basic. Also habt Mitleid mit ein armen Kerl wie mir ;)

Gruß

Pucki
 

pucki

Active Member
Licensed User
hihi. Jetzt weiß ich auch wieso ich die Xui - Libs nicht kenne. Die gibt es erst ab 8.8. Und die Version kann ich mir nicht leisten. Ich hab noch die 7.3 ;(

Gruß

Pucki
 

Alexander Stolte

Expert
Licensed User
Wie aber sage ich den El2m2nten, das sie alle der Panel gehören?
hättest du Erel's Videos geschaut, wie von DonManfred empfohlen, wüsstest du es ;)
Sei froh, dass du als Anfänger die Videos hast, ich hatte diese damals nicht. :eek:

Du kannst im Designer, einfach das Panel selektieren und dann kannst du weitere Views diesem hinzufügen.
Oder per code mit
B4X:
mypnl.AddView(mysecondpanel,0,0,50dip,50dip)
 

pucki

Active Member
Licensed User
Ich mache das so.
1.) Im Designer das Hauptfenster machen (besteht in der Regel nur aus den den Menü-Button und ein Titel.
Das knalle ich da panels drauf soviel wie ich brauche. Fertig speichern. Mach ich unter des_leer.

Nun ein neues Design aufmachen. Da die passenden Elemente drauf und unter des_einstellungen z.b. speichern. Ich habe mir zur Angewohnheit gemacht alle Design-Dateien immer mit "des_" am Anfang abzuspeichern. Wichtig ist das man darauf achtet das das Panel_design in der HÖHE kleiner sein muss.

Nun brauchst du noch folgenden Code.

B4X:
Sub Globals
    Dim menu As prg_menu
   
'Dim anz_zeilen As Int
   
dim Status as String
   
    Dim my_panel_1 As Panel
    Dim my_panel_2 As Panel
 



End Sub

Sub Activity_Create(FirstTime As Boolean)
 
    Activity.LoadLayout("des_leer") ' läd und init. das Hauptbildschirm (sie oben)
    my_panel_1.Top = 40dip  ' ' damit das Menü (aus den Hauptdesign des_leer)  zu lesen ist
    my_panel_1.Left = 0
    my_panel_1.Height  = 840dip
    my_panel_1.Width   = 1440dip
    my_panel_1.LoadLayout("des_einkauf")  ' läde das 1 Panel
    my_panel_1.Visible = True ' und zeigt es an

    my_panel_2.Top = 40dip  ' damit das Menü (aus den Hauptdesign des_leer)  zu lesen ist
    my_panel_2.Left = 0
    my_panel_2.Height  = 840dip
    my_panel_2.Width   = 1440dip
    my_panel_2.LoadLayout ("des_einstellungen") ' das 2 Panel
    my_panel_2.Visible = False ' und versteckt es

Status = "hauptfenster"

end sub

Sub Activity_KeyPress (KeyCode As Int) As Boolean
  
   If KeyCode = KeyCodes.KEYCODE_BACK Then
       If my_back = "einstellungen" Then
           my_panel_1.Visible = True
           my_panel_2.Visible = False
           my_back = ""
       End If
       Return True
   End If
  
end sub

Wird nun im Menu "Einstellungen" ausgewählt, schreib ich folgendes.

B4X:
Sub menu_Click(Position As Int, Value As String)
    my_panel_1.Visible = False
    my_panel_2.Visible = False
    If Position = 0 Then 
      Status = "hauptfenster"
       my_panel_1.Visible = true
       Return
    End If
    If Position = 1 Then
       Status = "einstellungen"
        my_panel_2.Visible = True
        Return
    End If
end sub

Die Status-Variable ist wichtig damit ich immer weiß wo ich bin. So kannst du über die Back-Taste oder über das Menü zurück.

Das Spielchen mit den Panels kannst du weiter machen bis der Speicher platzt. Du kannst die Panels in Größe und Form verschieben.

Ein Panel ist im Prinzip das selbe wie in VB eine Groupbox. Aber das Kind braucht öfters mal ein neuen Namen.;) In VB brauchst du Groupboxen eigentlich nur um Radio-Buttons zu gruppieren. Hier kannst du damit viel mehr machen, weil sie dir (anders als in VB) nicht den Bildschirm zumüllen beim Entwickeln deines Design. !!

Gruß

Pucki
 
Last edited:

pucki

Active Member
Licensed User
Eine Oberfläche selbst bauen kann jedes Kind. Das ist mit den Designer Kinderleicht (Bis auf die Farben damit hab ich auch meine liebe not ;) )

Einfach die Objekte nehmen, dahin schieben wo sie hingehören. Die Deklarationen die man braucht AM ENDE am besten den Designer in den Code schreiben lassen. "DIM as ****" und "SUB ***_click " und so für die Ereignisse weiter.

Dann fertig. In VB machst du das fast genau so. "Malen" auf die Form. Nur in B4a musst / solltest du die Ereignisse die du brauchst im Designer anmelden. In VB ist das Doppelclick auf das Objekt und wenn das falsche Ereignis kommt, oben rechts im Menü das richtige auswählen (und das falsche Löschen damit der Code nicht zugemült wird).

Wenn du etwas fertiges nimmst hast du in der Regel 100 x mehr Arbeit. Der Grund ist du musst erst mal heraus finden, was der andere wie gemacht hat.
Davon abgesehen kann das unter Umständen rechtliche Probleme bringen. (Recht am Design, Urheberrecht) besonders wenn Bilder da mit drin sind.

Gruß

Pucki
 
Top