procedure drawArc(x, y, width, height, startAngle, arcAngle: integer);  

  ,    .    ,    'startAngle'    'arcAngle' .  0   3-   .  90  - 12   . 

  begin 
    drawArc(0, 0, getWidth, getHeight, 0, 90); 
    repaint; 
    delay(1000); 
  end. 
  
  

procedure drawEllipse(x, y, width, height: integer);  

 ,    . 

  begin 
    drawEllipse(0, 0, getWidth, getHeight); 
    repaint; 
    delay(1000); 
  end. 


  
  procedure drawImage(img: image; x, y: integer); 

    . 'X'  'Y'      . 

  begin 
    drawImage(loadImage('/logo.png'), 0, 0); 
    repaint; 
    delay(1000); 
  end. 




  procedure drawLine(x1, y1, x2, y2: integer);  

    ('x1', 'y1')   ('x2', 'y2'). 

  begin 
    drawLine(10, 15, 25, 35); 
    repaint; 
    delay(1000); 
  end. 



procedure drawRect(x, y, width, height: integer);  

      . 

  begin 
    drawRect(5, 5, 20, 20); 
    repaint; 
    delay(1000); 
  end. 




procedure drawRoundRect(x, y, width, height, arcWidth, arcHeight: integer);  

         . 

  begin 
    drawRoundRect(5, 5, 20, 20, 2, 2); 
    repaint; 
    delay(1000); 
  end. 




procedure drawText(text: string, xPos, yPos: integer);  

  'text'   . 'xPos'  'yPos'      ,    . 

  begin 
    setColor(255, 0, 0); 
    drawText('Hello world', 0, 0); 
    repaint; 
    delay(1000); 
  end. 




procedure fillEllipse(x, y, width, height: integer);  

  ,    . 

  begin 
    fillEllipse(0, 0, getWidth, getHeight); 
    repaint; 
    delay(1000); 
  end.




procedure fillRect(x, y, width, height: integer);  

  . 

  begin 
    fillRect(5, 5, 20, 20); 
    repaint; 
    delay(1000); 
  end. 




procedure fillRoundRect(x, y, width, height, arcWidth, arcHeight: integer);  

     . 

  begin 
    fillRoundRect(5, 5, 20, 20, 2, 2); 
    repaint; 
    delay(1000); 
  end. 




function getColorBlue: integer;  

      . 

  begin 
    setColor(0, 0, 127); 
    if getColorBlue <> 127 then  
    begin 
      drawText('This should never happen', 0, 0); 
      repaint; 
    end; 
    delay(1000); 
  end. 




function getColorGreen: integer;  

      . 

  begin 
    setColor(0, 127, 0); 
    if getColorGreen <> 0 then  
    begin 
      drawText('This should never happen', 0, 0); 
      repaint; 
    end; 
    delay(1000); 
  end. 




function getColorRed: integer;  

      . 

  begin 
    setColor(127, 0, 0); 
    if getColorRed <> 127 then  
    begin 
      drawText('This should never happen', 0, 0); 
      repaint; 
    end; 
    delay(1000); 
  end. 




function getColorsNum:integer;  

  ,    .



function getHeight: integer;  

    ( ). 

  begin 
    drawEllipse(0, 0, getWidth, getHeight); 
    repaint; 
    delay(1000); 
  end. 




function getImageHeight(img: image): integer;  

     . 




function getImageWidth(img: image): integer;  

     .




function getStringHeight(text: string): integer;  

  ( )     'text'. 

  var text: string; 
    height: integer; 
  begin 
    text   := 'Text to display'; 
    height := getStringHeight(text); 
    drawText(text, 0, (getHeight - height)/2); 
    repaint; 
    delay(1000); 
  end. 





function getStringWidth(text: string): integer;  

  ( )     'text'. 

  var text: string; 
     width: integer; 
  begin 
    text  := 'Text to display'; 
    width := getStringWidth(text); 
    drawText(text, (getWidth - width)/2, 0); 
    repaint; 
    delay(1000); 
  end. 




function getWidth: integer;  

    ( ). 

  begin 
    drawEllipse(0, 0, getWidth, getHeight); 
    repaint; 
    delay(1000); 
  end. 




function isColorDisplay:boolean;  

 true  ,     .   ,  false





function loadImage(resource: string): image; 

        'image'.      JAR-,   'resource'     "/".    ,   . 

      MIDletPascal. 

  begin 
    drawImage(loadImage('/icon.png'), 0, 0); 
    repaint; 
    delay(1000); {  1 ,      } 
  end. 




procedure plot(x, y:integer);  

      . 

  begin 
    setColor(255, 0, 0); 
    plot(5, 10); 
    repaint; 
    delay(1000); 
  end. 




procedure repaint;  

       .    (  drawLine, drawText, fillRect  .)      ,    ,       repaint.   -     ,       ,   . 

  begin 
    drawText('Hello world', 0, 0); 
    repaint; 
    delay(1000); 
  end. 




procedure setClip(int x, int y, int width, int height);  

 ,       . 

  begin 
    //  . 
    setColor(0, 0, 0); 
    fillEllipse(0, 0, getWidth, getHeight); 
    repaint; 
    delay(2000); 

    //  ,     setClip 
    setClip(10, 10, 15, 25); 
    fillEllipse(0, 0, getWidth, getHeight); 
    repaint; 
    delay(2000); 
  end. 





procedure setColor(red, green, blue:integer);  

  ,       .  'red', 'green'  'blue'     0  255. ,     (0, 0, 0), - - (255, 0, 0)   - (255, 255, 255). 

  begin 
    setColor(0, 0, 255); {  -  } 
    drawText('Hello world', 0, 0); 
    repaint; 
    delay(1000); 
  end. 



procedure setDefaultFont;  

   ,     .  ,          setDefaultFont          . 




procedure setFont(fontFace, fontStyle, fontSize);  

 ,    . 
'fontFace'    : 
  FONT_FACE_SYSTEM  
  FONT_FACE_MONOSPACE  
  FONT_FACE_PROPORTIONAL  
  
'fontStyle'    : 
  FONT_STYLE_PLAIN
  FONT_STYLE_BOLD
  FONT_STYLE_ITALIC
  FONT_STYLE_UNDERLINE
  
  ,    or. ,     ,  (FONT_STYLE_BOLD or FONT_STYLE_UNDERLINE)      . 

        : 

  FONT_SIZE_SMALL
  FONT_SIZE_MEDIUM
  FONT_SIZE_LARGE  
  
        setFont          . 

  begin 
    setFont(FONT_FACE_SYSTEM, FONT_STYLE_BOLD or FONT_STYLE_UNDERLINE, FONT_SIZE_LARGE); 
    drawText('Hello world', 0, 0); 
    repaint; 
    delay(1000); 
  end. 