写一个可拖动的 TShape
来源:互联网 发布:比特币闪电网络交易所 编辑:程序博客网 时间:2024/05/19 10:15
interfaceuses 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;interfaceuses 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.
interfaceuses 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;interfaceuses 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.
0 0
- 写一个可拖动的 TShape
- 一个可拖动的ScrollView
- 一个可拖动的View
- 一个可拖动div的例子
- 制作一个可拖动的html对话框
- 一个非常好用的可拖动的jquery弹出层
- 一个自制的可拖动的仿千牛登录窗口
- 可拖动的DIV
- 可拖动的div
- 可拖动的div
- 可拖动的层
- 可拖动的控件
- 可拖动的div
- 可拖动的控件
- 可拖动的层
- 可拖动的圆角遮罩层
- 可拖动的DIV
- 可拖动的DIV
- TTY termios 结构体
- 使用C语言实现“泛型”链表
- 颜色空间表示方式YUV,RGB
- pthread_exit
- 再认识局部静态对象
- 写一个可拖动的 TShape
- 搭建Apache Mina框架并实现Server与Client端的简单消息传递
- 零基础学习JAVA.第七天:面向对象
- gxpt之规范自定义xml配置——xsd显威
- hadoop 笔记
- OCP-1Z0-053-200题-31题-131
- 快排总结
- QT5中如何自定义窗口部件
- 字句解 (易經大意 韓長庚)