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