Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 498

/ вопрос решён /

Здравствуйте, уважаемые эксперты!
Как найти все компоненты одного типа допустим компонент TEdit на ворме у меня их 20 и названия у всех осмысленные имеются не Edit1, Edit2....EditN. Мне нужно это для того чтобы не писать 20 строчек кода для изменение одного и тогоже свойства разных компонентов а зделать это все более компактно
С уважением, Сидаровский Георгий

Сидаровский Георгий Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Сидаровский Георгий (статус: Посетитель)
Вопрос отправлен: 18 апреля 2007, 18:12
Состояние вопроса: решён, ответов: 3.

Ответ #1. Отвечает эксперт: Помфюк Владимир Степанович

Здравствуйте, Сидаровский Георгий!
for i:=0 to ComponentCount-1 do
if Components[I].ClassName = 'TEdit' Then begin
...............всё что Вам надо..............
end;

Ответ отправил: Помфюк Владимир Степанович (статус: Абитуриент)
Время отправки: 18 апреля 2007, 18:24
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Yurchik

Здравствуйте, Сидаровский Георгий!
Вот примерчик, который очищает все Edit'ы, расположенные на форме.

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. i: Integer;
  4. begin
  5. for i:= 0 to ComponentCount-1 do
  6. if Components[i] is TEdit then
  7. (Components[i] as TEdit).Text:= '';
  8. end;


Ответ отправил: Yurchik (статус: 3-ий класс)
Время отправки: 18 апреля 2007, 18:31
Оценка за ответ: 5

Ответ #3. Отвечает эксперт: ANBsoft

for f:=1 to 5 do
TEdit(FindComponent('Edit'+IntToStr(f)).Text:=IntToStr(f);

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 18 апреля 2007, 20:56


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 18 апреля 2007, 20:57; участников в обсуждении: 1.
ANBsoft

ANBsoft (статус: Студент), 18 апреля 2007, 20:57 [#1]:

Скобку пропустил:
for f:=1 to 5 do
TEdit(FindComponent('Edit'+IntToStr(f))).Text:=IntToStr(f);

31 января 2011, 20:00: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 31 марта 2023, 03:12
Выполнено за 0.03 сек.
Рейтинг@Mail.ru