Hierbei übergebe ich auch die ID des jeweiligen Objekts:
Code: Alles auswählen
procedure TAdressEditor.FillCBAnreden;
var
i: integer;
begin
for i := 0 to Anreden.Count - 1 do
if Anreden[i].InAdresse = 1 then
cbAnrede.Items.AddObject(Anreden.Items[i].Anrede, TObject(IntPtr(Anreden.Items[i].ID)));
end;
Nun möchte ich in Abhängigkeit der cbAnrede weitere Daten aus dem Objekt Anreden lesen:
Code: Alles auswählen
idx:= PtrUInt(cbAnrede.Items.Objects[cbAnrede.ItemIndex]);
edBriefanrede.Text := Anreden[idx].Anrede;
idx enthält dann die ID des richtigen Objekts, in edBriefanrede erscheint aber eine falsche Anrede
OK,schon klar: idx sollte den Index des Objekts in der Objektliste mit der ID bezeichnen. Nur, wie macht man dies am sinnvollsten?
Nachtrag: Wie so oft, beim erklären des Problems ist mir auch die Lösung wieder eingefallen. Ich muss die Anreden in einer Schleife durchgehen, bis ich die passende ID gefunden habe.