Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1204113354
tytus
2008-02-27 14:55
2008.03.30
EndThread - закрывается приложение. Почему?


15-1203342468
Andrewtitoff
2008-02-18 16:47
2008.03.30
Почему Application.Terminate у меня не работает? =(((


15-1203041948
Вещь
2008-02-15 05:19
2008.03.30
Всегда ли функции FloatToStr и StrToFloat делают однозначный


2-1204026313
Ultimate
2008-02-26 14:45
2008.03.30
Чтение данных системы...


4-1185966596
Раф
2007-08-01 15:09
2008.03.30
Как найти подчиненое окно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский