![]() |
Cursor bei onMouseDown ändern
Hallo,
wie kann ich den Cursor auf einem Panel bei onMouseDown ändern? Ich habe schon Form.cursor, Panel.cursor und Cursor := crSizeAll probiert, aber er ändert sich nicht. Danke, ManuMF |
Re: Cursor bei onMouseDown ändern
Delphi-Quellcode:
Gruß DBR
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin Panel1.cursor := crHourGlass; ReleaseCapture; end; |
Re: Cursor bei onMouseDown ändern
Danke, das funktioniert. Nur habe ich jetzt ein anderes Problem:
Delphi-Quellcode:
Ich nutze diesen Code, um das Formular ausgehend von dem Panel zu verschieben. Mit ReleaseCapture bleibt das Formular "stecken", sobald ich die Maus ein bisschen schneller bewege.
procedure TForm.PanelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin FFormMoving := True; FMoveStartPos := Point(X, Y); Panel.Cursor := crSizeAll; ReleaseCapture; end; end; procedure TForm.PanelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if FFormMoving then SetWindowPos(Handle, 0, Left + (X - FMoveStartPos.X), Top + (Y - FMoveStartPos.Y), 0, 0, SWP_NOSIZE or SWP_NOZORDER); end; procedure TForm.PanelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin FFormMoving := False; Panel.Cursor := crCross; ReleaseCapture; end; end; Kennt jemand eine Lösung für beide Probleme? |
Re: Cursor bei onMouseDown ändern
Delphi-Quellcode:
Gruß DBR
const
FFormMoving: boolean = false; var FMoveStartPos: TPoint; procedure TForm1.FormCreate(Sender: TObject); begin Panel.Cursor := crCross; end; procedure TForm1.PanelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin FFormMoving := True; FMoveStartPos := Point(X, Y); Panel.Cursor := crSizeAll; ReleaseCapture; Application.processmessages; SetCapture(Panel.handle); end; end; procedure TForm1.PanelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if FFormMoving then SetBounds(Left - (FMoveStartPos.x - x), Top - (FMoveStartPos.y - y), Width, Height); end; procedure TForm1.PanelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin FFormMoving := False; Panel.Cursor := crCross; end; end; |
Re: Cursor bei onMouseDown ändern
Super, funktioniert! :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 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