Nie wiem, może coś robię źle, ale w FPC po przekompilowaniu nie reaguje klawiatura.
Za to problem z paskami chyba rozwiązany, ale nie mam pewności.
Wersja to i386-win32.
Mam tak:
procedure button(x,y,color:word;text:string;id:byte);
begin
rect(x,y,x+192,y+32,color);
setcolor(white);
outtextxy(x+32,y+12,text);
bx[id]:=192;
by[id]:=32; {//w sumie, nie wiem, po co te tablice, ale do czegoś mi służyły}
end;
procedure act(id:byte);
begin b[id]:=40; abut:=id; end;
procedure deact(id:byte);
begin b[id]:=0; end;
procedure limit(ldn,lup:integer);
begin limitu:=lup; limitd:=ldn; end;
procedure menucase(a,b:byte);
begin limit(a,b); key:=readkey; deact(abut);
if key=#72 then abut:=abut-1; {//po wciśnięciu strzałki zmienia nr aktywowanego przycisku}
if key=#80 then abut:=abut+1;
if abut<a then abut:=b; {//jeśli użytkownik wciśnie strzałkę przy aktywowanym przycisku skrajnym}
if abut>b then abut:=a;
act(abut); {//aktywuje przycisk o numerze abut}
end;
procedure menu;
begin
repeat
cleardevice;
button(b[1]+60,40,lightgray,'START',1);
button(b[2]+60,80,lightgray,'OPCJE',2);
button(b[3]+60,120,lightgray,'WYJSCIE',3);
menucase(1,3);
until key=#13; {//enter}
end;
Sory, jeśli przyprawiłem o palpitację/zawał, ale przywykłem, że robię rzeczy po swojemu. Bardzo wielka tragedia z tym kodem?
W każdym razie w TP wybór menu działał, ale w FPC już nie reaguje na #72, #80 i Entera.
(edit)
Edit: być może FPC założył obsługę klawiatury na konsolę, a Ty próbujesz przy sfocusowanym oknie?
Kurde... ale ja głupi... rzeczywiście...
Uruchamiają się dwa okienka: jedno konsolowe, drugie graficzne; w graficznym nic się nie da zrobić, natomiast gdy wcisnę Enter w konsoli, wychodzi z pętli w
procedure menu;
Powiesz mi jeszcze, jak to zmienić? ;D
(edit2)
W porządku, dziwne szare paski zniknęły, ta część problemów rozwiązana.