![]() |
Cursor in Mitte
Hallo
Wie kann ich erreichen, dass der Cursor immer in der Mitte der Form bleibt und entsprechend scrollt wenn ich die Maus bewege? gruß 'FALKE |
Re: Cursor in Mitte
HI!
Mich interresiert das auch. So etwas wie in Moorhuhn oder so. Tschau. p.s.Ich hoffe, dass bald mal ein paar Antworten kommen. |
Re: Cursor in Mitte
Das könnt so gehen:
Delphi-Quellcode:
das setself brauchts, da ansonsten durch SetCursorPos das OnMouseMove wieder ausgelöst werden würde, obwohl der benutzer die maus gar nicht bewegt hat. (wär das auch endlosrekursion?)
var
setself: boolean = false; //... procedure Form1.OnMouseMove(...); begin setself := not setself; if setself do begin //Verschieben um x und y (parameter); SetCursorPos(MitteDesForms); end; end; |
Re: Cursor in Mitte
Delphi-Quellcode:
Hab nur keine Ahnung was du scrollen willst - das mit dem scrollen musst du also selber machen!
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin if (X <> Screen.Width div 2)or(Y <> Screen.Height div 2)then begin if Y > Screen.Height div 2 then Memo1.Lines.Add('Scroll Down'); if Y < Screen.Height div 2 then Memo1.Lines.Add('Scroll Up'); SetCursorPos(Screen.Width div 2, Screen.Height div 2); end; end; |
Re: Cursor in Mitte
Zitat:
Das OnMouseMove wird aufgrund des SetCursorPos unendlich lang aufgerufen, auch wenn die Maus nur einmal bewegt wurde. Lösung: Siehe mein Beitrag oben |
Re: Cursor in Mitte
Hast vollkommen recht (böse VCL war Schuld! :mrgreen: )
Muss so aussehen:
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); var P: TPoint; SY, SX: DWORD; begin SX := GetSystemMetrics(SM_CXSCREEN); SY := GetSystemMetrics(SM_CYSCREEN); GetCursorPos(P); if (P.X <> SX div 2)or(P.Y <> SY div 2)then begin if Y > SY div 2 then Memo1.Lines.Add('Scroll Down'); if Y < SY div 2 then Memo1.Lines.Add('Scroll Up'); SetCursorPos(SX div 2, SY div 2); end; end; |
Re: Cursor in Mitte
Danke für die vielen Beiträge, aber ich habe Delphi 3. Da funktioniert fast kein Programm. :oops: .Könnte mir trotzdem jemand bitte Helfen. Ich meine, dass ein Bild im Hintergrund scrollt und der Cursor immer in der Mitte ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz