СообЧа > База Знаний > Программирование > Delphi

Вопрос

На моей форме более 20 Panel'ей и в каждой я обрабатываю событие MouseMove и MouseDown, у всех панелей эти события одинаковы! Получился очень большой объем исходного кода, более 300 строк одинаковой информации! Можно ли как то это изменить?

Ответ

Конечно.
Например имеем обрабочик события для первой панели, тогда просто для второй и последующих:

PanelN.onMouseMove=Обработчик первой панели;

А в самом обработчике мы можем узнать кто именно вызвал его:

MessageDlg('Это событие от '+TPanel(Sender).Name);

Вот и все. Так же мы можем и любые properties панели, которая вызвала обработчик изменять. Например так:

TPanel(Sender).Color:=clWhite;

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация