Gelöst ! Aber vom feinsten :)

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

c64

Betreff: Gelöst ! Aber vom feinsten :)

BeitragDi, Aug 16, 2005 10:49
Antworten mit Zitat
Benutzer-Profile anzeigen
THX @Klepto2...

und an alle anderen die versucht haben zu Helfen !

is n COoLer Beispiel code geworden ! (find ich)

http://www.blitz-pasting.net/i...&id=66
  • Zuletzt bearbeitet von c64 am Mi, Aug 17, 2005 19:49, insgesamt einmal bearbeitet

Jan_

Ehemaliger Admin

BeitragDi, Aug 16, 2005 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ungetestet!

BlitzBasic: [AUSKLAPPEN]

Type schrank
Field schubladen:Tlist ' hier alle schubladen herrein
End Type

Type schublade
Field Inhaltlist:Tlist
Field Position_Im_SChrank
Field Griff
Field Größe
method Add_Inhalt(Name$)
If self.inhaltlist= Null thenself.inhaltlist=createlist()
Local rein.inhalt
rein=New inhalt
self.inhaltlist.addlast(rein)
rein.name$=name$
endmethod
EndType

Type inhalt
Field name$
EndType

between angels and insects
 

c64

BeitragDi, Aug 16, 2005 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx , werd ich gleich ma probiern.
 

c64

BeitragDi, Aug 16, 2005 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
So bin schon n bisl weiter ,! .. aber nun wie bekomm ich den
meine Objecte in in AREAS ?? siehe Link :

http://www.blitz-pasting.net/i...amp;id=186

Starten mit Main.bmx

in GUI2.bmx liegt das Prob ! (code läuft .. hab aber Brett vorm Kopf wie weiter ??!!)

also Ich creiere eine Area und möchte in ihr Objecte setzen Aber wie,
 

Dreamora

BeitragDi, Aug 16, 2005 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~

Falsches Forum, da es sich hierbei um ein BM Anfängerproblem handelt.
Dreamora
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

c64

BeitragDi, Aug 16, 2005 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Allgemein (BM)
Fragen, die unabhängig von der Grafik gestellt werden, wie zum Beispiel Fragen zu Formeln und Sounds oder Dinge zur allgemein gültigen Syntax, wie der Umgang mit Banks oder Types


achso schon klar,... Laughing

Na ja egal hauptsache mir Hilft wer !!!!,,,
 

Dreamora

BeitragDi, Aug 16, 2005 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Extrahier den Problembereich und poste ihn hier inklusive einer Beschreibung wo das Problem ist bzw. was nicht so funktioniert wie du es dir vorstellst oder so.
Dann werde ich oder jemand anderst sofort helfen, keine Sorge Smile

Ich habe jedoch nicht vor halbe Systeme durchzugraben.


Und Fragen die keiner fortgeschrittenen Natur entsprechen gehören in den Beginners-Corner wie Fragen wie man eine TList nutzt und dergleichen.
Dazu gehören ebenfalls die normalen B3D - BM Wechselprobleme, wofür es im englischen Forum sogar einen Thread gibt für Umsteiger (ebenfalls im Beginners Teil des BM Boards).
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

klepto2

BeitragDi, Aug 16, 2005 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich nehme mal an du möchtest Buttons und co hinzufügen.

Dann würde ich nicht eine Allgemeine TList für das Object Anlegen, sondern für jedes Object extra :

Field Button_List:Tlist
Field TextBox_List:TList

usw.

Danach erstellst du ein weiteres Object zb:

Code: [AUSKLAPPEN]

Type TButton

Field X,Y

End Type

In diesem Object erstellst du eine CreateFunktion :
Code: [AUSKLAPPEN]

Type TButton

Field X,Y

Function Create(_X,_Y,_Area:Gui_Area)
 Local _B:TButton = New TButton

 _B.X = _X
 _B.Y = _Y

_Area.Button_List.Addlast(_B)

End Function

End Type


Dazu noch die anderen Methoden usw.

Danach musst du in deinem Gui_Area Type nur noch die einzelnen Listen durchgehen und die zur Area dazugehörigen Objekte zeichnen.
 

c64

BeitragMi, Aug 17, 2005 9:11
Antworten mit Zitat
Benutzer-Profile anzeigen
hey Dreamora , ja hast ja recht bin ja n BM newby ,keine frage !
aber ich habs halt so gepostet weil wies oben schon steht,

n semantik , bzw . Syntax Problem ist. Und ich eXtrem BB versaut bin Smile
d.h. umgewöhnen *grrr , is nich easy und dann noch mit zeitdruck im nacken ,, hab nur noch die woche urlaub , und wenn ich arbeite kaum zeit zum proggen, und was dazu gehört (Lernen ! ).


