无边界窗体的移动 如何用Delphi实现无边界窗体的移动 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一、在窗体的OnMouseUp里记录当前鼠标指针的位置。二、在窗体的OnMouseMove事件里写代码,判断当前指针位置与之前的位置发生的变化,然后修改窗体的Top,Left值。我之前在VFP里写过。但在DELPHI里没有写过。所以没有代码给你参考。对不起。 在 private 部分加入下列代码 :procedure wmnchittest(var msg:twmnchittest);message wm_nchittest;在程序部分加入以下代码 :procedure TForm1.wmnchittest(var msg:twmnchittest);begininherited;if (htclient=msg.result) then msg.result:=htcaption;end; 帮人帮到底,临时写了一段代码贴出来,希望能帮上忙。在fMX, fMYprocedure TMainForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin IF ssLeft In Shift Then begin Left:= X - (fMX - Left); Top:= Y - (fMY - Top); end;end;procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin fMX:= X; fMY:= Y;end; 对消息WM_NCHITTEST进行处理当然是最标准的做法,哪种利用MouseUp,MouseMove,MouseDown事件进行处理没处理好会产生很多BUG!当然还要通过Msg.xPos,Msg.yPos判断标题栏目范围,还有如何产生缩放效果,也是处理该消息,只是根据Msg.xPos,Msg.yPos把以前的Result改为其它的!具体应查询MSDN procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin ReleaseCapture; Perform(WM_SYSCOMMAND,$f012,0);end; 关于创建线程的问题 为什么我的delphi报表在运行时窗体上不显示caption内容 急购一中学教务管理系统和图书管理系统 Loading......简单的问题>>>>>>>>>>>>>>=> 如何将一个数据库中的某个表中的数据拷贝到另一个数据库中的某个表? 提问没人回答也扣分吗? 大讨论:怎样做一个不用服务器,而可以直接连接两台在INTERNET上无固定IP的机器并互相通讯的软件? 高兴,放分!!!!!!!!!!!!进来的前10人有分。 C++Builder及VC中如何使用Delphi的Dll 救命呀!我要死了!:( 大家看看这个问题怎么解决 关于插入的sql语句问题
二、在窗体的OnMouseMove事件里写代码,判断当前指针位置与之前的位置发生的变化,然后修改窗体的Top,Left值。我之前在VFP里写过。但在DELPHI里没有写过。所以没有代码给你参考。对不起。
procedure wmnchittest(var msg:twmnchittest);message wm_nchittest;在程序部分加入以下代码 :
procedure TForm1.wmnchittest(var msg:twmnchittest);
begin
inherited;
if (htclient=msg.result) then msg.result:=htcaption;
end;
在fMX, fMY
procedure TMainForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
IF ssLeft In Shift Then begin
Left:= X - (fMX - Left);
Top:= Y - (fMY - Top);
end;
end;procedure TMainForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
fMX:= X;
fMY:= Y;
end;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND,$f012,0);
end;