![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение значений свойств у 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;