На форме десятка полтора-два контролов, среди них 7 Edit-ов (собственный компонент, потомок TCustomEdit). Сначала потребовалось, эти 7 Edit-ов и несколько кнопок скрывать\показывать кучкой (.Visibl:=True\False), выбрал вариант попроще - переместил их на pnlStandard: TPanel.
Далее сделал сохранение, при выходе, значений этих Edit-ов в IniFile в цикле:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var optionini: TIniFile;
i: Byte;
begin
-------------------------------
for i:=0 to pnlStandard.ControlCount-1 do
if pnlStandard.Controls[i] is TDgtEdit then
optionini.WriteInteger('Standart',pnlStandard.Controls[i].Name, (pnlStandard.Controls[i] as TDgtEdit).Value);
-------------------------------
end;
для чтения\записи из\в IniFile этого достаточно, но...
как, так-же в
цикле, присвоить Edit-ам значения из... ну скажем
array[0..6] of Integer, предидущий вариант не пройдет, потому-что pnlStandard.Controls[i] - неизвестно, который именно из Edit-ов. В качестве проверки вываливал их в Memo:
Код:
for i:= 0 to pnlStandard.ControlCount-1 do
if pnlStandard.Controls[i] is TDgtEdit then
Memo1.Lines.Append(pnlStandard.Controls[i].Name);
порядок в списке контролов мне абсолютно непонятен, ни порядок объявления в модуле, ни TabOrder, ни порядок в Unit1.dfm - ни чему не соответствует.
Думаю, эту горстку Edit-ов надо как-то объявить, как :
Код:
const
EditsStandart: array[0..6] of TDgtEdit;
видимо нельзя, может быть нужен массив указателей, но незнаю как сделать.
Читал про перечисления, последовательности и множества, так и не понял чем это может (или не может) мне помочь.
Посоветуйте.