Показать сообщение отдельно
  #1  
Старый 03.01.2015, 22:52
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию Управление группой контролов

На форме десятка полтора-два контролов, среди них 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;
видимо нельзя, может быть нужен массив указателей, но незнаю как сделать.
Читал про перечисления, последовательности и множества, так и не понял чем это может (или не может) мне помочь.
Посоветуйте.
Ответить с цитированием