PMDEMO1.PP 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. {****************************************************************************
  2. Copyright (c) 1993,94 by Florian Kl„mpfl
  3. ****************************************************************************}
  4. { Demonstrationsprogramm zu FPKPascal unter OS/2 }
  5. { traditionelles Hello world-Porgamm (PM-Version) }
  6. program pmdemo1;
  7. uses
  8. os2def,pmwin;
  9. var
  10. frame,client : cardinal;
  11. ab : cardinal;
  12. mq : cardinal;
  13. msg : QMSG;
  14. const
  15. frameflags : longint = FCF_TITLEBAR+FCF_SYSMENU+FCF_SIZEBORDER+
  16. FCF_MINBUTTON+FCF_MAXBUTTON+FCF_SHELLPOSITION+
  17. FCF_TASKLIST+FCF_MENU;
  18. function clientwndproc(window : cardinal;msg : longint;mp1,mp2 : cardinal) :
  19. cardinal;export;
  20. const
  21. text = 'Hello world by OS/2 and FPKPascal';
  22. var
  23. ps : cardinal;
  24. rcl : RECTL;
  25. begin
  26. {clientwndproc:=nil; }
  27. case msg of
  28. {WM_CREATE : DosBeep(200,500);}
  29. WM_PAINT : begin
  30. ps:=WinBeginPaint(window,0,nil);
  31. WinQueryWindowRect(window,@rcl);
  32. WinDrawText(ps,-1,text,@rcl,0,7,$8500);
  33. WinEndPaint(ps);
  34. end;
  35. WM_COMMAND : case lo(longint(mp1)) of
  36. {101 : DosBeep(4500,1000);}
  37. 109 : WinPostMsg(0,WM_QUIT,nil,nil);
  38. 201 : WinMessageBox(cardinal(1),cardinal(1),
  39. 'HelloPM von FPKPascal',
  40. 'šber',0,MB_ICONEXCLAMATION+MB_MOVEABLE);
  41. end;
  42. else
  43. clientwndproc:=WinDefWindowProc(window,msg,mp1,mp2);
  44. end;
  45. end;
  46. begin
  47. ab:=WinInitialize(0);
  48. mq:=WinCreateMsgQueue(ab,0);
  49. WinRegisterClass(ab,'HELLOPM',@clientwndproc,4,0);
  50. frame:=WinCreateStdWindow(cardinal(1),WS_VISIBLE,@frameflags,'HELLOPM',
  51. 'PMDemo 1',WS_VISIBLE,0,1,@client);
  52. while (WinGetMsg(ab,@msg,0,0,0)<>0) do
  53. WinDispatchMsg(ab,@msg);
  54. WinDestroyWindow(frame);
  55. WinDestroyMsgQueue(mq);
  56. WinTerminate(ab);
  57. end.
  58. {
  59. $Log$
  60. Revision 1.1 1999-06-02 16:01:35 hajny
  61. * changes by Ramon Bosque
  62. }