- 浏览: 140268 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
aa87963014:
很好,但是update/insert 是否加锁 。加锁对sel ...
数据库锁 -
RobustTm:
我的这种做法也可以添加A和B
但是换成更新就有问题
hibernate入门(十一):级联操作inversin属性 -
RobustTm:
这位仁兄可以提供一对多双向关联完整的代码不?
我碰到了问题,采 ...
hibernate入门(十一):级联操作inversin属性 -
cfeers:
markxing 写道谢谢分享。。。
不客气,呵呵。
struts2.0 struts.xml配置文件详解 -
markxing:
谢谢分享。。。
struts2.0 struts.xml配置文件详解
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ShellAPI;
const
WM_BARICON=WM_USER+200;
type
TForm1 = class(TForm)
private
procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
procedure WMBarIcon(var Message:TMessage);message WM_BARICON;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMSysCommand (var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if Message.WParam = SC_ICON then
begin
//如果用户最小化窗口则将窗口隐藏并在任务栏上添加图标
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;
lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := '托管';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_ADD,lpData);
dispose(lpData);
Form1.Visible := False;
end
else
begin//如果是其它的SystemCommand消息则调用系统缺省处理函数处理之。
DefWindowProc(Form1.Handle,Message.Msg,Message.WParam,Message.LParam);
end;
end;
procedure TForm1.WMBarIcon(var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if (Message.LParam = WM_LBUTTONDOWN) then
begin//如果用户点击任务栏图标则将图标删除并回复窗口。
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;//SizeOf(PNotifyIconDataA);
lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := '托管';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_DELETE,lpData);
dispose(lpData);
Form1.Visible := True;
end;
end;
end.
F9,测试通过!
********************************清除多余托盘图标***********************************
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ShellAPI;
const
WM_BARICON=WM_USER+200;
type
TOSVersion = (osUnknown, os95, os98, osME, osNT3, osNT4, os2K, osXP, os2K3);
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
procedure WMBarIcon(var Message:TMessage);message WM_BARICON;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMSysCommand (var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if Message.WParam = SC_ICON then
begin
//如果用户最小化窗口则将窗口隐藏并在任务栏上添加图标
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;
lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := '应用程序1.0';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_ADD,lpData);
dispose(lpData);
Form1.Visible := False;
end
else
begin//如果是其它的SystemCommand消息则调用系统缺省处理函数处理之。
DefWindowProc(Form1.Handle,Message.Msg,Message.WParam,Message.LParam);
end;
end;
procedure TForm1.WMBarIcon(var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if (Message.LParam = WM_LBUTTONDOWN) then
begin//如果用户点击任务栏图标则将图标删除并回复窗口。
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;//SizeOf(PNotifyIconDataA);
lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := '托管';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_DELETE,lpData);
dispose(lpData);
Form1.Visible := True;
end;
end;
function GetOS: TOSVersion; //获得系统类型,用来取得托盘句柄
var
OS: TOSVersionInfo;
begin
ZeroMemory(@OS, SizeOf(OS));
OS.dwOSVersionInfoSize := SizeOf(OS);
GetVersionEx(OS);
Result := osUnknown;
if OS.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
case OS.dwMajorVersion of
3: Result := osNT3;
4: Result := osNT4;
5: begin
case OS.dwMinorVersion of
0: Result := os2K;
1: Result := osXP;
2: Result := os2K3;
end;
end;
end;
end
else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 0) then
Result := os95
else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 10) then
Result := os98
else if (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 90) then
Result := osME
end;
function GetSysTrayWnd(): HWND; //返回系统托盘的句柄,适合于Windows各版本
var OS: TOSVersion;
begin
OS := GetOS;
Result := FindWindow('Shell_TrayWnd', nil);
Result := FindWindowEx(Result, 0, 'TrayNotifyWnd', nil);
if (OS in [osXP, os2K3]) then
Result := FindWindowEx(Result, 0, 'SysPager', nil);
if (OS in [os2K, osXP, os2K3]) then
Result := FindWindowEx(Result, 0, 'ToolbarWindow32', nil);
end;
procedure KillTrayIcons (Sender: TObject);
var
hwndTrayToolBar: HWND;
rTrayToolBar: tRect;
x, y: Word;
begin
hwndTrayToolBar := GetSysTrayWnd;
Windows.GetClientRect(hwndTrayToolBar, rTrayToolBar);
for x := 1 to rTrayToolBar.right - 1 do begin
for y := 1 to rTrayToolBar.bottom - 1 do begin
SendMessage(hwndTrayToolBar, WM_MOUSEMOVE, 0, MAKELPARAM(x, y));
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
KillTrayIcons(self);
end;
end.
发表评论
-
使用Delphi编写自动关闭Windows信使服务窗体程序
2013-02-18 15:27 848使用Delphi编写自动关闭Windows信使服务窗体程序 ... -
一种自动关闭对话框的简单方法
2013-02-18 15:26 655{***************************** ... -
delphi VCL常用属性
2011-06-21 14:35 1056delphi VCL常用属性 属性 ... -
delphi VCL常用方法
2011-06-21 14:34 1123begindrag ... -
Delphi中安装第三方控件
2011-06-05 21:03 1007基本安装 1、对于单个控件,Componet--& ... -
Delphi图表控件TChart使用(收藏)
2011-05-16 12:01 2207最近开发要使 用图表, ... -
delphi 双进程守护
2011-05-12 17:04 1361这是一个关于父亲与儿子的故事: 父亲的一生:①生一个儿子。如果 ... -
Win32全局钩子在Delphi下实现的关键技术
2011-05-12 17:02 1088<script type="text/ja ... -
获取 CPU 使用率
2011-05-12 16:53 1302获取 CPU 使用率 unit Unit1; int ... -
AcmIn/AcmOut 语音采集
2011-05-12 16:53 1038AcmIn/AcmOut 语音采集 unit Unit ... -
哥德巴赫猜想的delphi7程序代码
2011-05-12 16:52 792unit Unit1; interface ... -
Delphi ActionList详解
2011-05-12 16:51 869一个友好的用户界面,必须具有下拉菜单,弹出菜单,工具条和快捷键 ... -
利用远程线程注入DLL (DELPHI版)
2011-05-12 16:50 2373研究外挂3个多月了~ ... -
Delphi 调用控件的过程,初学者都想知道
2011-05-12 16:46 1324假设有过程: procedure TForm1.Button ... -
格式化数字字符串输出的一个小技巧
2011-05-12 16:42 772我这里分别以VC和Delphi举例: 比如想生成 00000 ... -
Delphi连接数据库通用方法
2011-05-04 17:17 2276DELPHI 连接数据库是个头痛的问题,现在我写了个通用方法, ... -
通俗讲解对象和接口(转贴)
2011-05-04 15:19 701最近,还是看到很多人 ... -
用两种方法快速简单的实现窗口淡入淡出 收藏
2011-05-04 15:16 821用两种方法快速简单的实现窗口淡入淡出 收藏 在应用程序中引 ... -
如何让控件在编译时,自动添加所需的单元
2011-05-04 14:47 706在开发控件的时候,常会类似碰到这样的情况:我某个方法或事件的参 ... -
DELPHI基础开发技巧
2011-05-03 11:25 920DELPHI基础开发技巧◇[DELPHI]网络邻居复制文件us ...
相关推荐
至此,我们就实现了Delphi 7中将程序最小化到系统托盘的基本功能。用户现在可以点击“最小化到托盘”菜单项,将程序窗口隐藏,同时在系统托盘区域看到应用程序的图标。点击该图标,程序窗口会重新出现。通过右键菜单...
"Delphi 实现最小化托盘控件"的项目旨在帮助开发者实现这一功能,通过提供的实例代码,可以让用户更好地理解如何将窗口最小化并转换为托盘图标。这涉及到 Delphi 中的 TTrayIcon 组件以及事件处理机制。 TTrayIcon ...
在Delphi编程中,开发人员有时需要实现一个功能,即当用户点击窗口的最小化按钮时,程序并不真正地最小化到任务栏,而是隐藏到系统托盘区域。这种功能可以使用户在不关闭程序的情况下节省桌面空间。标题提到的问题...
CoolTray for Delphi7正是为解决这一需求而设计的一款强大的最小化托盘插件。它提供了丰富的功能和灵活的配置选项,让开发者可以轻松地将应用程序最小化到系统托盘,从而提高用户体验和软件的可操作性。 首先,让...
### Delphi 7 下最小化至系统托盘的实现方法 在Delphi 7中,开发者可以利用系统托盘(System Tray)的功能来增强应用程序的用户体验。系统托盘,也称为任务栏通知区域,是Windows操作系统任务栏的一部分,用于显示...
当窗体启动时,我们希望窗体自动最小化到托盘,这可以通过在窗体的`OnShow`事件中实现。同时,当窗体最小化时,我们也需要将其隐藏到托盘,这可以通过重写`OnMinimize`事件来完成。以下是一个简单的示例: ```...
Delphi播放器是一款基于Delphi编程语言开发的多媒体播放软件,其主要特点是可以在不使用时最小化到系统托盘,从而节省桌面空间并保持用户的桌面整洁。Delphi是一种流行的Object Pascal编程环境,由Embarcadero ...
在本文中,我们将深入探讨CMD的使用以及如何用Delphi编程语言实现CMD的功能,同时也会介绍如何将程序最小化到系统托盘。 首先,CMD提供了强大的命令行工具,如文件操作(如复制、移动、删除)、系统信息查询、网络...
本主题聚焦于“Delphi写的最小化托盘控件”,这是一种常见的软件设计技术,使得应用程序可以在主窗口被最小化后继续在系统托盘区域显示,提供更灵活的用户交互。 最小化托盘控件是Windows应用程序中一个非常实用的...
今天客户让写一个小工具,点击关闭要让程序最小化到托盘。马上想到以前用Delphi7发过这类程序,Delphi的效率还是一往即如的快,最后把这个控件放上来,也许有些delphier会用到吧,高版本的Delphi已经自带,大家就...
"Delphi 系统托盘实例" 是一个教学项目,旨在帮助 Delphi 初学者理解和实现将应用程序最小化到系统托盘的功能。这个实例演示了如何创建一个简单的 Delphi 应用程序,当用户选择“最小化”时,程序窗口不再显示,而是...
6. **隐藏和显示主窗口**:当用户选择“最小化”按钮时,可以将主窗口隐藏到系统托盘,通过调用Form的Hide方法;当用户点击托盘图标时,可以重新显示主窗口,通过调用Form的Show方法。 7. **自定义行为**:...
在Delphi编程环境中,托盘效果通常指的是将应用程序最小化到系统托盘区域,而不是任务栏。这种功能常用于后台运行的应用程序,以便在不占用屏幕空间的同时保持可访问性。下面我们将详细讨论如何用Delphi实现这个效果...
这通常通过使用`TTrayIcon`组件来实现,它允许我们将程序最小化到系统托盘,并提供托盘菜单供用户操作。 描述中提到,该程序能够隐藏任务栏图标,并且包含托盘菜单,这对于用户交互和程序的隐形运行至关重要。此外...
通过分析和研究这段Delphi源码,我们可以了解到如何利用Delphi的组件和API函数来实现"最小化到托盘"的功能。这通常涉及到以下几个步骤: 1. **添加托盘图标**:首先,需要在界面上添加一个`TTrayIcon`组件,这是...
总的来说,这个"Delphi源码精讲"实例为我们提供了一个深入了解如何在Delphi中实现程序最小化到托盘以及创建托盘菜单的宝贵学习材料。通过学习和实践这部分代码,开发者可以提升自己的Delphi编程技能,更好地理解和...
本篇文章将深入探讨如何使用Delphi实现主窗体的托盘显示效果,以及如何实现窗口最小化到托盘。 首先,我们需要导入`ShellCtrls`单元,这个单元提供了对系统托盘图标的支持。在你的项目源代码文件顶部添加以下语句:...
在Delphi编程中,系统托盘控件通常用于创建最小化到系统托盘的应用程序,以便在用户需要时能够快速访问,而不会干扰主工作区。CoolTrayIcon可能包含以下特性: 1. **图标显示**:控件应允许设置不同的图标,以便...
4. **隐藏主窗口**:为了使应用程序在启动后立即最小化到托盘,我们需要在程序启动时隐藏主窗口并显示托盘图标。这可以通过在FormCreate事件中设置Form的Visible属性为False,同时调用TTrayIcon的Visible属性为True...
在Delphi中,"托盘代码"通常是指将应用程序最小化到系统托盘区的能力,这样用户就可以在不占用任务栏空间的情况下继续运行程序。这种功能在很多应用中都非常常见,比如即时通讯软件、音乐播放器等。 实现Delphi的...