当前位置:主页>销售管理软件> 列表

怎样在程序运行时,用鼠标移动一个按钮的位置 找进销存需求描述

库存管理软件版1楼: 怎样在程序运行时,用鼠标移动一个按钮的位置

2楼: 先找到这个按钮的位置
然后
用SetCursorPos(X,Y);
来把鼠标移动到那里 如进销存需求描述

3楼: 实现动态控制控件的位置思路:首先要得到控件句柄,之后对该摈的座标进行操作.

4楼: 我随便做了个例子,看看是不是你想要的。
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }


public
{ Public declarations }
end;

var
Form1: TForm1;
bMouseDown: boolean;
bMouseClick: Boolean;
MousePointX: Integer;
MousePointY: Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bMouseDown := True ;
MousePointX := X;
MousePointY := Y;
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if bMouseDown then
begin
Button1.Left := Button1.Left + X - MousePointX;
Button1.Top := Button1.Top + Y - MousePointY;
if Abs(X - MousePointX + Y - MousePointY) > 2 then
bMouseClick := True;
end;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bMouseDown := False
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

if not bMouseClick then
ShowMessage(''OK'');
bMouseClick := False;
end;

end.

5楼: MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button <> mbRight then
begin
ReleaseCapture;
控件名.Perform(WM_SysCommand, $f017, 0);
end;
end;

6楼: 多人接受答案了。