Текущий архив: 2003.05.29;
Скачать: CL | DM;
Вниз
Процедура окна Win32 API Найти похожие ветки
← →
kva (2003-04-02 11:25) [0]Пытаюсь сделать так, чтобы сроллинг в одном окне сопровождался скроллингом в другом окне. Оба окна не VCL. Делаю подмену процедуры окна. Если хэндлы окон хранятся в переменных модуля, все OK. Если же помещаю их в поля формы, то получаю ошибку типа AV. При этом вначале сообщения проходят, а при попытке кликнуть по полосе прокрутки задача вылетает.
В конце перед вылетом последовательность сообщений в новой процедуре окна такова:
...
WM_NCSETCURSOR
WM_NCLBUTTONDOWN
WM_SYSCOMMAND
WM_KILLFOCUS
WM_CANCELMODE
EM_CHARFROMPOS
WM_DESTROY
WM_NCDESTROY
Понятно почему вылетает, я пока не обрабатываю DESTROY.
Непонятно, а почему вообще до Destroy дело доходит, почему SYSCOMMAND посылается и как это связано с хэндлами окон.
Может кто сталкивался с такой проблемой?
← →
kva (2003-04-02 12:48) [1]Уточнение. Даже если только один хэндл окна ( процедуру которого меняем) хранится в переменной модуля, то все проходит нормально. Но если его перенести в Private переменные, то все рушится.
← →
kva (2003-04-02 14:05) [2]Разобрался в чем ошибка. У меня процедура окна была объявлена как функция внутри метода, поэтому из нее, на этапе разработки, видны были переменные класса (специально извратился). Оказалось, на этапе выполнения, что они недоступны. Как дальше быть еще не знаю. Дело в том, что у меня в модуле нет (и не должно быть) пересенных типа класса формы.
Попробую поработать с методом окна.
Кто работал с MakeObjectInstance? Что это за функция, на пальцах объяснить можете что она делает?
← →
Songoku © (2003-04-02 17:43) [3]кароче я попробывал и у меня получилось с двумя Memo.
В процедуре где обрабатываютя окна ты должен это вписать!!!
case msg of
48435:SendMessage({Window2},Msg,wParam,lParam);
115:SendMessage({Window2},Msg,wParam,lParam);
522:SendMessage({Window2},Msg,wParam,lParam);
wm_vscroll:SendMessage({Window2},Msg,wParam,lParam);
wm_hscroll:SendMessage({Window2},Msg,wParam,lParam);
end;
и в процедуде другого окна только вместо Window2 -> Window
Страницы: 1 вся ветка
Текущий архив: 2003.05.29;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.015 c