Tin học [Lớp 11] Chuột trong pascal

Ngô Trọng Nhân

Học sinh mới
Thành viên
1 Tháng mười 2017
22
4
6
20
Bà Rịa - Vũng Tàu

trà nguyễn hữu nghĩa

Cựu Mod Vật Lí |Cây bút Thơ|Thần tượng VH
Thành viên
14 Tháng năm 2017
3,974
7,623
744
22
Phú Yên
Trường THPT Lương Văn Chánh
Ai đó chỉ em về sự kiện click chuột trong pascal cũng như những sự kiện khác về chuột trong pascal có được không ạ ? Em lên mạng tra nhưng code của nó toàn lỗi không à. Em cám ơn nhiều!
Mình có vài đoạn code cop được trên mạng, dù không biết nguyên lí nhưng bạn có thể dùng nó.
Phải khai báo thư viện Dos trước nha bạn
Mã:
function mousex:word;assembler;asm {Lấy vị trí x chuột}
 mov ax,3; int 33h; mov ax,cx end;

 function mousey:word;assembler;asm {Lấy vị trí y chuột}
 mov ax,3; int 33h; mov ax,dx end;

 function leftclick:boolean;assembler;asm
 mov ax,3; int 33h; and bx,1; mov ax,bx end;

 function rightclick:boolean;assembler;asm
 mov ax,3; int 33h; and bx,2; mov ax,bx end;

 Function InitMouse : boolean;
 var r: registers;
 Begin
 r.ax:=$00;intr($33,r);
 if r.ax<>0 then InitMouse:=true
 else InitMouse:=false;
 End;

 Procedure ShowMouse; (Dùng để hiện con trỏ chuột)
 Var r: registers;
 begin
 r.ax:=$01;intr($33,r);
 End;

 Procedure HideMouse; {Dùng để ẩn con trỏ chuột}
 Var r:registers;
 Begin
 r.ax:=$002;
 intr($33,r);
 End;

Đầu tiên bạn phải khởi tạo InitMouse, rồi ShowMouse thì sẽ dùng được nha.
Còn một hàm rất có ích nữa, dùng để kiểm tra vị trí click chuột:
Mã:
function mousearea(x1,x2,y1,y2:word):boolean;
 begin
 if        (leftclick)
      and (mousex div 8+1>=x1)
      and (mousex div 8+1<=x2)
      and (mousey div 8+1>=y1)
      and (mousey div 8+1<=y2)
 then mousearea:=true
 else mousearea:=false;
 end;
 

VuioTechnologies

Học sinh
Thành viên
23 Tháng một 2018
19
19
39
23
Đồng Nai
THPT Vĩnh Cửu
Lâu rồi chưa đụng đến Pascal.
Nhưng mình có lời khuyên là cẩn thận khi dùng ngắt chuột, dùng không khéo chạy ứng dụng 100% CPU như chơi.
 

Tạ Đặng Vĩnh Phúc

Cựu Trưởng nhóm Toán
Thành viên
10 Tháng mười một 2013
1,559
2,715
386
25
Cần Thơ
Đại học Cần Thơ
Mình nghĩ ko có chuyện sử dụng ngắt cứng làm cho ứng dụng chiếm full CPU (trừ khi bạn gọi liên tục trong một luồng khác mà nằm ngoài khả năng của DOS)
 

VuioTechnologies

Học sinh
Thành viên
23 Tháng một 2018
19
19
39
23
Đồng Nai
THPT Vĩnh Cửu
Mình nghĩ ko có chuyện sử dụng ngắt cứng làm cho ứng dụng chiếm full CPU (trừ khi bạn gọi liên tục trong một luồng khác mà nằm ngoài khả năng của DOS)
Không khéo sử dụng mới chiếm CPU thôi.
Mới đây có bạn nào trên Facebook chia sẻ một game gì đó dùng chuột, chạy lag gần 100% CPU ...
 
Top Bottom