edit: bild hinzugefügt
Hallo,
ich muss zum testen mehrere Personen aus zufallsnamen generieren und diese dann darstellen.
Ich habe 2 Funktionen.
Die 1. zum generieren und die 2. zum Laden.
Beim Generieren wird die Liste richtig dargestellt, aber beim Laden werden fälschlicherweise immer die vorherigen Werte aus der Liste übernommen.
Meine Frage ist, mache ich hier was falsch und sehe es nach 10 minuten immer noch nicht oder muss das Problem in der TBinObject klasse liegen?
Delphi-Quellcode:
procedure TForm1.btn2Click(Sender: TObject);
var
bin : TBinObject;
c: Integer;
LListItem : TListItem;
LBinItem : TBinItem;
x: Integer;
StartTime : TDateTime;
begin
bin := TBinObject.Create;
bin.LoadFromFile('personen.txt');
lv1.Clear;
StartTime := Now;
for c := 0 to bin.Count-1 do
begin
LBinItem := bin[c];
LListItem := lv1.Items.Add;
LListItem.Caption := ByteListToString(LBinItem[0]);
for x := 1 to LBinItem.Count-1 do
begin
LListItem.SubItems.Add(ByteListToString(bin[c][x]))
end;
end;
lbl2.Caption := FloatToStr(MilliSecondsBetween(now,starttime)/1000)+'s';
end;
Im vergleich dazu, das generieren.
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
c: Integer;
x: Integer;
StartTime : TDateTime;
Bin : TBinObject;
AListItem : TListItem;
LVorname, LNachname : string;
begin
Bin := TBinObject.Create;
StartTime := Now;
lv1.Clear;
for c := 0 to StrToInt(lbledt1.Text)-1 do
begin
LVorname := mmo1.Lines[Random(mmo1.Lines.Count)];
LNachname := mmo2.Lines[Random(mmo2.Lines.Count)];
Bin.Add(TBinItem.Create);
Bin[c].Add(StringToByteList(c.ToString()));
Bin[c].Add(StringToByteList(LVorname));
Bin[c].Add(StringToByteList(LNachname));
AListItem := lv1.Items.Add;
AListItem.Caption := c.ToString();
AListItem.SubItems.Add(LVorname);
AListItem.SubItems.Add(LNachname);
Caption := c.ToString();
end;
Bin.SaveToFile('personen.txt');
lbl2.Caption := FloatToStr(MilliSecondsBetween(now,starttime)/1000)+'s';
end;
Einzelne Werte funktionieren ohne probleme und ich wüsste wirklich nicht mehr wo suchen.
Freundliche Grüsse