delphi中直接拖动窗体,不用点标题栏,右下角


Delphi 实现右下角任务栏功能

转载:https://www.cnblogs.com/zscy/articles/1203974.html
大佬 不长叶子的树 的文章

delphi中直接拖动窗体,不用点标题栏
1.  一般情况下,移动一个窗体需要将鼠标放置在标题栏上才能拖动窗体,为 什么非要使用标题栏呢?其实我们可以使用一个巧妙的方法来实现将鼠标放置 在窗体上按下就可拖动窗体,下面先看实现代码。在Form1的“Private”部分声明过程:

在private部分加入下列代码:
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;
  上面的关键代码虽然只有两行,但它实现了鼠标直接拖动窗体的目的。代码的原理是利用窗体的WM_NCHITTEST消息,这个消息是当光标移动、鼠标按下或释放时发生的,当程序检测到鼠标在窗体中按下的消息后(消息的值为htClient),将鼠标在标题栏上按下时产生的消息(值为htCaption)传递出去,这样就巧妙的欺骗程序认为是标题栏被按下,当然就可拖动窗体了。
 procedure TForm1.OnMouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
 begin
   if button=mbleft then
    begin
      ReleaseCapture;
      Form1.Perform (WM_syscommand,$f012,0);
    end;
 9end;

--------------------------------

Delphi 实现右下角任务栏功能

标签:ttrayicon控

实现软件在右下角任务栏很简单,只需要使用TTrayIcon控件,代码只要一句就可以了。
指定托盘图标, 有几种用法:
1、设计时选择;
2、把一个 TIcon 对象给它;
3、使用当前程序图标: TrayIcon1.Icon := Application.Icon;
4、TrayIcon1.SetDefaultIcon; 这也是使用当前程序图标.
一般使用这个功能都是像QQ那样,关闭QQ界面,会自动缩到桌面右下角任务栏,代码如下;

procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
TrayIcon1.Icon:=Application.Icon;
FormMain.Visible:=False;
    if CloseFlag<>4 then //判断是不是要真正退出
begin
CanClose:=False;
end
else
begin
CanClose:=True;
end;

end;
TTrayIcon控件其他属性都很好理解,如果感兴趣自己摸索一下就可以了。

Delphi 实现右下角任务栏功能

标签:ttrayicon控

原文地址:http://blog.csdn.net/singular2611/article/details/45370109

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值