Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.13;
Скачать: CL | DM;

Вниз

передача события паренту - как?   Найти похожие ветки 

 
Franzy   (2006-06-29 21:03) [0]

Такая проблема:
Есть форма. На форме - панель (Tpanel). На панели -другая панель и, скажем, надпись (Label). Хочется, чтобы при щелчке _на любом месте_ первой панели-контейнера срабатывало событие onclick, ибо если щелкнуть по внтуренней панели или надписи, оно не срабатывает. Конечно, можно привязать обработчик onclick ко всем объектам внутри контейнера, но это, имхо, не выход (потому что в моей реальной задаче внутри панели-контейнера этих надписей и других панелей до кучи!) Когда я сталкивался с такой проблемой при написании DHTML на JavaScript, я просто лепил сверху еще один прозрачный слой и все обработчики мыши привязывал к нему. Пробовал сделать похожий трюк в дельфях - не получилось.  
Подскажите, плиз, как можно заставить некий объект передавать своему parent"у события, вызванные юзером (типа щелчка мышью), или как еще можно решить описанную проблему.


 
Юрий Зотов ©   (2006-06-29 21:20) [1]

for i := 0 to Panel.ControlCount - 1 do
 Panel.Controls[i].OnClick := MyOnClickHandler;

Эти 2 простейшие строчки позволят Вам не извращаться с какими-то там прозрачными слоями.
:)


 
Franzy   (2006-06-29 23:16) [2]

К сожалению, этот вариант мне не подходит :( Дело в том, что я создаю класс, и просто не знаю, какой там обработчик будет привязан. Другие варианты есть? Ведь нельзя же напистаь Panel.Controls[i].OnClick := Panel.onclick - работать не будет.


 
ЮЮ ©   (2006-06-30 03:30) [3]

Ведь нельзя же напистаь Panel.Controls[i].OnClick := Panel.onclick - работать не будет.
Но можно
 Panel.Controls[i].OnClick := PanelClick;
где PanelClick - метод класса с примерно таким кодом:
TPanelAcess(Panel).Click;
где
 TPanelAcess = class(TPanel); - длч доступа к protected методу Click



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

Текущий архив: 2006.08.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1153220371
DevilDevil
2006-07-18 14:59
2006.08.13
Мои Pas модули не компилятся в Билдере


3-1149593377
Fiallo4ka
2006-06-06 15:29
2006.08.13
связи в таблицах


1-1151402606
DVM
2006-06-27 14:03
2006.08.13
Проблема с редактированием узлов TreeView


15-1153381637
s_pavell
2006-07-20 11:47
2006.08.13
Документирование принтера


1-1151372156
parovoZZ
2006-06-27 05:35
2006.08.13
Экспорт / импорт (dll) функций из класса