Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project11;
- {$APPTYPE CONSOLE}
- uses
- SysUtils,
- Windows,
- Forms,
- Messages,
- Classes,
- unMsgHandler in 'unMsgHandler.pas';
- type TMyThread = class(TThread)
- procedure Execute; override;
- end;
- var h: TMsgHandler;
- m: TMessage;
- t: TMyThread;
- procedure TMyThread.Execute;
- begin
- //PostMessage(MainThreadID, WM_USER + $500, 0, 0);
- PostThreadMessage(MainThreadID, WM_USER + $500, 0, 0);
- end;
- begin
- h:= TMsgHandler.Create;
- t:= TMyThread.Create(False);
- Readln;
- end.
- ------------------------------------------------------------
- unit unMsgHandler;
- interface
- uses Windows, Forms, Classes, Messages;
- type TMsgHandler = class
- {$IFDEF CONSOLE}
- FHandle: integer;
- procedure Handler(var msg:TMessage);
- {$ELSE}
- procedure Handler(var msg:Tmsg; var Handled: Boolean);
- {$ENDIF}
- constructor Create;
- destructor Destroy; override;
- end;
- implementation
- constructor TMsgHandler.Create;
- begin
- inherited;
- {$IFDEF CONSOLE}
- FHandle:= Classes.AllocateHwnd(Handler);
- {$ELSE}
- Application.OnMessage:= Handler;
- {$ENDIF}
- end;
- destructor TMsgHandler.Destroy;
- begin
- {$IFDEF CONSOLE}
- DeallocateHWnd(FHandle);
- {$ENDIF}
- inherited;
- end;
- {$IFDEF CONSOLE}
- procedure TmsgHandler.Handler(var msg: TMessage);
- begin
- Writeln(msg.msg);
- end;
- {$ELSE}
- procedure TMsgHandler.Handler(var msg: tagMSG; var Handled: Boolean);
- begin
- Writeln(msg.hwnd);
- end;
- {$ENDIF}
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement