Subversion Repositories Kolibri OS

Rev

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