Вниз
Скачать: CL | DM;

Как присвоить один код для многих компонентов одного типа   Найти похожие ветки 

← →
Dyakon_Frost ©   (2007-07-02 11:28) [0]

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

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


← →
Игорь Шевченко ©   (2007-07-02 11:31) [1]

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

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;


← →
stone ©   (2007-07-02 11:32) [2]

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


← →
_Asph ©   (2007-07-02 11:39) [3]

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


← →
Desdechado ©   (2007-07-02 11:50) [4]

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

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


← →
Dyakon_Frost ©   (2007-07-02 11:51) [5]

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


← →
homm ©   (2007-07-02 11:51) [6]

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


← →
Anatoly Podgoretsky ©   (2007-07-02 11:52) [7]

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

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


← →
Dyakon_Frost ©   (2007-07-02 12:38) [8]


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

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

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

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


← →
Anatoly Podgoretsky ©   (2007-07-02 13:04) [9]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
2-1183410857
jonimimoni
2007-07-03 01:14
2007.07.29
Hook - перехват клавиатуры


15-1183453560
Bolek
2007-07-03 13:06
2007.07.29
документация по ParadoxSQL


15-1182850117
sergeyst
2007-06-26 13:28
2007.07.29
Можно ли в поток добавить данные?


2-1183529439
_Asph
2007-07-04 10:10
2007.07.29
Обновление данных в таблице


2-1183552580
Bad_B
2007-07-04 16:36
2007.07.29
Создать и уничтожить




   Наверх