Hmm først vil jeg lige sige at jeg mener der er en fejl i koden.. Men hvis den virker ved dig er det jo fint nok. Men jeg mener altså at
DiffX, DiffY: string;
skulle have været
DiffX, DiffY: integer;
og hvis det er rigtigt skal du fjerne "erne uden om +15, -15 og +0 og fjerne alle StrToInt i den sidste linie.
Men her er en lille forklaring til koden: (Håber du forstår den ellers må du jo lige spørge
)
[p]
procedure TForm1.Timer1Timer(Sender: TObject); // Denne linie viser at når Timer1 udløber udføres koden mellem begin og end (hvis den er sat til 1000 udføres koden mellem begin og end hvert sekund).
var //Herunder deklareres alle strings, integers og lignende.
Position: Tpoint; //Position.X ,Position.Y. Position er navnet på den TPoint der skal bruges. TPoint er et sted hvor du kan gemme noget input. I en TPoint kan gemmes en x og y værdi på samme måde som der kan gemmes tekst i en string, tal i en integer osv.
PosTempX,PosTempY:integer; //Temp Pos.. Laver 2 integers der kan gemmes tal i med navnene PosTempX og PosTempY.
DiffX,DiffY:string; // Set to Diff Value.. Laver 2 integers der kan gemmes tekst i.
begin //Her begynder den kode der skal udføres.
GetCursorPos(Position); //GetCursorPos er en funktion der henter Cursorens position på skærmen (Position) viser hvad cursorens position skal gemmes i. Altså kommer Position til at indeholde cursorens kordinater på skærmen.
if Position.x {Nu er musens position gemt i Position og her kaldes dens X kordinat så.}<>PosTempX {her tjekkes om cursorens "nygemte" X position er større eller mindre end den der før var gemt. På den måde kan man tjekke om musen har flyttet sig eller om den er det samme sted som før} then PosTempX := Position.x; {her skrives så det der skal ske hvis musen har flytter sig, i dette tilfælde skal PosTempX opdateres til den nye position som er gemt i Position.}
if Position.y<>PosTempY then PosTempY := Position.y; // Her udføres det samme bare med cursorens Y kordinat istedet.
repeat //Denne linie viser hvad der skal gentages.
//Det der skal gentages skal stå imellem repeat og until.
GetCursorPos(Position); //Dette gør at Position bliver opdateret med musens nye kordinater.
until (Position.x<>PosTempX) or (Position.y<>PosTempY); //Denne linie viser hvor længe den skal gentages. I dette tilfælde skal den gantages indtil cursorens x eller y værdi ændrer sig (altså indtil musen flytter sig).
if Position.x>PosTempX {Dette tjekker den gemte X kordinat (gemt i Position) er større end den der er gemt i PosTempX (altså hvis musen har flyttet sig nedad på skærmen)} then DiffX:='-15'; {dette gør at hvis det den tjekkede før var rigtigt (hvis musen havde flyttet sig nedad) skal der trækkes 15 fra stringen DiffX.}
if Position.x<PosTempX {Dette tjekker så om musen har flyttet sig opad istedet og ligger 15 til DiffX istedet} then DiffX:='+15';
if Position.x=PosTempX {Denne tjekker om musen slet ikke har flytte sig og hvis den ikke har det skal der selvfølgelig ikke lægges noget til.} then DiffX:='+0'; //+0;
//Følgende gør fuldstændig det samme bare med cursorens Y kordinater istedet.
if Position.y>PosTempY then DiffY:='-15'; //-15..
if Position.y<PosTempY then DiffY:='+15'; //+15..
if Position.y=PosTempY then DiffY:='+0'; //+0; //Do nothing..
//den følgende linie sætter cursorens position på skærmen til: den gemte X kordiant i Position + det gemte i DiffX og bagefter gør den det samme med Y Kordinaterne.
SetCursorPos(Position.x+strtoint(DiffX),Position.y+strtoint(DiffY));
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
//Change Mouse Button Left To Right
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 1, NIL, 0); //Denne linie bruger enkelt nok en funtion der bytter om på museknappernes tryk.
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Change Back to Mouse to Normal
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 0, NIL, 0);
end;
end.
[/p]
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------