Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2010, 07:28
efirvida
 
Fecha de Ingreso: marzo-2009
Mensajes: 39
Antigüedad: 15 años, 1 mes
Puntos: 0
Ayuda con asm en delphi

hola estoy tratando de usar la interrupcion 33h para controlar mi mouse en delphi, me encontre unos ejemplos hechos en pascal que hacian lo que queria, pero al usarlos en delphi me da un error de que no encuentra dos.dcu, como podria solucionar esto aqui les dejo el codigo completo.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, dos;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Memo1: TMemo;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
var
EXISTE_MOUSE : boolean;
R : registers;


function PortIn(Port : Word) : string; stdcall; external 'io32.dll' name 'PortIn';

function Inicializar_mouse : boolean;
begin
R.ax := $00;
intr($33,R);
if (integer(R.ax)=-1) then Inicializar_mouse := true
else Inicializar_mouse := false;
end;

procedure Ocultar_mouse;
begin
R.ax := $02;
intr($33,R);
end;

procedure Mostrar_mouse;
begin
R.ax := $01;
intr($33,R);
end;

procedure Lee_posi_mouse(Var x, y, boton : Word);
begin
R.ax := $03;
intr($33,R);
boton := R.bx;
x := R.cx;
y := R.dx;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inicializar_mouse := true;
Ocultar_mouse;
Lee_posi_mouse;
Label1.Caption := x;
end;
end.