PDA

View Full Version : [Q] ascii trong đồ họa pascal



namtuocbongtoi
08-11-2002, 19:06
khi trong chế độ đồ họa thì chương trình không đọc được :
i:=readkey;
if i=chr(80){phím mũi tên}then.........;
tại sao vậy
nếu muốn khi nhấn phím mũi tên thì chương trình thực hiện lệnh thì làm sao?

ngoccong2001
08-11-2002, 19:42
có thể máy bạn chưa sửa lỗi 200 không?. Mình thì vẫn chạy được

namtuocbongtoi
08-11-2002, 19:44
đó là lỗi gì vậy

Zero
11-11-2002, 14:18
Lỗi 200 là lỗi mà khi chạy chương trình thì báo lỗi run time error 200 : division by zero.

Bạn có thể nói cụ thể hơn không ? có phải bạn chạy chương trình và ẫn mãi phím mũi tên mà nó không hoạt động? có thể luc đó ct chưa chạy đến đoạn đó bạn thử F4 vào chố đó coi.

khoinguyen2n
11-11-2002, 20:34
Nếu bạn nhận phím trong PAS mà làm như vậy thì không ổn rồi. Có nhiều cách để nhận phím chuẩn trong PAS. Có thể dùng các ngắt về bàn phím(nếu bạn thạo ngắt thì đây là cách tốt nhất). Còn không thì có thể dùng cách khác. Bạn có thể dùng hàm
PressdKey trả về đúng nếu có tác động phím và ngược lại.Nếu đúng thì hãy sử dụng Readkey. Nếu phím nhận được làm phím chức năng thì hàm Readkey trả về mã không vì vậy bạn phải sử dụng hàm Readkey một lần nữa nếu gặp phải trường hợp này.

VD:
procedure batphim(var ch:char)
begin
ch=#0;
if PressdKey then
begin
ch:=readkey;
if(ch=#0)then ch:=readkey;
end;
end;

procedure main;
var ch:char;
begin
while(true)do
{
batphim(ch);
if(ch=#80)then
begin
.....
end;
}
end;


Chúc thành công. Chắc chắn thành công.

namtuocbongtoi
13-11-2002, 10:41
cảm ơn bạn.mình sẽ thử

Nguyen Tat Thang
19-05-2008, 15:10
<sao phải vất vả thế làm gì chứ
chỉ cần như thế này thôi
begin
if ReadKey=#80 then
begin
....
end.
Thế là pascal đã nhận diện được phím mũi tên đó rồi
Không tin thì chạy thử xem>

vuonglnc
17-06-2014, 00:26
Mình dùng freepascal thấy việc nhận phím là không được trong chế độ đồ họa. Khi chạy đồ họa nó chẳng nhận phím nào cả. hic