Editor na kreslenie pomocou hviezdičiek

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategória: KMP (Klub mladých programátorov)

Autor: Juraj Pupák
Program: Kurzor.pas
Súbor exe: Kurzor.exe

Editor na kreslenie pomocou hviezdičiek. Pohyb kurzora šípkami. 0-9 - zmena farby, sift+šípky - kresli, enter - koniec.
{ KURZOR.PAS                                                        }
{ Editor na kreslenie pomocou hviezdiciek.                          }
{ Pohyb kurzora sipkami.                                            }  
{ 0-9 - zmena farby, sift+sipky - kresli, enter - koniec.           }
{                                                                   }
{ Author: Juraj Pupak                                               }
{ Date  : 27.10.2006                           http://www.trsek.com }
 
program Kurzor;
uses crt,drivers;
var
  x,y : integer;
  Quit  : Boolean;
  farba : integer;
  KeyChar : Char;
 
Procedure zobraz(Var x,y,farba : integer);
begin
  gotoxy(x,y);
  textcolor(farba);
  write('*');
end;
 
Procedure zmaz(Var x,y : integer);
begin
  gotoxy(x,y);
  textcolor(0);
  write('*');
end;
 
begin
 clrscr;
 x := 1;
 y := 3;
 farba := 7;
 
 textcolor(15);
 writeln('Pohyb kurzora sipkami. 0-9 - zmena farby, sift+sipky - kresli, enter - koniec');
 writeln('-----------------------------------------------------------------------------');
 
 Repeat
   KeyChar := ReadKey;
   Quit := False;
 
   Case Ord(KeyChar) OF
        0 : begin
             KeyChar := ReadKey;
             Case Ord(KeyChar) Of
                  72:begin
                       if GetShiftState and kbLeftShift = 0 then zmaz(x,y);
                       y := y - 1;
                       IF y <= 1 THEN y := 1;
                       zobraz(x,y,farba);
                     end;
 
                  80:begin
                       if GetShiftState and kbLeftShift = 0 then zmaz(x,y);
                       y := y + 1;
                       IF y >= 50 THEN y := 50;
                       zobraz(x,y,farba);
                     end;
 
                  75:begin
                       if GetShiftState and kbLeftShift = 0 then zmaz(x,y);
                       x := x - 1;
                       IF x <= 1 THEN x := 1;
                       zobraz(x,y,farba);
                     end;
 
                  77:begin
                       if GetShiftState and kbLeftShift = 0 then zmaz(x,y);
                       x := x + 1;
                       IF x >= 79 THEN x := 79;
                       zobraz(x,y,farba);
                     end;
                  end;
             end;
           13 : Quit := True;
           48 : farba := 0;
           49 : farba := 1;
           50 : farba := 2;
           51 : farba := 3;
           52 : farba := 4;
           53 : farba := 5;
           54 : farba := 6;
           55 : farba := 7;
           56 : farba := 8;
           57 : farba := 9;
   end;
 until Quit;
end.