und Klepto2 danke ! ,

hmm is ne idee aber in bb hab ich es anders gelöst und so in etwa
wollte ich es auch in Bmax machen. Aber nun weiss ich ja nich ob ich so,
oder so am besten fahre,? hmm ich glaube die Woche werd ich wohl nur mit Virtuellen Bastelein und probierspielchen verbringen dürfen Smile

BB:lösung (pseudo Code)
Code: [AUSKLAPPEN]

 
'Area Type hier defieniert ,,,
 
 type Objecte

 field position_
 field in_AREA
 Field _what_to_DO

 end type


 AREALOOP ::   (for each schleifen ! beide !)
   OBJECTLOOP ::

    if area_ID=OBJECT\IN_AREA

    select object\what_to_do
   
    case a_Buttton

    function a_Button()
   
    case a_IMAGE

     function a_Image()
   
    case a_Scroll_BAR

     function a_scroll_bar()

  end select

   end if


 function A_Button()

 end function

 etc.



Dies machte ich so damit ich nur zwei Typecollectionen (klassen) habe,
einmal Areas (windows) und Objecte , die halt infos über position etc.
hatten und letztendens durch ihr Style (what_to_DO) Atribut,in einer Select Case schleife zu ihrer eigentlichen Aufgabe (Function) gelotst werden. Aber problem an der sache jede Area fährt einmal die gesamten Objecte ab und sollte das Object in diese area gehören weiss es das Object. Aber ich will das die Area weiss welche Objecte zu ihr gehören.
was man durch Bmax mit na Tlist lösen kann so weit bin ich ja,
Nur beim umsetzen happerts noch n bisl Smile


Ich wollte es auch so beibehalten vielleicht ?!., ??
Aber Bmax bietet ja nun neue Möglichkeiten


Werde aber versuchen deinen ansatz auch auszuprobieren, Thx !


SO Frühstück und dann gehts los .
 

c64

BeitragMi, Aug 17, 2005 13:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Strict

 ' EINE TLIST erstellen mit dem namen MEIN_SCHRANK

 Global Mein_SCHRANK:TList

 ' Einen Type erstellen mit den namen Tschublade

 Type TSchublade

  Field Link_ID:TLink    ' Speichert das Handle
  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 Inhalt:TList     'Hier soll jede Schublade ihren eigenen Inhalt bekommen
                         'doch leichter gesagt als getan ....
                         '

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

   Local neue_Schublade:Tschublade

     neue_Schublade=New Tschublade
      neue_Schublade.wofuer=wofuer
   
     'RETURN  // hier soll die Adresse List Pos der ,neuen_schublade Zurück
     '          // gegeben werden , nur wie ? damit siehe ERROR POS bei PRG. Start !!
           
  End Function


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

  Function createInhalt:Tschublade(in_schublade:TLink,ich_bin:String)
 
     Local neuer_inhalt:Tinhalt

     neuer_Inhalt=New Tinhalt
     neuer_Inhalt.ich_bin=ich_bin     
 
  EndFunction

            
   
 End Type


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

 Type TInhalt

    'Function zum erstellen   & Methode ,eines neuen Inhaltes      
    '-------------------------------------------------------
 



      Method New()

             
       If mein_schrank <> Null
         Local tst:Tschublade

          ' so ich kann alse nicht die Schublade ansprechen weil ja
          ' jetzt an dieser stelle irgentwie keine is , also wie
          ' kann ich an die Schublade springen die bei
          '
          '>> Function CreateINhalt:tschublade (in_SCHUBLADE,.....
          '
          ' von der ich ja noch keine Adresse hab es sei den
          '
          '>> Return neue_schublade
          '
          'sollte doch so hinhauen wie ich denke 
   
         If tst.Inhalt=Null tst.Inhalt=New TList
         tst.inhalt.addlast(Self)
       EndIf
   
       End Method
   

   
   Field ICH_BIN:String
   Field in_schublade:Short


 End Type




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

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


Global zeugs_001 = Tschublade.createInhalt (schb_002,"Kabel")


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


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

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

' MAINLoop,.,.,
 
Repeat

 Local schubLaden_ID:TschubLade..
       ,x,y..
       ,Inhalt_ID:Tinhalt


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

 
 If Mein_Schrank <> Null

   For schubLaden_ID=EachIn Mein_schrank
 

 If schubladen_ID.inhalt <> Null
    For inhalt_ID=EachIn schubladen_ID.inhalt
 
    Next
 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