Witam.
Chciałbym Was zapytać jak sprawdzićw delphi czy np strzałka w dół i prawo jest wcisnieta.
Tylko nie przez onkeydown tylko w aplikacji konsolowej
Pozdrawiam :)
0
0
Kody klawiszy:
Strzałka w górę: #72
Strzałka na dół: #80
Strzałka w prawo: #77
Strzałka w lewo: #75
Możesz także sprawdzić inne kody klawiszy tym prostym programem:
program chrcode;
uses crt;
var
z:char;
begin
clrscr;
repeat
z:=Readkey;
z:=Readkey;
writeln(z,' ',ord(z));
until z=#27;
end.
A jeśli chodzi o wciśnięcie dwóch klawiszy i są to właśnie strzałki to sprawa jest skomplikowana, ale da się z niej wyjść. Otóż kombinacja dwóch klawiszy (oprócz Shift, Control oraz Alt) to po prostu wprowadzenie dwóch znaków. Teraz sprawa jest prosta:)
program check_key;
uses crt;
var
z,s:char;
begin
clrscr;
repeat
s:=Readkey;
s:=Readkey;
z:=Readkey;
z:=Readkey;
if (z=#72) and (s=#80)
or (z=#80) and (s=#72) then
begin
writeln('Nacisnales Strzalki: Gora i Dol!');
end;
until z=#13;
end.
Oczywiście, że trzeba się napisać, ale ja tu innego wyjścia nie widze, może dlatego że nie chce mi się myśleć?
0
{$APPTYPE CONSOLE}
uses Windows;
function IsKeyPressed(vKey:integer):boolean;
begin
result:=(GetAsyncKeyState(vKey) and $8000>0);
end;
begin
WriteLn('[ESCAPE] - zakonczenie');
WriteLn('[->]+[/\] - wypisanie *');
WriteLn('[<-]+[\/] - wypisanie .');
WriteLn('');
repeat
if (IsKeyPressed(VK_UP) and IsKeyPressed(VK_RIGHT)) then
Write('*');
if (IsKeyPressed(VK_DOWN) and IsKeyPressed(VK_LEFT)) then
Write('.');
Sleep(50);
until IsKeyPressed(VK_ESCAPE);
end.