Тема: crt32
Показать сообщение отдельно
  #1  
Старый 22.01.2013, 10:05
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию crt32

http://www.delphisources.ru/pages/fa..._unit_use.html

вот тут нашел для отлавливания нажатия клавиш

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,crt32,windows;

type
 coord  = record
  x: integer;
  y: integer;
 end;

 var
 m: array[1..22] of array[1..80] of char;


procedure ClearConsoleWindow;
var
  ConsoleHandle:THandle;
  ConsoleInfo: TConsoleScreenBufferInfo;
  Coord:TCoord;
  WrittenChars:DWORD;
begin
  FillChar(ConsoleInfo,SizeOf(TConsoleScreenBufferInfo),0);
  FillChar(Coord,SizeOf(TCoord),0);
  ConsoleHandle:=GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(ConsoleHandle, ConsoleInfo);
  FillConsoleOutputCharacter(ConsoleHandle,' ', ConsoleInfo.dwSize.X * ConsoleInfo.dwSize.Y, Coord, WrittenChars);
  SetConsoleCursorPosition(ConsoleHandle,ConsoleInfo.dwCursorPosition)
end;


procedure Show;
var
i,n: integer;
begin
ClearConsoleWindow;
  for i:=1 to 22 do
  for n:=1 to 80 do  write(m[i,n]);
end;

procedure WriteIn(x,y: byte; ch: char);
begin
OverWriteChrXY(x,y,'5');
GotoXY(1,23);
end;


var
i,n: integer;
 sbi: TConsoleScreenBufferInfo;
sw:string;
key: char;
p:COORD;
begin
  { TODO -oUser -cConsole Main : Insert code here }
for i:=1 to 80 do m[1,i]:='0';
for i:=2 to 21 do
 begin
  m[i,1]:='0';
  m[i,80]:='0';
 end;
p.x:=3;
p.y:=20;
m[p.y,p.x]:='1';
for i:=1 to 80 do m[22,i]:='0';
Show;

While key<>#121 do
 begin
    if KeyPressed then
     begin
      key:=readkey;
      writeln(key);
      if Key=#38 then
       begin
        WriteIn(p.x,p.y,' ');
        m[p.x,p.y]:=' ';
        p.y:=p.y-1;
        m[p.y,p.x]:='1';
        WriteIn(p.x,p.y,'1');
       end;
     end;
 end;
end.
накидал примитивную программку
а оно чего то не работает, ставил точку останова
после key:=readkey; отказывается выполняться модуль crt32
Ответить с цитированием