![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
много форм несделать
AllDer © (2006-02-08 19:01:00)Несколько форм на АPi
Далаю как обычно в основной
function WindowProc
в main
делаю форму и
while(GetMessage(Msg,hWnd, 0, 0)) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end; { with }
end.
Работает,еще форму №2 делаю в другом юните
очередь так
while GetMessage( Msg2, 0, 0, 0)
н0ль вместо хэндла формы №2 ,а если подставить хэндл,то плохо работает
Работает,еще форму №3 делаю в другом юните
в маин форму делаю , но не возможно ее перетащить
но очередь поставить GetMessage ,то ничего
не появляется форма1-3,
по F8 видно как отладчик застревает на первой строчке формы 1
и дальше неидет
Думаю грабли в обработке событий ?
У каждого окна должна быть конструкция GetMessage-TranslateMessage-DispatchMessage ?
AllDer (2006-02-08 19:36:00) [1]а помогло в основной ноль поставил,а
в третем окне вобще очередь убрал,
GetMessage-TranslateMessage-DispatchMessage
окно №3 двигается и работает ,не понятно как )
Спасибо
begin...end (2006-02-08 19:27:00) [2]А вот цикла обработки сообщений хватит и одного. Только вторым параметром в GetMessage нужно передавать ноль -- тогда из очереди будут выбираться сообщения, адресованные любому из окон текущего потока.
Джо (2006-02-08 19:18:00) [3]Вопрос (я так понял) в том — у каждого окна должна быть своя оконная процедура? Mostly, yes.
AllDer (2006-02-08 19:14:00) [4]имею виду по такому скелету
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
....
BEGIN
with WinClass do
begin
RegisterClass(WinClass);
hWnd := CreateWindowEx(0, 'Window','Window',
while(GetMessage(Msg,hWnd, 0, 0)) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end; { with }
end.
Anatoly Podgoretsky (2006-02-08 19:10:00) [5]АПИ не поддерживает форм