Hallo Leute,
ich hab ein Problem mit diesem Code:
Delphi-Quellcode:
for i:=0 to 9 do
begin
preisliste := TPreisliste.Create();
preisliste.Preisgruppe := dm.smtPreislisten.FieldByName('NR').AsString;
preisliste.Jahr := dm.smtPreislisten.FieldByName('JAHR').AsString;
preisliste.Periode := dm.smtPreislisten.FieldByName('PERIODE').AsString;
combobox.Items.Add(dm.smtPreislisten.FieldByName('DATUM_VON').AsString);
combobox.Items.AddObject('Preisliste'+IntToStr(i),preisliste);
dm.smtPreislisten.Next;
end;
combobox.ItemIndex := 0;
ShowMessage(TPreisliste(combobox.Items.Objects[combobox.ItemIndex]).Preisgruppe); <--
An der makierten Stelle bekomme ich eine Adressverletzung. Ich habe schon eine Idee wodran es liegt. Und zwar habe ich mal probiert den ItemIndex in der vorletzten Zeile auf das letzte Item zu legen (ItemIndex := Items.Count-1). Und siehe da, beim letzten angehängten Objekt funktioniert es. Die davor scheinen nicht mehr zu exisitieren.
Überschreibe ich also bei jedem Schleifenbeginn das letzte Objekt? Wird nicht nur eine "Kopie" des Objekts in der Combobox hinterlegt?
Gruß,
Matthias