MaxGUI EventExtra und ListBox Beispiel

Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials

Neue Antwort erstellen

Markus2

Betreff: MaxGUI EventExtra und ListBox Beispiel

BeitragMo, Dez 11, 2006 1:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Trick an EventExtra ist das man das Object was man zurück bekommt
einer Struktur als Parameter übergeben kann .
Natürlich sollte man wenn man die ListBox füllt mit
AddGadgetItem dort auch die selbige als Parameter bei Extra:Object rein tun .

Einfach mal in die Liste klicken und auch mal nen doppel Klick machen .

Code: [AUSKLAPPEN]

'Für BlitzMax 1.22 mit MaxGUI
'M.Rauch 11.12.2006

SuperStrict

Type TItem
 Field Name:String
 Field Wert:Int
 '...

 Function NewItem:TItem(Name:String,Wert:Int)
  Local I:TItem = New TItem
  I.Name=Name
  I.Wert=Wert
  Return I
 End Function

End Type

MainLoop()
End

Function MainLoop()

 Local MainWindow:TGadget=CreateWindow("BlitzMax MaxGui und EventExtra",ClientWidth(Desktop())/2-200,ClientHeight(Desktop())/2-200,400,400,Null,WINDOW_TITLEBAR|WINDOW_STATUS)

 Local Item:TItem
 Local MeineItems:TList=CreateList()

 MeineItems.Addlast TItem.NewItem("Banane",100)
 MeineItems.Addlast TItem.NewItem("Apfel",200)
 MeineItems.Addlast TItem.NewItem("Birne",300)

 '----------
 Local MeineListeBox:TGadget=CreateListBox(0,0,128,128,MainWindow)
 'Aus einer Liste die Listbox füllen
 ClearGadgetItems MeineListeBox
 For Item= EachIn MeineItems      
  AddGadgetItem MeineListeBox,Item.Name,0,-1,"",Item
 Next 

 '----------

 Repeat
  WaitEvent() 
  Select EventID()
  '---------------------
  Case EVENT_WINDOWCLOSE
   Select EventSource()
   Case MainWindow
     If Confirm("Wirklich beenden ?")=True Then Exit
   End Select
  '---------------------
  Case EVENT_GADGETACTION
    Select EventSource()
    Case MeineListeBox
     Item=TItem(EventExtra())
     If Item=Null Then
      SetStatusText MainWindow,"Klick ins leere :)"
     Else
      SetStatusText MainWindow,"Klick "+Item.Name+":"+Item.Wert
     EndIf
    End Select
  '---------------------
  Case EVENT_GADGETSELECT
    Select EventSource()
    Case MeineListeBox
     Item=TItem(EventExtra())
     If Item=Null Then
      SetStatusText MainWindow,"Nichts ausgewählt"
     Else
      SetStatusText MainWindow,"Auswahl "+Item.Name+":"+Item.Wert
     EndIf
    End Select
  '---------------------
  End Select

 Forever 'Event Hauptschleife

End Function

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group