|
#1
|
||||
|
||||
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. |
#2
|
|||
|
|||
Если вам интересно то можно сделать и следующим образом.
Компонент TapplicationEvents в Events OnMessage Код:
if (Msg.message=WM_KEYDOWN) then showmessage(inttostr(Msg.wParam)); |
#3
|
|||
|
|||
на самом деле этот модуль не полный нехватает еще одного и тестового примера
|
#4
|
||||
|
||||
Heneken, ну я так то консольное пишу, в окнном труда не составит отловить
my33oh а подробней? |
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
|
#7
|
|||
|
|||
ты решил один из своих плееров в консоль запихать чтоли?
я помню у меня в примере были еще рамки всякие,мышь, координатный вывод и прочее типа как в консольных файловых менеджерах Последний раз редактировалось my33oh, 22.01.2013 в 14:46. |