Oder wenn du bei der Befüllung der ComboBox das Array der Reihe nach durchläufst, kannst du wiederum durch den ItemIndex der ComboBox (ComboBox.ItemIndex) den Wert aus deinem Array lesen.
Hab mal einen kleinen Beispielcode geschrieben:
Deklarierung der Variablen:
Delphi-Quellcode:
type
TMyRecord = record
ID : integer;
Bezeichnung : String;
end;
TRecordArr = array of TMyRecord;
[...]
public
aArr : TRecordArr;
Zum befüllen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
setlength(aArr, 2);
aArr[0].ID := 0;
aArr[0].Bezeichnung := 'foo';
aArr[1].ID := 1;
aArr[1].Bezeichnung := 'bar';
for i:= 0 to High(aArr) do
begin
ComboBox1.Items.Add(aArr[i].Bezeichnung);
end;
end;
zum auslesen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ComboBox1.ItemIndex <> -1 then
begin
ShowMessage(format('Die gwählte ID ist %d und die Bezeichnung ist %s', [aArr[ComboBox1.ItemIndex].ID, ComboBox1.Items.Strings[ComboBox1.ItemIndex]]))
end;
end;
Jedoch finde ich die Referenzierung durch ein Objekt und das Nutzen der Procedur AddObject auch vernünftiger. Vielleicht kannst du ja auch dein Record durch eine Klasse ersetzen.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.