Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как присвоить один код для многих компонентов одного типа [D7]


Dyakon_Frost ©   (2007-07-02 11:28:00) 

Здравствуйте!
У меня есть 23 Edit'a и для всех них проводится одна и таже проверка! Как-нибудь можно прописать код так, чтобы не прописывать всем компонентам событие OnChange?

Заранее спасибо.


Anatoly Podgoretsky   (2007-07-02 13:04:00) [1]

Если этот способ не подходит, то выделяем компонент в инспекторе объектов и на закладке событий назначаем ранее созданый обработчик.


Dyakon_Frost   (2007-07-02 12:38:00) [2]


> А в чем у тебя сложность - выделить все нужные компоненты
> на форме и указать один раз обработчик.

Хотелось просто узнать, более понятные методы! А то не всегда этот способ подходит.
Всем большое спасибо! Решил пока огород не городить.

> Игорь Шевченко

Спасибо за пример! Очень познавательно.


Anatoly Podgoretsky   (2007-07-02 11:52:00) [3]

Событие придется всем прописать и другого пути нет, а вот обработчик события может быть общий.

А в чем у тебя сложность - выделить все нужные компоненты на форме и указать один раз обработчик.


Dyakon_Frost   (2007-07-02 11:51:00) [4]

Ну можно собственно и свой компонент написать на основе TEdit! Просто ищу самый простой способ.


homm   (2007-07-02 11:51:00) [5]

В инспекторе объектов, там где ты назначаешь действия на события, у каждого события есть такая кнопочки со стрелочкой справа. Она тебе и нужна.


Desdechado   (2007-07-02 11:50:00) [6]

> По моему классически, надо на основе Edit сделать свой класс,
Излишне. Если на каждый пшик городить классы, то зачем тогда остальное придумали?

Автору
Можно один обработчик назначить и в дизайн-тайме. Заметь, что при назначении можно не только дважды кликать для создания нового, но и из комбика выбрать уже имеющиеся.


_Asph   (2007-07-02 11:39:00) [7]

По моему классически, надо на основе Edit сделать свой класс,  где и прописать необходимый метод, и на форму уже навешивать этот класс, и не о чем не думать :)


stone   (2007-07-02 11:32:00) [8]

Событие OnChange в этом случае должно указывать на одну процедуру, например на обработчик OnChange любого из Edit'ов.


Игорь Шевченко   (2007-07-02 11:31:00) [9]

Назначать одно событие динамически ?

procedure MyForm.EditChange (Sender: TObject);
begin
 ...
end;

procedure MyForm.FormCreate (Sender: TObject);
var
 I: Integer;
begin
 for I:=0 to ComponentCount-1 do
   if Components[I] is TEdit then
      TEdit(Components[I]).OnChange := EditChange;
 ...
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо