我的一个通讯进程在后台 循环处理数据库数据。我的托盘需要处理双击的消息。现在好象无法处理。因为系统一直都在循环处理主要工作。怎么解决这个问题呢?
解决方案 »
- 学习delphi 控件
- 关于在DLL中传递SocketConnection的问题
- 新年将至祝大家工作顺心生活开心
- quickreport连接问题
- 大家好菜鸟请教,请多帮忙
- string和char怎么互相转换?
- 急!!!真的没有人知道用DELPHI如何做出IUP数据文件?我昨天为此才开始接触DELPHI,很菜,诚恳大虾们帮帮忙~~
- 单机使用的数据库程序是否可以应用于网络中,若可以应注意什么问题(我只知道数据库的并发控制问题),请高手指点
- 各位高手,我想问一下在工控中是如何控制的?用什么??
- 共享软件现状调查
- 安装ms sql2000后,打不开企业管理器,错误提示mmc无法创建节点管理器,请确认mmcndngr.dll已经注册
- 在线等待!!急
procedure WMMYTrayIconCallback( var Msg : TMessage );
Message WM_MYTRAYICONCALLBACK; procedure WMSysCommand(var Message:TMessage);
message WM_SYSCOMMAND;
// 最小化窗口时,进入托盘 并从任务栏不可见
procedure TfmAccount.WMSysCommand(var Message:TMessage);
begin
if (Message.WParam = SC_ICON) then
begin
Visible := false;
Shell_NotifyIcon(NIM_ADD, @MyTrayIcon );
end
else
begin
DefWindowProc(Handle,Message.Msg,Message.WParam,message.LParam);
end;
end;// 只是在双击时候 显示应用窗口
procedure TfmAccount.WMMyTrayIconCallback( var Msg:TMessage );
var
CursorPos : TPoint;
begin case Msg.LParam of
WM_LBUTTONDBLCLK:
begin //SetWindowLong( Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW );
//Application.ShowMainForm := TRUE;
Application.MainForm.Visible := TRUE; Shell_NotifyIcon( NIM_DELETE, @MyTrayIcon );
end;
WM_RBUTTONDOWN:
begin
;
end;
WM_LBUTTONDOWN:
begin
;
end;
end;
end;
begin
Caption := IntToStr(I);
end;在循环结束前,是没办法响应消息的(除非用多线程)。你可以写成这样: for I := 1 to 10000 do
begin
Caption := IntToStr(I);
Application.ProcessMessages;
end;那么在循环的同时也可以响应消息了。