Kleine hilfe zu TList

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

c64

Betreff: Kleine hilfe zu TList

BeitragSa, Aug 27, 2005 10:51
Antworten mit Zitat
Benutzer-Profile anzeigen
(enstand als kleine übung für mich zum einstig in Bmax >Tlist<
vieleicht kann es den einen oder anderen auch weiter helfen )

Meine wenigkeit hat das gerüst gebastelt .

Aber die Funktionalität wurde erst durch Klepto2 seine hilfe möglich THX!


Code: [AUSKLAPPEN]


Strict

Type Atype
EndType

 ' EINE TLIST erstellen mit dem namen MEIN_SCHRANK

 Global Mein_SCHRANK:TList

 ' Einen Type erstellen mit den namen Tschublade

 Type TSchublade Extends Atype

  Field wofuer:String    ' Der Ordnung wegen bekommt sie eine inhaltsbeschreibung
  Field Platz:Byte       ' für jeden Inhalt bekommt die Schublade was zu
  Field Groesse:Byte     ' übersteigt es den Platz wird der neue Inhalt verworfen
 
  Field ICH_BIN:String

  Field Inhalt:TList  'Hier soll jede Schublade ihren eigenen Inhalt bekommen

    'Function zum erstellen   & Methode ,einer neuen Schublade     
    '--------------------------------------------------------
 
  Function create:Tschublade(wofuer$,Groesse)

   Local neue_Schublade:Tschublade

     neue_Schublade=New Tschublade
      neue_Schublade.wofuer=wofuer
    neue_schublade.Inhalt = New TList
       Return neue_schublade
  End Function


      Method New()
 
      If Mein_schrank=Null Mein_schrank=New TList
         Mein_schrank.AddLAst(Self)         
         
      End Method

       Method Add_Inhalt:Tinhalt(_Ich_bin:String)
        Local _I:Tinhalt = New Tinhalt
        _I.Ich_Bin = _Ich_bin
        Inhalt.AddLast(_I)
        Return _I
    End Method   
           
   
 End Type


'------------------------------------------------------------

 Type TInhalt Extends Atype
 
   Field ICH_BIN:String
 
 End Type


Function Add_Inhalt:Tinhalt(_schub:Tschublade,_Ich_bin:String)
    Return _Schub.Add_Inhalt(_Ich_bin:String)
End Function
 

'///////////////////////////////////////////////
'
'
'

Global schb_001:Tschublade = Tschublade.create ("KLAMOTTEN",10)
Global schb_002:Tschublade = Tschublade.create ("Zeugs    ",10)
Global schb_003:Tschublade = Tschublade.create ("Kramms   ",10)
Global schb_004:Tschublade = Tschublade.create ("Neues    ",10)

'Über Funktion integriert
Global zeugs_001:TInhalt = Add_Inhalt (schb_002,"Kabel")
Global zeugs_002:Tinhalt = Add_Inhalt (schb_001,"Hose")
Global zeugs_005:Tinhalt = Add_Inhalt (schb_001,"alte_Hose")
                    
'Über Method integriert
Global zeugs_003:Tinhalt = schb_001.Add_Inhalt("Hemd")
Global zeugs_004:Tinhalt = schb_004.Add_Inhalt("BMAX")




'
'
'
'///////////////////////////////////////////////


   Graphics 800,600,16,60
   SetClsColor 0,0,100

'///////////////////////////////////////////////
'
'
'

' MAINLoop,.,.,
 
Repeat

 Local schubLaden_ID:TschubLade..
       ,x,y..
       ,Inhalt_ID:Tinhalt
X = 0

    Cls
     SetColor 200,200,200
 
 DrawText "HIT a ESC",25,25

 
 If Mein_Schrank <> Null

   For schubLaden_ID=EachIn Mein_schrank
 
    Local Counter = 0
 If schubladen_ID.Inhalt <> Null
    SetColor 255,100,100
    For inhalt_ID=EachIn schubladen_ID.inhalt
         DrawText inhalt_id.ich_bin,x+30,70 + 20*Counter
        Counter:+1
    Next
    SetColor 255,255,255
 EndIf
     
   y=50
                                 
    DrawText schubladen_ID.wofuer,x+30,y
   
   x=x+170

  Next

  y=100

 

 End If

 Flip

 If KeyHit(key_escape) End

 FlushMem

 Forever

'
'
'
'///////////////////////////////////////////////
 
     

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group