Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2011
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.43 KB | None | 0 0
  1. program Project11;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils,
  7.   Windows,
  8.   Forms,
  9.   Messages,
  10.   Classes,
  11.   unMsgHandler in 'unMsgHandler.pas';
  12.  
  13.  
  14. type TMyThread = class(TThread)
  15.   procedure Execute; override;
  16. end;
  17.  
  18. var h: TMsgHandler;
  19.     m: TMessage;
  20.     t: TMyThread;
  21.  
  22. procedure TMyThread.Execute;
  23. begin
  24.   //PostMessage(MainThreadID, WM_USER + $500, 0, 0);
  25.   PostThreadMessage(MainThreadID, WM_USER + $500, 0, 0);
  26. end;
  27.  
  28. begin
  29.   h:= TMsgHandler.Create;
  30.   t:= TMyThread.Create(False);
  31.   Readln;
  32. end.
  33.  
  34. ------------------------------------------------------------
  35.  
  36.  
  37. unit unMsgHandler;
  38.  
  39. interface
  40.  
  41. uses Windows, Forms, Classes, Messages;
  42.  
  43. type TMsgHandler = class
  44. {$IFDEF CONSOLE}
  45.   FHandle: integer;
  46.   procedure Handler(var msg:TMessage);
  47. {$ELSE}
  48.   procedure Handler(var msg:Tmsg; var Handled: Boolean);
  49. {$ENDIF}
  50.   constructor Create;
  51.   destructor Destroy; override;
  52. end;
  53.  
  54. implementation
  55.  
  56. constructor TMsgHandler.Create;
  57. begin
  58.   inherited;
  59. {$IFDEF CONSOLE}
  60.   FHandle:= Classes.AllocateHwnd(Handler);
  61. {$ELSE}
  62.   Application.OnMessage:= Handler;
  63. {$ENDIF}
  64. end;
  65.  
  66. destructor TMsgHandler.Destroy;
  67. begin
  68. {$IFDEF CONSOLE}
  69.   DeallocateHWnd(FHandle);
  70. {$ENDIF}
  71.   inherited;
  72. end;
  73.  
  74. {$IFDEF CONSOLE}
  75. procedure TmsgHandler.Handler(var msg: TMessage);
  76. begin
  77.   Writeln(msg.msg);
  78. end;
  79. {$ELSE}
  80. procedure TMsgHandler.Handler(var msg: tagMSG; var Handled: Boolean);
  81. begin
  82.   Writeln(msg.hwnd);
  83. end;
  84. {$ENDIF}
  85.  
  86.  
  87. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement