Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

много форм несделать


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]

АПИ не поддерживает форм


Наверх

Титульная страница Поиск, карта сайта Написать письмо