Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
15-1183108690
Volcanic
2007-06-29 13:18
2007.07.29
Как объединить TreeView и ListView??


15-1183469880
@!!ex
2007-07-03 17:38
2007.07.29
Добавить пункт в меню программы на Taskbar e.


8-1162468735
toboom
2006-11-02 14:58
2007.07.29
Проблема использования таймера из MMSystem


2-1183627061
dwery
2007-07-05 13:17
2007.07.29
Как обновить запрос?


2-1183363164
Ksion_tm
2007-07-02 11:59
2007.07.29
Скорость шпинделя CDROMa





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский