Subversion Repositories Kolibri OS

Rev

Rev 623 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. { ‚ FreePascal 2.2.0 ª®¤¨à®¢ª  cp866 ­¥ ॠ«¨§®¢ ­ . }
  3. {-$codepage cp866}
  4.  
  5. {$mode objfpc}
  6. {$smartlink on}
  7. {$apptype console}
  8.  
  9. {   ¤ ­­ë© ¬®¬¥­â à áᬠâਢ ¥âáï ¢ë¯®«­¥­¨¥ ¯à¨«®¤¥­¨ï ⮫쪮 ª ª ª®­á®«ì­®¥,
  10.   â.¥. ¤¨à¥ªâ¨¢  console ®¡ï§ â¥«ì­ , ¯®¢¥¤¥­¨¥ ¯à®£à ¬¬ë ¯à¨ ®âáãâá⢨¨ í⮩
  11.   ¤¨à¥ªâ¨¢ë ¯à¥¤®¯à¥¤¥«¨âì ­¥«ì§ï. ƒ à ­â¨à®¢ ­­® ­¥«ì§ï ¨á¯®«ì§®¢ âì ä㭪樨
  12.   Write, WriteLn, Read, ReadLn ®â­®á¨â¥«ì­® áâ ­¤ àâ­®© ª®­á®«¨ ¢¢®¤ /¢ë¢®¤ .
  13. }
  14.  
  15. program Example;
  16.  
  17. { ‚ᥠä㭪樨 ¨¬¥î騥 ¢ ᢮¥¬ ¨¬¥­¨ ¯à¥ä¨ªá 'kos_' ïîâáï ¯« âä®à¬®§ ¢¨á¨¬ë¬¨
  18.   ¨ ॠ«¨§®¢ ­ë ⮫쪮 ¯®¤ KolibriOS. ˆå ¨á¯®«ì§®¢ ­¨¥ ¢ «î¡ëå ¯à®£à ¬¬­ëå
  19.   ¯à¨«®¦¥­¨ïå ª â¥£®à¨ç¥áª¨ ­¥ ४®¬¥­¤®¢ ­®, ¢ë­®á¨â¥ ¢á¥ ¬¥â®¤ë, ¨á¯®«ì§ãî騥
  20.   í⨠ä㭪樨, ¢ ®â¤¥«ì­ë¥ ¬®¤ã«¨ (¨ ¨á¯®«ì§ã©â¥ ­¥®¡å®¤¨¬ë¥  ¡áâࠪ樨).
  21. }
  22.  
  23. procedure DoPaint;
  24. { ‚뢮¤ ᮤ¥à¦¨¬®£® ®ª­  ¯à¨«®¦¥­¨ï }
  25. begin
  26.   kos_begindraw();
  27.   {®¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ®ª­ }
  28.   kos_definewindow(200, 200, 200, 50, $23AABBCC);
  29.   {kos_definewindow ­¥ ¨¬¥¥â ¯ à ¬¥âà  ¤«ï ¢ë¢®¤  § £®«®¢ª ,
  30.    ¤¥« ¥¬ íâ® ®â¤¥«ì­®© ä㭪樥© kos_setcaption}
  31.   {®â®¡à ¦¥­¨¥ § £®«®¢ª  ®ª­ }
  32.   kos_setcaption('ˆŒ… Žƒ€ŒŒ›');
  33.   {¢ë¢®¤ á®®¡é¥­¨ï}
  34.   kos_drawtext(3, 8, ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã...');
  35.   kos_enddraw();
  36. end;
  37.  
  38. procedure DoKey;
  39. { Ž¡à ¡®âª  ᮡëâ¨ï ­ ¦ â¨ï ª« ¢¨è¨ }
  40. var
  41.   Key: DWord;
  42.   Notes: array[0..3] of Byte;
  43. begin
  44.   Key := kos_getkey();
  45.   {­ áâà ¨¢ ¥¬ ¡ãä¥à ¤«ï ­®â}
  46.   Notes[0] := $90;
  47.   Notes[1] := Key shr 8;
  48.   Notes[2] := $00;
  49.   {¢®á¯à®¨§¢®¤¨¬}
  50.   kos_speaker(@Notes);
  51. end;
  52.  
  53.  
  54. function DoButton: Boolean;
  55. { Ž¡à ¡®âª  ᮡëâ¨ï ­ ¦ â¨ï ª­®¯ª¨ GUI }
  56. var
  57.  Button: DWord;
  58. begin
  59.   {¯®«ãç¨âì ª®¤ ­ ¦ â®© ª«¨¢¨è¨}
  60.   Button := kos_getbutton();
  61.   {¥á«¨ [x], â® ¢¥à­ãâì «®¦ì,   §­ ç¨â á¯à®¢®æ¨à®¢ âì § ªàë⨥ ¯à¨«®¦¥­¨ï}
  62.   Result := Button <> 1;
  63. end;
  64.  
  65.  
  66. function ProcessMessage: Boolean;
  67. { Ž¦¨¤ ­¨¥ ¨ ®¡à ¡®âª  ᮡë⨩.
  68.  
  69.   @return: ‚®§¢à é ¥â False, ¥á«¨ ¡ë«® ᮡë⨥ ª § ¢¥à襭¨î ¯à¨«®¦¥­¨ï.
  70.   @rtype: True ¨«¨ False }
  71. var
  72.   Event: DWord;
  73. begin
  74.   Result := True;
  75.   {®¦¨¤ ¥¬ ᮡëâ¨ï ®â á¨á⥬ë}
  76.   Event := kos_getevent();
  77.   case Event of
  78.     SE_PAINT   : DoPaint;  {¯¥à¥à¨á®¢ª  ®ª­ }
  79.     SE_KEYBOARD: DoKey;    {ᮡë⨥ ®â ª« ¢¨ âãàë}
  80.     SE_BUTTON  : Result := DoButton; {ᮡ먥 ®â ª­®¯ª¨, ¬®¦¥â ®¯à¥¤¥«¨âì
  81.                                       § ¢¥à襭¨¥ ¯à¨«®¦¥­¨ï, ¥á«¨ ¢¥à­¥â False}
  82.   end;
  83. end;
  84.  
  85.  
  86. procedure MainLoop;
  87. { ƒ« ¢­ë© 横« ¯à¨«®¦¥­¨ï }
  88. var
  89.   ThreadSlot: TThreadSlot;
  90. begin
  91.   {­ áâà ¨¢ ¥¬ ᮡëâ¨ï, ª®â®àë¥ ¬ë £®â®¢ë ®¡à ¡ â뢠âì}
  92.   kos_maskevents(ME_PAINT or ME_KEYBOARD or ME_BUTTON);
  93.   {®¡à ¡®âª  ᮡë⨩}
  94.   while ProcessMessage do;
  95. end;
  96.  
  97.  
  98. begin
  99.   WriteLn('Look for a new window, I''m just a konsole ;-)');
  100.   MainLoop;
  101. end.
  102.