如题!
解决方案 »
- 大虾们,有谁有SOCKET方面的代码
- 100分求教:进销存中如何处理退货?
- Web Services与Web server applications区别?
- 如何使显示的窗体呈不激活状态???
- 关于Rave报表...的简单问题
- 急问一个关于字符串的小问题
- 谁可以给我推荐一个3方界面的控件吗
- 我爱delphi~~!!delphi很适合作绿色软件么?
- 使用OleContainer连结Word以后,如何用程序自动添加页眉页脚
- 都可能遇到的常见难题,若您知道,敬请告诉我,您不知道,近来看看高手怎么说...
- 请问DELPHI内如何批量修改SpeedButton的Groupindex
- 知道窗口句柄如何知道文件名?
NewSpeedButton: TSpeedButton;
OldPoint: TPoint;procedure TForm1.SpeedButton1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
OldPoint := Point(X, Y);
NewSpeedButton := TSpeedButton.Create(Self);
NewSpeedButton.Parent := TSpeedButton(Sender).Parent;
NewSpeedButton.BoundsRect := TSpeedButton(Sender).BoundsRect;
end;procedure TForm1.SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if (ssLeft in Shift) and Assigned(NewSpeedButton) then
begin
NewSpeedButton.Left := TSpeedButton(Sender).Left + X - OldPoint.X;
NewSpeedButton.Top := TSpeedButton(Sender).Top + Y - OldPoint.Y;
end;
end;procedure TForm1.SpeedButton1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Assigned(NewSpeedButton) and
(X = OldPoint.X) and (Y = OldPoint.Y) then // 没有发生变化
NewSpeedButton.Free;
NewSpeedButton := nil;
end