![]() |
Re: onClick und onMouseOver benutzen
Oha (ich denke ich habs jetzt kapiert). Die Unterscheidung zwischen Bewegung und Click geht über 2 Flags (oder Boolean-Werte)
Delphi-Quellcode:
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private FOnButtonMove:Boolean; FOnButtonDown:boolean; FButtonX,FButtonY:integer; { Private-Deklarationen } procedure DoButton1Click; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.DoButton1Click; begin //"normale" Click-Methode showmessage('Click'); end; procedure TForm1.FormCreate(Sender: TObject); begin FOnButtonMove:=false; FOnButtonDown:=false; end; procedure TForm1.Button1Click(Sender: TObject); begin if not FOnButtonMove then DoButton1Click; end; procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FOnButtonDown:=true; //oder: "ssshift in shift;" FButtonx:=mouse.CursorPos.x; FButtonY:=mouse.CursorPos.y end; procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin FonButtonDown:=false; FOnButtonMove:=false; end; procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin FOnButtonMove:=FOnButtonDown; if FOnButtonMove then begin Button1.Left:=Button1.Left+mouse.CursorPos.x-FButtonX; Button1.Top:=Button1.top+mouse.CursorPos.y-FButtony; Fbuttonx:=mouse.CursorPos.x; FButtonY:=mouse.CursorPos.y; end; end; |
Re: onClick und onMouseOver benutzen
wie wärs denn wenn du im OnClick überprüfst ob
der button verschoben wurde. wenn ja dann nicht ausführen. gruß |
Re: onClick und onMouseOver benutzen
Besten Dank an alle!
Es ist alles im Lot |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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