Jeg har en listbox med nogle items i. Men hvordan kan jeg via en inifil gemme hvor mine items skal være placeret. Altså hvilken item der stårsom nummer 1, 2, 3 osv. Alle items'ne bliver hentet fra en inifil hvor hver item har en path og et parameter
Eks
[Microsoft Word]
Path=C:\\Programmer\\M$ Office\\Word.exe
Parameter= -et_parameter
Du løber din listbox igennem og gemmer index og navn:
procedure TForm1.Button1Click(Sender: TObject);
var
idx : integer;
Ini : TIniFile;
begin
Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
for idx := 0 to ListBox1.Items.Count - 1 do
Ini.WriteString('Items', IntToStr(idx), ListBox1.Items[idx]);
Ini.Free;
ListBox1.Clear;
end;
Så får du en liste i din ini-fil som ser således ud:
[Items]
0=Microsoft Word
1=Microsoft Excel
2=Borland Delphi
3=NCSoft City of Heroes
Når du så skal læse den ind igen
kan du gøre det på følgende måde:
procedure TForm1.Button2Click(Sender: TObject);
var
idx : integer;
Ini : TIniFile;
Itm : TStringList;
cnt : Integer;
item : String;
begin
Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
Itm := TStringList.Create;
Ini.ReadSectionValues('Items', Itm);
for idx := 0 to Itm.Count - 1 do
begin
cnt := StrToIntDef(Itm.Names[idx], 0);
item := Itm.Values[Itm.Names[idx]];
ListBox1.Items.Insert(cnt, item);
end;
Itm.Free;
Ini.Free;
end;
--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk