C
ChH
Hallo!
Ich habe einen Quellcode bekommen, um die Maus abzufragen...
Dummerweise kann ich annaehernd gar kein Delphi...
kann mir das hier jemand in C umsetzen?
Thx schonmal,
ChH / Lin Li
[edit] Das Programm ist fuer einen Roboter, der seine Bewegungen abtasten soll!!! Ich benutze dafuer zwar das Board einer Maus, habe aber keine Windows-Schnittstellen sondern kann nur diesen direkten Weg gehen !!!!! [/edit]
Ich habe einen Quellcode bekommen, um die Maus abzufragen...
Dummerweise kann ich annaehernd gar kein Delphi...
kann mir das hier jemand in C umsetzen?
Thx schonmal,
ChH / Lin Li
[edit] Das Programm ist fuer einen Roboter, der seine Bewegungen abtasten soll!!! Ich benutze dafuer zwar das Board einer Maus, habe aber keine Windows-Schnittstellen sondern kann nur diesen direkten Weg gehen !!!!! [/edit]
Code:
unit Maus;
interface
uses PORTINC,
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
dx: TLabel;
x: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
end;
var
Form1: TForm1;
Din, Xges, Yges: Integer;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenCom(pchar('com2:1200,N,8,2'));
Timer1.Interval := 100;
Timer1.Enabled := true;
RTS(1); {Stromversorgung}
Xges:=0; Yges:=0;
Din := ReadByte; {1.Byte verwerfen}
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var b1,b2,b3,x,y,li,re: Integer;
begin
B1 := ReadByte;
if B1=-1 then exit;
Edit1.Text := FloatToStr(B1);
B2 := ReadByte;
Edit2.Text := FloatToStr(B2);
B3 := ReadByte;
Edit3.Text := FloatToStr(B2);
x:= B2 And 63+64*(B1 and 3);
if x> 128 then x:=x-256;
y:= B3 And 63+16*(B1 and 12);
if y> 128 then y:=y-256;
Edit4.Text := FloatToStr(x);
Edit5.Text := FloatToStr(y);
li := (B1 and 32) div 32;
re := (B1 and 16) div 16;
Edit6.Text := FloatToStr(li);
Edit7.Text := FloatToStr(re);
Xges:=Xges+x;
Yges:=Yges+y;
Edit8.Text := FloatToStr(Xges);
Edit9.Text := FloatToStr(Yges);
end;
end.