Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #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

Последний раз редактировалось ALexandr555, 22.01.2013 в 13:06.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025