Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизWndProc у TPageControl Найти похожие ветки
← →
Yakudza © (2004-08-16 18:48) [0]Как правильно переписать WndProc например у TPageControla который лежит на форме.
← →
wicked © (2004-08-16 18:53) [1]OldWndProc := PageControl1.WindowProc;
PageControl1.WindowProc := MyWndProc;
← →
имя (2004-08-17 10:12) [2]Удалено модератором
← →
Yakudza © (2004-08-17 13:35) [3]OldWndProc := PageControl1.WindowProc;
А это обязательно.
MyWndProc может люой процедурой ?
← →
Yakudza © (2004-08-17 13:37) [4]Вообщем-то понятно как это реализовать если делать свой PageControl1, а вот не получаеться у уже лежащего на форме PageControl1 переписать WndProc. :(
← →
Юрий Зотов © (2004-08-17 13:41) [5]> Yakudza © (17.08.04 13:35) [3]
> OldWndProc := PageControl1.WindowProc;
> А это обязательно.
Если Вы собираетесь САМИ обрабатывать ВСЕ сообщения, то не обязательно. Если же не все - то обязательно
> MyWndProc может люой процедурой ?
Об этом написано в F1.
> Yakudza © (17.08.04 13:37) [4]
> Вообщем-то понятно как это реализовать если делать свой
> PageControl1, а вот не получаеться у уже лежащего на форме
> PageControl1 переписать WndProc. :(
У формы есть событие OnCreate. Что мешает вставить в его обработчик те самые 2 строчки?
← →
Yakudza © (2004-08-17 14:00) [6]Юрий Зотов © (17.08.04 13:41) [5]
>Если Вы собираетесь САМИ обрабатывать ВСЕ сообщения, то не обязательно. Если же не все - то обязательно
Как научусь ловить - решу :)
>У формы есть событие OnCreate. Что мешает вставить в его обработчик те самые 2 строчки?
я так и делаю
если я правильно понял то мне нужно обьявить класс MyaPageControl у него
переписать WndProc и присвоить его нужному контролу, в onCreate ?
← →
Yakudza © (2004-08-17 14:01) [7]Я низзя у TForm переписать WndProc и присвоить контролу ?
← →
wicked © (2004-08-17 17:16) [8]ну и ну.... :)
делаем так:
...
OldWndProc: TWndMethod;
...
// инициализируемся (в OnCreate например)
...
OldWndProc := PageControl1.WindowProc;
PageControl1.WindowProc := MyWndProc;
...
// собственно ловля и обработка сообщений
procedure TForm1.MyWndProc(var Msg: TMessage);
procedure CallOldProc;
begin
if Assigned(OldWndProc) then OldWndProc(Msg);
end;
begin
case Msg.Msg of
WM_MY_MESSAGE1: ; // сообщение 1
WM_MY_MESSAGE2: ; // сообщение 2
WM_MOUSEMOVE: ; // сообщение 3
// обрабатываем всё, что не лень, не забывая, где надо, вызвать CallOldProc
else CallOldProc; // вызываем родной обработчик
end;
end;
за синтаксис извиняйте - уже больше года на паскале не писал... ;)
← →
Yakudza © (2004-08-17 18:56) [9]Врубился !
2wicked © (17.08.04 17:16) [8]
Больше спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c