Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение значений свойств у Components [x] [D5]


FilSM ©   (2002-07-02 11:40:00) 

Есть форма с заранее неизвестным набором компонентов. Необходимо
в RunTime изменять их свойства Visible, Enabled, ReadOnly и т.д.
Каким способом можно это сделать?


mike kouzmine   (2002-07-03 16:51:00) [1]

if (Components[i] is TLabel) and (Components[i] is TLabel).Name = "Label1") then
begin
end
else if и т.д.


mike kouzmine   (2002-07-03 16:51:00) [2]

if (Components[i] is TLabel) and (Components[i] as TLabel).Name = "Label1") then
begin
end
else if и т.д.


Леша   (2002-07-02 12:02:00) [3]

for i:=0 to Form1.ComponentCount-1 do
begin
//В зависимости от свойства объекта нужно приводить к определенному классу. То есть если у класса TComponent есть свойство ReadOnly, а класс объекта находится в одной иерархии с TComponent можно привести к нему если нет надо дальше по иерархии искать другой общий класс. Если изменяются свойства специфичные для компонентов, тогда надо приводить к классу компонента. Правда перед этим надо проверять является ли объект порождением данного класса.
(Form1.Componentsi[i] as TXxxxx).XXXX=value;

end;
Или можно у однотипных объектов проставить свойство Tag
Например у Labelx 1, Editx 2
Тогда
for i:=0 to Form1.ComponentcCount-1 do
begin
case (Form1.Components[i] as TComponent).Tag of
1:(Form1.Components[i] as TLabel).Caption:="";
2:(Form1.Components[i] as TEdit).Text:="";
end
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо