![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать цикл, который изменит настройки нескольких компонент [D7, WinXP]
Zloy © (2004-11-17 17:27:00)Приветствую!!!
Дело такое, есть предположим на форме 10 компонет Edit,
и нужно изменить состояние visible. Можно конечно просто написать:
edit1.visible:= false;
edit2.visible:= false;
....
Но как это сделать в цикле, что то типа
for i:= 0 to 10 do
begin
With Edit[i] do //так конечно не получается сразу ругается что нет такой компоненты как Edit
begin
Visible:= false;
end;
YurikGL (2004-11-17 20:35:00) [1]EditArr:array[1..20] of TEdit
Потом создаешь их где надо, а дальше
EditArr[1].text:='Первый едит'
....
Jay (2004-11-17 17:43:00) [2]Можно так:
var
ed: TEdit;
i: Byte;
for i := 1 to 10 do
begin
ed := TEdit(FindComponent('Edit' + IntToStr(i));
ed.Visible := false
end
Вроде так.
Digitman (2004-11-17 17:33:00) [3]форма - это наследник TComponent
любой объект-наследник класса TComponents имеет св-во-список Components[] и св-во СomponentCount.. отсюда и пляши ..
при выборке очер.элемента списка проверяй, является ли он наследником TEdit
begin...end (2004-11-17 17:32:00) [4]var
I: Integer;
begin
for I := 0 to MyForm.ControlCount - 1 do
if MyForm.Controls[I] is TEdit then
MyForm.Controls[I].Visible := False
end.