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

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

OnMessage


Redline ©   (2006-08-06 17:07:00) 

Как быть с Application.OnMessage, если прога типа:
Program

Begin

end.?

если сделать просто процедуру то и присвоить ее к OnMessage компилятор ругается. Или может есть еще какие нибуть способы получать сообщения? (учитавая тип проги)


Шпиён   (2006-08-06 18:56:00) [1]


> Redline   (06.08.06 18:17) [4]
> Eraser ©   (06.08.06 17:51) [2]
>
> Не очень понимаю что это такое

Пример:

program Hot1;
uses
 windows,messages;
var
   msg:TMsg;

begin
   if RegisterHotKey(0,1, MOD_ALT+MOD_CONTROL,
       $5A            // virtual-key code  'Z'
       ) then
//Цикл выборки сообщений
       while(GetMessage(Msg,0,0,0)) do
       begin
           TranslateMessage(Msg);
           if Msg.message = WM_HOTKEY then
           if Windows.MessageBox(0,'Ура!','Всплываем...',MB_OKCANCEL+MB_ICONWARNING+MB_SYSTEMMODAL)=IDCANCEL
           then  PostQuitMessage(0);
           DefWindowProc( 0, Msg.Message, Msg.wParam, Msg.lParam ) ;
       end;
end.


Eraser   (2006-08-06 18:54:00) [2]

> [4] Redline   (06.08.06 18:17)
> Eraser ©   (06.08.06 17:51) [2]
>
> Не очень понимаю что это такое

для начала нужно разобраться что же это такое, советую прочитать двухтомник Тейксейра, Пачеко "Delphi 5. Руководство разработчика". Найти его можно тут http://www.podgoretsky.com/ddp.html


Плохиш   (2006-08-06 18:40:00) [3]


> кстати а где в проге типа Probram Begin end. можно засунуть
> implementation

Ну убери это слово. Думалка для чего человеку дана?


Плохиш   (2006-08-06 18:39:00) [4]


> Redline   (06.08.06 18:17) [3]
> Плохиш ©   (06.08.06 17:35) [1]
>
> Выдает ошибку:
> [Pascal Error] Project1.dpr(22): E2010 Incompatible types:
>  'TMessageEvent' and 'Procedure'

Думаешь, я слова class procedureпросто так написал, для прикола?


Redline   (2006-08-06 18:17:00) [5]

Плохиш ©   (06.08.06 17:35) [1]

Выдает ошибку:
[Pascal Error] Project1.dpr(22): E2010 Incompatible types: 'TMessageEvent' and 'Procedure'

собственно от этого у меня и все проблемы. кстати а где в проге типа Probram Begin end. можно засунуть implementation?


Redline   (2006-08-06 18:17:00) [6]

Eraser ©   (06.08.06 17:51) [2]

Не очень понимаю что это такое


Eraser   (2006-08-06 17:51:00) [7]

> [0] Redline   (06.08.06 17:07)

а в программе вообще присутствует цикл выборки сообщений?


Плохиш   (2006-08-06 17:35:00) [8]

type
 TMyClass = class
 class procedure MyMessage(var Msg: TMsg; var Handled: Boolean);
 end;

implementation

procedure TMyClass.MyMessage(var Msg: TMsg; var Handled: Boolean);
begin
 ShowMessage('Ha-Ha');
 Handled := true;
end;

........

begin
 Application.OnMessage := TMyClass.MyMessage;
end;


Наверх

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