Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.01.2015, 22:52
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Новичок
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 74
Версия Delphi: Delphi 7
Репутация: 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;
видимо нельзя, может быть нужен массив указателей, но незнаю как сделать.
Читал про перечисления, последовательности и множества, так и не понял чем это может (или не может) мне помочь.
Посоветуйте.
Ответить с цитированием
  #2  
Старый 04.01.2015, 09:03
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,373
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

индекс в Controls в порядке становления дочерним элементом у контрола (у которых Parent становиться этот контрол).
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 20.01.2015, 14:22
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 495
Репутация: 10
По умолчанию

вотименно так
Код:
const
   EditsStandart: array[0..6] of TDgtEdit;
и можно. В Delphi TDgtEdit - это именно указатель на объект класса TDgtEdit;

А что бы различать компоненты можно использовать пропертю TAG.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2017

ВКонтакте   Facebook   Twitter