Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизВыполнить действие для всех объектов формы Найти похожие ветки
← →
ply (2008-02-28 15:19) [0]Как выполнить действие дл всех объектов формы какого-либо типа (например TEdit) ?
← →
ply (2008-02-28 15:20) [1]например присвоить им всем Text:="ПРИВЕТ"
← →
Anatoly Podgoretsky © (2008-02-28 15:23) [2]> ply (28.02.2008 15:20:01) [1]
if X is TEdit then TEdit(X).Text ;=
Смотри букварь/справку, там все разжевано.
← →
Palladin © (2008-02-28 15:25) [3]
процедура _действие(контейнер:ТКомпонент);
пер
и:целое;
начало
для и от 0 до контейнер.КомпонентсКаунт-1 делать
начало
если контейнер.Компонентс[и] есть например ТЕдит тогда ЧтотоСНимСделать;
_действие(контейнер.Компонентс[и]);
конец;
конец;
начало
_действие(форма)
конец;
← →
Семеныч (2008-02-28 15:25) [4]> ply (28.02.08 15:19)
for i := 0 to ComponentCount - 1 do
if Components[i] is TEdit then
TEdit(Components[i]).Text := "Привет";
← →
Семеныч (2008-02-28 15:28) [5]> Palladin © (28.02.08 15:25) [3]
Это я просто перевел на русский. Ну и рекурсию убрал заодно.
:о)
← →
Ega23 © (2008-02-28 16:17) [6]
> Ну и рекурсию убрал заодно.
Не уточнено, что есть "всех объектов формы"?
Я динамически создаю на форме панель (владелец и парент - форма) и динамически создаю на панели TEdit (владелец и парент - панель).
визуально не отличается от того, что получилось бы в дизайн-тайм.
Однако твой код для моего TEdit не сработает.
Так что в общем случае - только рекурсия.
← →
Ega23 © (2008-02-28 16:17) [7]И тогда, кстати, не компонент, а контрол (в случае TEdit, конечно)
← →
Семеныч (2008-02-28 16:25) [8]> Ega23 © (28.02.08 16:17) [6]
В общем случае решения просто нет. Потому что владельцем можно сделать и компонент другой формы, и вообще кого угодно. Полный кайф тогда с рекурсией получится, да? Особенно, если владельцем Edit"а сделать Application. И суперособенно, если Application сделать владельцем и формы, и компонента на ней.
:o)
Олег, ты же должен понимать контекст топика. Если человек задает вопрос из серии "для совсем-совсем-совсем-начинающих", то ясно, что ни о каком динамическом создании речь не идет. Значит, и рекурсия не нужна.
← →
Leonid Troyanovsky © (2008-02-28 21:59) [9]
> Семеныч (28.02.08 16:25) [8]
> задает вопрос из серии "для совсем-совсем-совсем-начинающих",
> то ясно, что ни о каком динамическом создании речь не идет.
> Значит, и рекурсия не нужна.
Если человек интересуется например, то ему должно дать пример,
скажем, TEdit. А уж динамически или нет - это уже другой пример.
Т.е., в контексте топика - это TControl, значит рекурсия.
Кста, "контейнер" необязан быть Component.
--
Regards, LVT.
← →
Семеныч (2008-02-28 23:52) [10]> Leonid Troyanovsky © (28.02.08 21:59) [9]
> Т.е., в контексте топика - это TControl, значит рекурсия.
Однако же, никто не отменял (и не отменит) того факта, что контролы - это тоже компоненты. Значит, сабж можно сделать проходом по списку Components и без всяких рекурсий.
> Если человек интересуется например, то ему должно дать пример,
> скажем, TEdit.
Вот с этим соглашусь. Причем именно для TEdit пример и был дан.
:o)
> А уж динамически или нет - это уже другой пример.
И с этим соглашусь тоже.
:o)
← →
Anatoly Podgoretsky © (2008-02-29 09:51) [11]
> Однако же, никто не отменял (и не отменит) того факта, что
> контролы - это тоже компоненты. Значит, сабж можно сделать
> проходом по списку Components и без всяких рекурсий.
Еще как отменяет, во первых не обязан быть в данном списке .Create(nil), а во вторых property Components[Index: Integer]: TComponent; само по себе тоже имеет рекурсивную структуру и в этом качестве ничем не отличается от Controls
← →
Семеныч (2008-02-29 14:40) [12]> Anatoly Podgoretsky © (29.02.08 09:51) [11]
Уважаемый Анатолий! Спасибо за совершенно новую для меня информацию, но все же убедительно прошу Вас прочитать [8].
:o)
> All
Уважаемые коллеги! С вашего разрешения спор на тему выеденного яйца я на этом закончу. Он не стоит даже минуты нашего времени. Да и без него все абсолютно ясно.
← →
Leonid Troyanovsky © (2008-02-29 15:38) [13]
> Семеныч (29.02.08 14:40) [12]
> С вашего разрешения спор на тему выеденного
> яйца я на этом закончу.
Дык, никто и не спорил. Это называется "обсуждение".
Т.е., если нечего сказать - отходи в сторону.
Обсуждения ж у нас публичные. Они в нашем деле, IMHO,
весьма полезны. И необязательно даже для вопрошающих.
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2008-02-29 23:42) [14]> Семеныч (29.02.2008 14:40:12) [12]
Ты хочешь взять частный случай, а я рассматриваю общий, который не так уж и редок, если не заниматься батонокидательством. Вариант с Control гарантирует результат, вариант с Components не всегда.
← →
Семеныч (2008-03-01 11:39) [15]Аффигеть.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c