社区
Delphi
帖子详情
怎么实现组件大小和位置的自由拖放呢?
whitetiger8
2003-10-15 07:24:59
如题了。
...全文
39
8
打赏
收藏
怎么实现组件大小和位置的自由拖放呢?
如题了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whitetiger8
2003-10-20
打赏
举报
回复
这样啊。多谢了。给分
pankun
2003-10-19
打赏
举报
回复
ReleaseCapture是释放鼠标捕获,
WinControl.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);是向WinControl这个控件发消息.用SendMessage(WinControl.Handle, WM_SYSCOMMAND, SC_MANIPULATE, 0)也一样.
$F001,$F002等的消息也是平常看文章知道的哈...
whitetiger8
2003-10-19
打赏
举报
回复
pankun(剑神一笑)太神奇了。不过我看不太懂。请问ReleaseCapture; WinControl.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);这两句是什么意思?
您怎么知道$F001,$F002的意思啊?真是学习。我对消息不太熟!
whitetiger8
2003-10-16
打赏
举报
回复
是么,我试试啊。多谢了。
jiyongqiang
2003-10-15
打赏
举报
回复
pankun 真厉害!
pankun
2003-10-15
打赏
举报
回复
转篇贴子你参考一下
//==============================================================================
//任意摆布一个控件(拖动、放大、缩小)******************************************
//==============================================================================
procedure ManipulateControl(WinControl: TWinControl; Shift: TShiftState; X, Y, Precision: integer);//Precision:精度,该方法可以在onmousemove中调用
var SC_MANIPULATE: Word;
begin
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最左侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (X<=Precision) and (Y>Precision) and (Y<WinControl.Height-Precision)
then begin
SC_MANIPULATE := $F001;
WinControl.Cursor := crSizeWE;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最右侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X>=WinControl.Width-Precision) and (Y>Precision) and (Y<WinControl.Height-Precision)
then begin
SC_MANIPULATE := $F002;
WinControl.Cursor := crSizeWE;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最上侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X>Precision) and (X<WinControl.Width-Precision) and (Y<=Precision)
then begin
SC_MANIPULATE := $F003;
WinControl.Cursor := crSizeNS;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的左上角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X<=Precision) and (Y<=Precision)
then begin
SC_MANIPULATE := $F004;
WinControl.Cursor := crSizeNWSE;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的右上角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X>=WinControl.Width-Precision) and (Y<=Precision)
then begin
SC_MANIPULATE := $F005;
WinControl.Cursor := crSizeNESW ;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最下侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X>Precision) and (X<WinControl.Width-Precision) and (Y>=WinControl.Height-Precision)
then begin
SC_MANIPULATE := $F006;
WinControl.Cursor := crSizeNS;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的左下角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X<=Precision) and (Y>=WinControl.Height-Precision)
then begin
SC_MANIPULATE := $F007;
WinControl.Cursor := crSizeNESW;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的右下角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X>=WinControl.Width-Precision) and (Y>=WinControl.Height-Precision)
then begin
SC_MANIPULATE := $F008;
WinControl.Cursor := crSizeNWSE;
end
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的客户区(移动整个控件)******************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if (X>5) and (Y>5) and (X<WinControl.Width-5) and (Y<WinControl.Height-5)
then begin
SC_MANIPULATE := $F009;
WinControl.Cursor := crSizeAll;
end
else begin
SC_MANIPULATE := $F000;
WinControl.Cursor := crDefault;
end;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if Shift=[ssLeft] then
begin
ReleaseCapture;
WinControl.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
end;
end;
调用例子:
procedure TForm_Main.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Caption := IntToStr(X) + '/' + IntToStr(Y);
ManipulateControl((Sender as TWinControl), Shift, X, Y, 10);
end;
47522341
2003-10-15
打赏
举报
回复
up
huojiehai
2003-10-15
打赏
举报
回复
在Google上搜索一下,有个控件放到界面上就可以拖了,很简单的!
http://vbeden.xg88.com/learner/secondary/list/page2.htm#bm3
http://www.ahetc.gov.cn/cit/200011/20.doc
易语言窗口自动缩放模块(源码+示例)
JimStone(谢栋)窗口自动缩放模块(源码+示例):STFormResizer。 能够自动根据要求缩放窗口内的控件,使用很简单很强大。 STFormResizer 对象核心方法:。 Initlize(主窗口窗口句柄):初始化,通常用于 _窗口创建完毕下调用。 AddCtrl(控件句柄):添加控件和缩放规则。 Update():更新
位置
。通常用于 _窗口_尺寸被改变 事件下调用这个方法。 模块源码和示例见附件。 @神2。
gride-layout:基于vue的可视化动态更改网格尺寸可拖拽,可动态改变
大小
,网格布局和
自由
布局(vue-gride-layoutdnd-gride)
静止的 一个Vue.js项目 构建设置 # install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production with minification npm run build # build for production and view the bundle analyzer report npm run build --report 有关工作原理的详细说明,请查看的和。
HTML5网页设计和制作(5-10):多媒体/Canvas/Web存储/
拖放
操作/新增API
HTML5 是定义 HTML 标准的最新的版本。它是一个新版本的HTML语言,具有新的元素,属性和行为;它有更大的技术集,允许构建更多样化和更强大的网站和应用程序。这个集合有时称为HTML5和它的朋友们,不过大多数时候仅缩写为一个词 HTML5。
free-transform-example:如何在 Ember 中
实现
自由
变换。 查看各个阶段的分支
使用 Ember.js 进行
自由
转换 观看 EmberNYC 的演讲以了解上下文:() 这是对如何在 Ember 中构建
自由
变换
组件
的探索,分为四个部分:
拖放
运动: 通过角手柄调整
大小
: 多选: 边缘指南: 无耻的插头 您想在 Movable Ink 与我们一起构建这样的东西吗? ! 先决条件 您将需要在您的计算机上正确安装以下东西。 (带有 NPM) 安装 git clone git://github.com/movableink/free-transform-example 切换到新目录 npm install bower install 运行/开发 ember server 在http://localhost:4200访问您的应用程序。 例子 每个示例都在其自己的分支中。 ( master包含所有代码)因此,如果您想查看进度,可以git checkout ex
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章