Pascal/Turbo Pascal - Usar tecla ratón en pascal

   
Vista:

Usar tecla ratón en pascal

Publicado por carlos (1 intervención) el 24/01/2012 21:19:09
Buenas, pues tengo una pregunta, como podría usar la tecla derecha o izquierda del ratón en un código en pascal, es decir que el código en vez de esperar un ENTER espere un clic ?¿?

He mirado en google, vi una clase pero no esta implementada.

Muchas gracias y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Usar tecla ratón en pascal

Publicado por micropais (209 intervenciones) el 25/01/2012 11:37:01
hola carlos.
mira en este mismo foro , usa la ventanita de busqueda y escribe por ejemplo:

get_button_press_information
unidad UMOUSE
o simplemente mouse ó raton

En Free-pascal tiene su propia libreria para el raton , aunque tambien acepta librerias caseras
en TP no tiene libreria de borland pero hay buscando en google , tambien te puedes hacer tu libreria propia llamando a la INT-errupcion del RATON num :INT 33 HEX , para ello hay varias formas de invocarla usando los registros de TREGISTERS de la unidad windos , o usando llamadas en ensamblador asm desde pascal , las dos formas estan descritas en este foro , y creo que algunas mas .

si buscas "get_button_press_information" te enviará directamente a una rutina mia que se podria haber llamado de cualquier otra forma , te recuerdo que bajo windows solo funciona 2 botones y no 3 , aunque con dos son suficientes para la mayoria de las aplicaciones , cada boton tiene un "peso" y la pulsacion de dos teclas es la suma de ellos , revisa el codigo despacito , está bien explicado , ademas de una UNIT tambien hay un ejemplo de como se usa la unidad , espero que te sirva . y que te hagas tu propia rutina de raton , pues faltan muchas funciones que se pueden añadir usando mas informacion ( google ) sobre los servicios de la INT 33hex.

SALUDOS de ^MICROPAIS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Usar tecla ratón en pascal

Publicado por ramon (2072 intervenciones) el 25/01/2012 20:24:15
{A qui tienes un pequeño ejemplo de manejo del ratón en texto en pascal}

uses
crt, dos;

var
regs : registers;
raton : boolean;
x, y : word;

function raton_presente : boolean;
begin
regs.ah := $00;
regs.al := $00;
intr($33,regs);
if regs.ax <> 0 then
raton_presente := true
else
raton_presente := false;
end;
procedure muestra_raton;
begin
raton := false;
if raton_presente then
begin
regs.ah := $00;
regs.al := $01;
intr($33,regs);
raton := true;
end;
end;
procedure oculta_raton;
begin
if raton = true then
begin
regs.ah := $00;
regs.al := $02;
intr($33,regs);
raton := false;
end;
end;
function posx_raton : word;
begin
posx_raton := 0;
regs.ah := $00;
regs.al := $03;
intr($33,regs);
posx_raton := regs.cx div 8 + 1;
end;
function posy_raton : word;
begin
posy_raton := 0;
regs.ah := $00;
regs.al := $03;
intr($33,regs);
posy_raton := regs.dx div 8 + 1;
end;
function boton_raton : word;
begin
boton_raton := 0;
regs.ah := $00;
regs.al := $03;
intr($33,regs);
boton_raton := regs.bx;
end;

begin
clrscr;
if raton_presente = true then
begin
muestra_raton;
x := posx_raton;
y := posy_raton;
repeat
gotoxy(4,3);write('Pasicion X : ',x);
gotoxy(4,4);write('Pasicion Y : ',y);
if (x <> posx_raton) or (y <> posy_raton) then
begin
gotoxy(4,3);write(' ');
gotoxy(4,4);write(' ');
x := posx_raton;
y := posy_raton;
end;
until boton_raton = 1;
{1 = boton raton izquierdo}
{2 = boton raton derecho}

oculta_raton;
end;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar