![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как присвоить один код для многих компонентов одного типа [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;