How to make a TButton flee from the mouse cursor (Views: 718)
Problem/Question/Abstract: As a joke, I am trying to have a button on a form move around the form to avoid the mouse pointer. I was trying to use the OnMouseMove event of the form to accomplish this, but have not had any success. Does anybody know a quick way of doing this? Answer: procedure TMainForm.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var NewPoint: TPoint; begin Randomize; NewPoint.X := X; NewPoint.Y := Y; repeat NewPoint.X := NewPoint.X + Random((Sender as TButton).Width div 2); NewPoint.Y := NewPoint.Y + Random((Sender as TButton).Height div 2); until PtInRect(ClientRect, NewPoint) and not PtInRect((Sender as TButton).ClientRect, NewPoint); (Sender as TButton).Left := NewPoint.X; (Sender as TButton).Top := NewPoint.Y; end; |