写一个可拖动的 TShape(简单有效:依靠VCL体系,TShape自己就能被探测到被点击了,然后只要改变Left坐标就行了)
2016-11-03 22:13
477 查看
问题来源: http://www.cnblogs.com/del/archive/2009/03/09/1234066.html#1471535
本例效果图:
自定义类(TMyShape)单元 :
调用测试:
本例效果图:
自定义类(TMyShape)单元 :
unit Unit2; interface uses Classes, Controls, ExtCtrls; type TMyShape = class(TShape) private fMouseFlag: Boolean; fx,fy: Integer; protected procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X: Integer; Y: Integer); override; procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X: Integer; Y: Integer); override; procedure MouseMove(Shift: TShiftState; X: Integer; Y: Integer); override; end; implementation { TMyShape } procedure TMyShape.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; fx := X; fy := Y; fMouseFlag := True; end; procedure TMyShape.MouseMove(Shift: TShiftState; X, Y: Integer); begin inherited; if fMouseFlag then begin Left := Left + X - fx; Top := Top + Y - fy; end; end; procedure TMyShape.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; fMouseFlag := False; end; end.
调用测试:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Unit2; procedure TForm1.Button1Click(Sender: TObject); begin Randomize; with TMyShape.Create(Self) do begin Brush.Color := Random($FFFFFF); Parent := Self; Left := 10; Top := 10; end; end; end.http://www.cnblogs.com/del/archive/2009/03/09/1406811.html
相关文章推荐
- 一个简单的 flex/as3 组件拖动缩放类(拖动改变位置,缩放大小)
- 自定义控件FlexibleListView,一个简单的改善就能解放用户在浏览时的有效可视面积
- 一个简单有效的用鼠标选中物品并拖动物品的方法
- 一句话改变TWinControl控件的left坐标的前世今生(入口函数是SetBounds,然后调用SetWindowPos起作用,并发消息更新Delphi的left属性值)
- 简单实现验证码随机数(其实原理很简单就是一堆图片,然后点击随机改变图片的src属性)
- JavaScript,自己动手做了一个简单的鼠标拖动的实例
- 自定义控件FlexibleListView,一个简单的改善就能解放用户在浏览时的有效可视面积
- 自己动手搞一个拖动滑块,点击水波纹效果
- 自己动手搞一个拖动滑块,点击水波纹效果
- 我终于变成了一个喜欢自己的姑娘(有效地改变自己)
- 将十进制整形数转换成二进制,然后通过字符型输出 自己实现的一个简单的例子
- 实现在自己的程序中点击一个按钮,然后弹出系统自带的联系人
- QTabWiget Change Color 改变颜色(每个QWidget都有一个自己的调色板palette,设置它的颜色,然后setAutoFillBackground即可)
- 自己设计的一个简单高速加密算法
- 一个键盘、一根网线就能让之改变整个网络世界
- 页面有一个DIV 我想点击 DIV 然后把DIV的ID传给后台的一个函数
- 自己写的一个简单ASP调用存储过程查询
- 送大家一个礼物:破解网通下挂限制(已测试,简单有效)
- ::自己写的一个超简单的ASP分页代码::
- 自己动手编写一个简单的U盘杀毒程序