...
type
TListBox = class(StdCtrls.TListBox)
public
procedure LoadData(const aFileName: TFileName);
procedure SaveData(const aFileName: TFileName);
end;
TForm1 = class(TForm)
ListBox1: TListBox;
btnAdd: TButton;
Edit1: TEdit;
Edit2: TEdit;
btnSave: TButton;
btnLoad: TButton;
procedure btnAddClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnLoadClick(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
public
end;
...
implementation
const
DELIM = '-';
FILESTR = 'C:\Carpeta\ListBox1.txt';
type
TDblItem = class
str: string;
end;
var
di: TDblItem;
procedure TListBox.LoadData(const aFileName: TFileName);
var
i: Integer;
TS: TStrings;
begin
TS:= TStringList.Create;
try
TS.LoadFromFile(aFileName);
Items.Clear;
for i:= 0 to TS.Count-1 do
begin
di:= TDblItem.Create;
di.str:= Copy(TS[i], Pos(DELIM, TS[i])+1, MaxInt);
AddItem(Copy(TS[i], 1, Pos(DELIM, TS[i])-1), TObject(di));
end;
finally
TS.Free;
end;
end;
procedure TListBox.SaveData(const aFileName: TFileName);
var
i: Integer;
TS: TStrings;
begin
TS:= TStringList.Create;
try
for i:= 0 to Items.Count-1 do
TS.Add(Items[i] + DELIM + TDBlItem(Items.Objects[i]).str);
TS.SaveToFile(aFileName);
finally
TS.Free;
end;
end;
procedure TForm1.btnAddClick(Sender: TObject);
begin
di:= TDblItem.Create;
di.str:= Edit2.Text;
ListBox1.AddItem(Edit1.Text, TObject(di));
end;
procedure TForm1.btnSaveClick(Sender: TObject);
begin
ListBox1.SaveData(FILESTR);
end;
procedure TForm1.btnLoadClick(Sender: TObject);
begin
ListBox1.LoadData(FILESTR);
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
with ListBox1 do
if ItemIndex <> - 1 then
ShowMessage(Items[ItemIndex] + ' ' + TDBlItem(Items.Objects[ItemIndex]).str);
end;
...