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 7: Listboxes, GadgetItems und Iconstrips

The MaxGUI Beginner Tutorial Series - Tutorial 7: Listboxes, GadgetItems und Iconstrips
(c) Assari Dec 26 2005
Ins Deutsche übersetzt von simi

Nach dem ziemlich einfachen vorherigen Tutorial über Textfields und Label, wird dieses Tutorial über die Listboxen sein, was einfach ist. Aber wir sollten auch damit anfangen, die Welt der GadgetItems zu erforschen, was ein bisschen komplizierter ist.

Listbox

Ein Listbox-Gadget zeigt eine Liste von Einträgen (Items) an, von welchen der Benutzer eine Selektion treffen kann.

Listboxen werden mit der CreateListBox-Funktion erstellt:

Function CreateListBox:TGadget(x,y,w,h,group:TGadget,style=0)


Hier ist ein sehr simples Listbox-Beispiel:

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("ListBox-Beispiel", 200,200,320,240)
Local ListBox:TGadget=CreateListBox(10,10,200,100,MyWindow)

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


Es ist so simpel, dass nur eine leere Lixtbox mit keinen Einträgen drin angezeigt wird.

    Tut7 1


Um Items in unsere Lixtbox einzufügen, müssen wir die AddGadgetItem-Funktion benutzen. Sie hat folgende Syntax:

Function AddGadgetItem(gadget:TGadget,text$,flags=0,icon=-1,tip$="",extra:Object=Null)


Nicht so wie bei den vielen "CreateGadget"-Funktionen, ist die Syntax von AddGadgetItem zienlich anderst. Lass uns also Zeit nehmen, um die Parameter ein bisschen mehr anzusehen. Lass uns ein Item in unsere Listbox einfügen (fetter Text)

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("ListBox-Beispiel", 200,200,320,240)
Local ListBox:TGadget=CreateListBox(10,10,200,100,MyWindow)
AddGadgetItem
ListBox, "Das ist mein 1. Eintrag"

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


Wir bekommen nun einen Eintrag mit dem Text, den wir bei der AddGadgetItem-Funktion angegeben haben.

    Tut7 2

Function AddGadgetItem(gadget:TGadget,text$,flags=0,icon=-1,tip$="",extra:Object=Null)


Lass uns jetzt sehen, was passiert, wenn wir den flag-Parameter auf 1 setzen (wenn wir nichts angeben, ist er 0)

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("ListBox-Beispiel", 200,200,320,240)
Local ListBox:TGadget=CreateListBox(10,10,200,100,MyWindow)
AddGadgetItem
ListBox, "Das ist mein 1. Eintrag",1

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


Wir sehen nun, dass unser Eintrag hervorgehebt ist.

    Tut7 3


Nun lass uns einen zweiten Eintrag in unsere Listbox einfügen, auch mit dem Flag 1, um zu sehen, was passiert.

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("ListBox-Beispiel", 200,200,320,240)
Local ListBox:TGadget=CreateListBox(10,10,200,100,MyWindow)
AddGadgetItem
ListBox, "Das ist mein 1. Eintrag",1
AddGadgetItem ListBox, "Das ist mein 2. Eintrag",1

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


Auf dem Screenshot unten können wir sehen, dass nur ein Eintrag ausgewählt sein kann (hervorgehebt dargestellt). Wie wir im obigen Code sehen könnnen, kann ein Item ganz simpel mit der AddGadgetItem-Funktion hinzugefügt werden.

    Tut7 4


Der nächste optinale Parameter bei AddGadgetItem ist icon. Bevor wir diesen nutzen können, müssen wir uns mit einem anderen MaxGUI-Konzept vertraut machen, den Iconstrips.
 
Ein Iconstrip ist eine Reihe von Bildern/Icons, die zu Items in einigen Gadgets, die Listbox gehört dazu, hinzugefügt werden können. Ein Beispiel dafür für ein Iconstrip wäre die toolbar.bmp, die wir (wahrscheinlich) aus einer früheren BlitzBasic-Version kennen.

    Toolbar


Das obige Iconstrip ist eine BMP der Grösse 192x16, was heisst, dass 12 Icons (192/16=12) enthalten sind. Du kannst sie selber zählen, um dies zu überprüfen.

Lade dieses Bild auf deine Festplatte herunter und dann können wir es im untenstehendem Programm laden.

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("ListBox-Beispiel", 200,200,320,240)
Local ListBox:TGadget=CreateListBox(10,10,200,100,MyWindow)

Local IconStrip:TIconStrip=LoadIconStrip("D:My Documents on E_Toolbar.png")
SetGadgetIconStrip(ListBox, IconStrip)


AddGadgetItem ListBox, "Das ist mein 1. Eintrag",0,1
AddGadgetItem ListBox, "Das ist mein 2. Eintrag",0,9


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


Beachte, dass wir nun Icons neben unseren Einträgen haben.

    Tut7 6


Das aktuelle Icon, das neben unserem Item angezeigt wird, wird mit einem index angegebn. Der erste Eintrag hat den Iconindex 1 und der Zweite den Iconindex 9. (Du kannst es selber im obigen Iconstrip nachzählen, aber denke daran, dass du mit 0, und nicht mit 1 beginnen musst)


    AddGadgetItem ListBox, "Das ist mein 1. Eintrag",0,1
AddGadgetItem ListBox, "Das ist mein 2. Eintrag",0,9


Der letzte AddGadgetItem-Parameter, den wir anschauen wollen, ist der Tooltip-Parameter. Benutzen wir ihn nun in unserem Programm. Beachte die fetten Änderungen in Programm:

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("ListBox-Beispiel", 200,200,320,240)
Local ListBox:TGadget=CreateListBox(10,10,200,100,MyWindow)

AddGadgetItem ListBox, "Das ist mein 1. Eintrag",0,-1,"ToolTip für Eintrag 1"
AddGadgetItem ListBox, "Das ist mein 2. Eintrag",0,-1,
"ToolTip für Eintrag 2"

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


Starte das obige Programm. Wenn du die Maus ein, zwei Sekunden über den Eintrag hälst, wird eine gelbe Hinweisbox über dem Item erscheinen.

Beachte, dass ich beim Flag-Parameter 0 angegeben habe (keine Selektion) und -1 für den Icon-Parameter, um kein Icon für diesen Eintrag zu benutzen.

Der letzte Parameter extraObject ist fortgeschrittener, so dass wir ihn nicht in diesem Tutorial behandeln werden.

Zum Schluss...

OK, wir sind nun bereit um noch mehr Sachen mit unseren Lixboxen anzustellen, was wir im nächsten Tutorial auch tun werden.

Noch eine kleine Errinnerung, was wir in diesem Tutorial gelernt haben

  • Listboxen können mit CreateListBox erstellt werden
  • Um Einträge (Items) zu unseren Lixtboxen hinzuzufügen benutzen wir AddGadgetItem
  • AddGadgetItem hat Parameter wie tooltips und icons, welche uns erlauben das Aussehen zu beeinflussen
  • Icons können mit den LoadIconStrip und SetGadgetIconStrip-Funktionen hinzugefügt werden