Einzelnen Beitrag anzeigen

Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#1

TComboBox.AddObject - Adressverletzung

  Alt 5. Jun 2013, 08:51
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
  Mit Zitat antworten Zitat