@foxars: to co proponuję, dotyczy absolutnych podstaw języka i biblioteki komponentów, więc nie ma się czego bać. Poza tym kodu trzeba napisać tylko kilka linijek :]
procedure TMainForm.SaveCombosToFile(const AFileName: String; AParent: TWinControl);
var
LFile: TextFile;
LText: String;
LControlIdx: Integer;
begin
AssignFile(LFile, AFileName);
ReWrite(LFile);
try
for LControlIdx := 0 to AParent.ControlCount - 1 do
if AParent.Controls[LControlIdx] is TCustomComboBox then
begin
LText := TCustomComboBox(AParent.Controls[LControlIdx]).Text;
WriteLn(LFile, LText);
end;
finally
CloseFile(LFile);
end;
end;
procedure TMainForm.LoadCombosFromFile(const AFileName: String; AParent: TWinControl);
var
LFile: TextFile;
LText: String;
LControlIdx: Integer;
begin
AssignFile(LFile, AFileName);
Reset(LFile);
try
for LControlIdx := 0 to AParent.ControlCount - 1 do
if AParent.Controls[LControlIdx] is TCustomComboBox then
begin
ReadLn(LFile, LText);
TCustomComboBox(AParent.Controls[LControlIdx]).Text := LText;
end;
finally
CloseFile(LFile);
end;
end;
Te dwie metody wystarczą, aby zapisać zawartość wszystkich komponentów dziedziczących po klasie TCustomComboBox
do pliku tekstowego, a także by móc odczytać dane z pliku i wrzucić je do kontrolek. W drugim parametrze należy podać okno-rodzica, grupujące te kontrolki - tym rodzicem może być obiekt formularza, ale też np. TPanel
czy TGroupBox
.
Metody te pomijają wszystkie kontrolki, które ComboBox
ami nie są, więc w oknie rodzica mogą się znajdować też inne kontrolki, takie jak przyciski czy etykiety.