dynamisch Objekte erstellen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Conner

Betreff: dynamisch Objekte erstellen

BeitragMo, Okt 10, 2005 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Frage 1: das ist eine Struktur/Classe in Blitz+ richtig?

BlitzBasic: [AUSKLAPPEN]
Type TV_Zeile
Field Zelle01$
Field Zelle02$
Field Zelle03$
Field Zelle04$
Field Zelle05$
Field Zelle06$
Field Zelle07$
Field Zelle08$
Field Zelle09$
Field Zelle10$
End Type


gut.. wenn ja dann folgendes Problem...
ich will dynamisch im Programm ein Objektarray erweitern.. also per knopfdruck... sodas ich in das Objektarray dynamisch eingreifen kann und den Speicherplatz so erweitere...

Code: [AUSKLAPPEN]
Knopdruck
        erstelle 5 Objekte von der struktur TV_Zeile

Knopfdruck
        erstelle zu den 5 Objekten , 3 weitere dazu von TV_Zeile



Danke
  • Zuletzt bearbeitet von Conner am Mo, Okt 10, 2005 19:50, insgesamt einmal bearbeitet
 

Ava

Gast

BeitragMo, Okt 10, 2005 18:14
Antworten mit Zitat
neue_tv_zeile = new tv_zeile erstellt ein Objekt der Klasse tv_zeile. Wink
Mit For eine_tv_zeile.tv_zeile = Each tv_zeile kann man die gesamte Liste durchgehen.
Mit Delete neue_tv_zeile kann man das Object wieder löschen.
 

Conner

BeitragMo, Okt 10, 2005 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ja gut... aber das Problem ist ein anderes

BlitzBasic: [AUSKLAPPEN]
Klaus = 4


ich will eine Array erstellen
also

BlitzBasic: [AUSKLAPPEN]
neue_tv_zeile(Klaus) = New tv_zeile 


also so...

wir haben jetzt ein Array neue_tv_zeile(4) und können es ansprechen

aber wie füge ich den 4 Objekten nun drei hinzu?

der Name muss der selbe sein unter dem ich es ansprechen.. also BlitzBasic: [AUSKLAPPEN]
neue_tv_zeile

ist immer noch das Objekt was wir zum schluss auslesen wollen
es soll zum schluss so aussehen
BlitzBasic: [AUSKLAPPEN]
neue_tv_zeile(8)

und ich muss es weiterhin unter dem selben namen ansprechen können obwohl ich es erweitert habe
 

Conner

BeitragMo, Okt 10, 2005 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte schliessen... falsche Kategorie

Danke
 

Ava

Gast

BeitragMo, Okt 10, 2005 20:27
Antworten mit Zitat
Ich glaube es wäre einfacher, würdesst Du Dich auf die interne LinkedList berufen und mit einem Index arbeiten.

BlitzBasic: [AUSKLAPPEN]
Graphics 800, 600, 16, 2


Type tv_zeile
Field index, txt$
End Type

Local klaus = 1
Local susi = 2


Repeat

Print

edit = Int(Input(\"Was Tun? (1=Erstellen, 2=Löschen, 3=Ansehen, anderes=beenden) \"))
Select edit
Case 1 : editString$ = \"Erstellen\"
Case 2 : editString$ = \"Löschen\"
Case 3 : editString$ = \"Ansehen\"
Default : End
End Select


Repeat
user = Int(Input(editString + \" für wen? (1=Klaus, 2=Susi) \"))
If user = 1 Or user = 2 Then Exit
Print \"Benutzer nicht gefunden!\"
Forever


Select user
Case 1 : userString$ = \"Klaus\"
Case 2 : userString$ = \"Susi\"
Default : End
End Select

If edit = 3

show_tv_zeilen(user)

Else

Repeat
Print
Txt$ = Input(editString + \" für \" + userString + \", bitte Text eingeben: \")
If txt$ = \"\" Then Exit
Select edit
Case 1 : add_tv_zeile(user, txt) : Exit
Case 2 : If remove_tv_zeile(user, txt) Then Exit
End Select
Forever

EndIf

Print

Forever


Function show_tv_zeilen(index)

Local n.tv_zeile


For n = Each tv_zeile
If n\index = index

Print \"In Liste steht: \" + n\txt

EndIf
Next


End Function


Function add_tv_zeile(index, txt$)

Local n.tv_zeile = New tv_zeile
n\index = index
n\txt = txt

End Function


Function remove_tv_zeile(index, txt$)

Local n.tv_zeile


For n = Each tv_zeile
If n\index = index
If n\txt = txt

Print \"Der Eintrag \" + txt + \" wurde gelöscht!\"

Delete n
Return True

EndIf
EndIf
Next

Print \"Ein Eintrag mit \" + txt + \" wurde nicht gefunden!\"
Return False

End Function



Ansonsten musst Du immer noch mit einer zusätzlichen Temporären Liste arbeiten, die Daten von einer Liste in die andere übertragen, die richtige Liste redimensionieren, dann die Daten wieder zurückübertragen.
 

Ava

Gast

BeitragMo, Okt 10, 2005 20:28
Antworten mit Zitat
Conner hat Folgendes geschrieben:
Bitte schliessen... falsche Kategorie

Danke


Question

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group