1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
procedure show_cursor; begin regs.AX := $01; Intr ($33, regs); end;
procedure hide_cursor; begin regs.AX := $02; Intr ($33, regs); end;
procedure get_mouse_status (var button: byte; var x,y: word); begin regs.AX := $03; Intr($33, regs); with regs do begin button := BL; x := CX; y := DX; end; end;
procedure get_mouse_button_press (var button: byte; var count,x,y: word); begin regs.AX := $05; regs.BL := button; Intr ($33, regs); with regs do begin button := AL; count := BX; x := CX; y := DX; end; end;
function double_click (timeout: word): boolean; var k,x,y : word; button : byte; begin double_click := false;
repeat get_mouse_status (button,x,y); until button = 0;
repeat get_mouse_status (button,x,y); until button = 1;
repeat get_mouse_status (button,x,y); until button = 0;
k:=0;
repeat delay (1); inc (K); get_mouse_status (button,x,y); until (button = 1) or (k = timeout);
if k = timeout then Exit;
repeat delay (1); inc(K); get_mouse_status (button,x,y); until (button = 0) or (k = timeout);