Einzelnen Beitrag anzeigen

Ness64

Registriert seit: 12. Apr 2009
8 Beiträge
 
#1

ArrayRecord von Listboxen+anderen object speichern und laden

  Alt 12. Apr 2009, 15:08
Hullo,
ich komme an einer Stelle meines Proghramms nicht weiter!
Undzwar ich habe eine Listbox,wo Personen generiert werden.
Name1,Name3
maximal 5 Personen!
Ich habe gedacht einen Array Record zu erstellen,da diese 5 Personen ihre eigenen Nummern haben. Wieso Array? Weil ich später auf 30 Personen hochgehen will und da sind einzelne nicht empfehlenswert.


Erstmal die definierungen! Keine Angst,momentan funktioniert alles! Wenn "end" oder sowas fehlt,dann anscheinend vergessen zu kopieren!

Delphi-Quellcode:
type
  TGast = record //Meine Main Record! Nur
    Name: string[15]; //Stringwert
    skill1: string[5]; //Zahlenwert
    skill2: string[5]; //Zahlenwert
    aktiv:boolean; //boolean

 TGastListe = array of TGast; //Zweite Record

var
  Form1: TForm1;
  GastListe: TGastListe; //Namen der Leute in Listbox1 werden dannach in gaslite gespeichert!
  Gast: TGast;
  maxanzahl:integer;

 end;
Die Formcreate:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
button2.hide;
SetLength(GastListe, 5); //Gastliste darf nur 5 Leute haben! Dynamisches Array*hust*
end;
Soweit so gut haben wir also einen Array Record! IN diesen Arrayrecord Gastliste speichern wir die Namen der Gäste,die in die Listboxen eingetragen werden.

Jetzt die ButtonNamen Prozedur,wo ich durch ein Edit Feld Namen generiere,die in eine Listbox reingetan werden:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
forbidden:boolean;
begin
Gast.name := Edit1.text;
Listbox1.items.add(Gast.name); //Listbox wird jetzt der Name von Edit1.text addiert!
end;
Jetzt kommt die sehr wichtige Listboxfunction,wenn ich auf die Namen in der Listbox anklicke:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
Gastliste[Listbox1.itemindex].name := Listbox1.items[Listbox1.itemindex];
//Gastliste bekommt den Namen von der Stelle,wo man in listbox 1 geklickt hat!

    Label1.caption := 'Angeklickte Person: ' + Gastliste[Listbox1.itemindex].name; //Dient zur Sicherstellung,ob der geklickte auch wirklich geklickt wurde!
end;
Bei Button2 kann man einstellen,ob derjenige aktiv ist! Vorsicht! Ich habe kein FALSE! Und das mit Absicht....
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  Gastliste[Listbox1.itemindex].aktiv := true; //Die Person,die man in Listbox angeklickt hat,wird jetzt auf aktiv gestellt!
end;
Verwirrt euch nicht bei gast.name und gastliste.name!
Ich brauche gastliste.name,damit ich weiß,an welcher Stelle in derListbox welcher Gast gemeint ist!
ich kann also nicht gast.name[i] schreiben! da komtm ein Fehler! Deshalb brauche ich einen zweiten record,der sogar ein array besitzt!

Soweit funktioniert ALLES! Wenn ich 5 Personen generiere und Person 1 aktiv mache,dann ist auch wirklich Person1 aktiv und die anderen nicht!
Jetzt die große PREISFRAGE:

Wie kann ich diesen Record in eine RICHTIGE Text-/INIdatei speichern UND erfolgreich Laden,so das die gespeicherten Leute wieder in Listbox zu sehen sind und,das auch wirklich die jenigen aktiv dargestellt werden?


Ich habe in mehreren Foren gefragt und bisher blieb die Antwort aus
Ich hoffe ihr könnt mir Helfen! Auf Wunsch bi ich sogar Bereit meine Pas Datei hochzuladen,aber ich denke meine Erklärungen sind GENAU genug,um euch weiterhelfen zu können
Mit GROßEM DANK im Voraus!
  Mit Zitat antworten Zitat