Hallo!
ich brauch mal wieder einen Denkanstoss!
Folgendes Problemchen :
Ich möchte Daten in eine ComboBox laden. Zu jedem Item soll es einen weiteren "Subitem" geben der nicht angezeigt wird. So weit so gut.
(ComboBox Style : csDropDown)
Items adden :
Delphi-Quellcode:
procedure fill_combo;
var
F : TextFile;
Zeile : String;
str_Name, str_Port : String;
Pos_delimiter : Integer;
begin
AssignFile(F, ChangeFileExt(Application.ExeName, '.dat'));
Reset(F);
while not eof(F) do
begin
Readln(F,Zeile);
Pos_delimiter := Pos(';', Zeile);
if Pos_delimiter <> 0 then
begin
str_Name := AnsiLeftStr(Zeile, Pos_delimiter - 1);
Delete(Zeile,1, Pos_Delimiter);
Pos_delimiter := Pos('#', Zeile);
if Pos_delimiter <> 0 then
begin
str_Port := AnsiLeftStr(Zeile, Pos_delimiter - 1);
with Main_frm.Combo_Port do
begin
Items.AddObject(str_Name, TObject(str_Port));
end;
end;
end;
end;
CloseFile(F);
end;
Die Daten der Textdatei sehen folgendermaßen aus:
Zitat:
Name1;11001#
Name2;11002#
Name3;11003#
...
TObject als String aus dem gewählten Eintrag auslesen und weiterverarbeiten
Delphi-Quellcode:
procedure TMain_frm.Button1Click(Sender: TObject);
begin
if Combo_Port.ItemIndex > -1 then
Showmessage(String(Combo_Port.Items.Objects[Combo_Port.ItemIndex]));
end;
So, und genau hier ist mein Problem :
Als Ergebnis erhalte ich entweder keine oder nur kryptische werte oder auch mal eine Zugriffsverletzung - ich kann den Fehler einfach nicht nachvollziehen
Interssanterweise funktioniert das Beispiel bei mir einwandfrei :
http://www.delphipraxis.net/internal...=181907#181907
aufgefallen ist mir das beim Ändern der LPersonalnummer in :
LPersonalnummer := '11003' + IntToStr(5);
die Daten genauso sinnfrei ausgegeben werden wie bei mir...
wenn ihr eine Idee habt würde mich das sehr freuen
mfG TeeKay