![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;