Growbook, Cannabis, Notizbuch, Growbuch, Pflanzenzucht, Samenbank, Seedbank, Software, Stammbaum, Kreuzen, züchten,growen,anbauen,News,GIB,Lux,Omega,Mars, Dünger,BioBizz,Hesi,Athena,
die Software für deinen Anbau

Willkommen

Tutorial 11: Tabbers

The MaxGUI Beginner Tutorial Series - Tutorial 11:  Tabbers
(c) Assari Dec 28 2005
Ins Deutsche übersetzt von simi

In diesem Tutorial werden wir uns mit Tabbers beschäftigen. Bein einem Tabber hat man sozusagen eine Auswahl zwischen verschiedenen Seiten. Er wird meistens zum Anzeigen von mehreren Dokumenten benutzt.

Schauen wir ein einfaches Tabber-Beispiel an:

    SuperStrict
Import MaxGui.Driver
Local MyWindow:TGadget=CreateWindow("Tabber-Beispiel", 200,200,320,240)
Local Tabber:TGadget=CreateTabber(10,10,290,140,MyWindow)

AddGadgetItem  Tabber,"Erster Item"
AddGadgetItem  Tabber,"Zweiter Item"

Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
   End Select
Forever


Wir wir unten sehen können, wir bei jedem AddGadgetItem-Aufruf ein neuer Tab zum unserem Tabber-Gadget hinzugefügt. Wechsle zwischen den verschiedenen Tabs. Im Moment passiert noch nicht so viel.

    Tut11 1


Ein Tabber muss zusammen mit anderen Gadgets benutzt werden, um irgendeinen Sinn zu machen. Im untenstehenden Programm benutze ich Labels.

    SuperStrict
Import MaxGui.Driver
Local MyWindow:TGadget=CreateWindow("Tabber-Beispiel", 200,200,320,240)
Local Tabber:TGadget=CreateTabber(10,10,290,140,MyWindow)

Local Label0:TGadget=CreateLabel("Label0: Irgendws Tolles...",50,20,200,40,Tabber)
Local Label1:TGadget=CreateLabel("Label1: Hier gäbe es auch irgendwas...",50,20,200,40,Tabber)


AddGadgetItem  Tabber,"Tab 0"
AddGadgetItem  Tabber,"Tab 1"
SelectGadgetItem  Tabber,1

Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
  Case EVENT_GADGETACTION
   Select EventData()
   Case 0
     HideGadget Label1
     ShowGadget Label0
   Case 1
     HideGadget Label0
     ShowGadget Label1
   End Select 

   End Select
Forever


Wenn wir auf die Tabs klicken, erscheint der dazugehörige Text.

    Tut11 2
Tut11 3


In Tabbers muss ein bisschen Arbeit/Code investiert werden, um die Illusion zu erwecken, dass die Tabs wirklich einen Inhalt haben. Deshlab ist man auf andere Gadgets (wie das Label) angewiesen, um ihnen einen Inhalt zu geben.

Was Tabbers aber senden, sind Events, auf die wir reagieren können. Lass uns das Programm im Detail ansehen.

    SelectGadgetItem  Tabber,1


Wie bei anderen, listenbasierten Gadgets (Listboxen und Comboboxen), sind auch hier viele der früher erklärten Funktionen gültig. Der SelectGadgetItem-Befehl wählt Tab1 aus.

   
  Case EVENT_GADGETACTION
   Select EventData()
   Case 0
     HideGadget Label1
     ShowGadget Label0
   Case 1
     HideGadget Label0
     ShowGadget Label1
   End Select 


Wenn der User auf einen der Tabs klickt wir von MaxGUI ein EVENT_GADGETACTION gesendet. Wir müssen dann die EventData mit der EventData()-Funktion überprüfen. Wenn der Benutzer den ersten Tab anklickt, gibt EventData() 0 zurück und wenn der Benutzer den zweiten Tab auswählt, liefert EventData() 1 zurück.

Die HideGadget und ShowGadget Funktion werden dann benutzt, um den korrekten Gadget im Tabber-Bereich anzuzeigen. Ich hoffe es ist klar, dass die Tabber nicht individuelle "Flächen" für jeden Tab haben. Der Programmierer muss deshalb das Anzeigen des richtigen Inhalts übernehmen, wenn der Benutzer auf einen Tab klickt.

Wenn wir viele Tabs in unserem Tabber haben, erscheint eine Scrollbar. Lass uns ein Beispiel ansehen

    SuperStrict
Import MaxGui.Driver
Local MyWindow:TGadget=CreateWindow("Tabber-Beispiel", 200,200,320,240)
Local Tabber:TGadget=CreateTabber(10,10,290,140,MyWindow)

For Local i:int=500 To 510
AddGadgetItem  Tabber,i
Next

Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
   End Select
Forever


Beim Drücken auf den rechten oder linken Pfeil bewegen sich die Tabs.

    Tut11 4


Wir können auch unsere Tabs mit Icons verschönern, wie bei den List- oder ComboBoxen. Hier ist ein Beispiel:

    SuperStrict
Import MaxGui.Driver
Local MyWindow:TGadget=CreateWindow("Tabber-Beispiel", 200,200,320,240)
Local Tabber:TGadget=CreateTabber(10,10,290,140,MyWindow)

Local IconStrip:TIconStrip=LoadIconStrip("D:My Documents on E_Tutorialstoolbar.bmp")
SetGadgetIconStrip(Tabber, IconStrip)


AddGadgetItem  Tabber,"Erster Item",0,5
AddGadgetItem  Tabber,"Zweiter Item",0,6

Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
   End Select
Forever


Unsere Tabs haben nun Icons. Viele der andere Funktionen, die wir in unseren früheren Listbox-Tutorials angeschaut haben, sind auch für die Tabber gültig.

    Tut11 5



Zum Schluss...

Tabbers sind sehr einfache Gadgets, die in allen modernen GUIs erscheinen. Immer wenn es eine grosse Anzahl von Sachen (z.B. Optionen) zu managen gibt, werden Tabbers angewendet.

Errinner wir uns, was wir bis jetzt gelernt haben

  • Tabbers können mit der CreateTabbers-Funktion erstellt werden.
  • Tabbers sind auch listenbasiert, wie Listboxen und Comboboxen. Viele der Gadget-Funktionen wie AddGadgetItems, ModifyGadgetItems können auch auf Tabber angewendet werden.
  • Icons können mit LoadIconStrip und SetGadgetIconStrip zu den Tabs hinzugefügt werden.