关于应用程序消息的几个疑问:
1、这是我定义的截获程序消息的函数
procedure WMClose(var Message: TWMClose);message WM_CLOSE;procedure TFmain.WMClose(var Message: TWMClose);
begin
{代码}
end;我点击窗体右上角的“X”,可以截获WM_CLOSE消息,然后执行代码,可我用 close关闭窗体,或者在任务栏里面,点击右键关闭程序,或者用ALT + F4关闭,缺没有截获该消息。应该如何写,才可以在关闭程序的各种情况下都截获消息呢?2、有程序A和程序B,程序B通过Socket连接到程序A,当程序B关闭的时候,告诉程序A,程序A同意后,程序B可以关闭。
如何实现。
1、这是我定义的截获程序消息的函数
procedure WMClose(var Message: TWMClose);message WM_CLOSE;procedure TFmain.WMClose(var Message: TWMClose);
begin
{代码}
end;我点击窗体右上角的“X”,可以截获WM_CLOSE消息,然后执行代码,可我用 close关闭窗体,或者在任务栏里面,点击右键关闭程序,或者用ALT + F4关闭,缺没有截获该消息。应该如何写,才可以在关闭程序的各种情况下都截获消息呢?2、有程序A和程序B,程序B通过Socket连接到程序A,当程序B关闭的时候,告诉程序A,程序A同意后,程序B可以关闭。
如何实现。
解决方案 »
- 执行数据库
- 如何将Tclientdataset中的数据在dbgrid中显示
- 生成窗体常出现错误:Invalid pointer operation
- 本人因转行有下列Delphi图书出售,价格面议,机会难得!
- 比较简单,关于listview怎么用的问题
- filter 过滤问题
- 数据库数据转移的一种方法,见过这种方法但是实现的时候出了问题,请问还有没有新的方法。
- 谁有ThemeEngine控件的教程?
- 如何实现在wwdbgrid得列头加上一个combobox,可以过滤相应得记录
- 使用Delphi能够访问Windows2000 Active Directory?
- 请问高人:Delphi/BCB的TThread子类在结束时耗费CPU资源100%,如何解决?
- 菜鸟再次请教一个SQL语句,只有两个字段!
不是吧。
放在form的oncreate里面就可以去掉右键的关闭菜单。
不用close指令关闭程序,改用发送消息。下面三个任选一个
sendmessage(handle,WM_CLOSE,0,0);
SendMessage(Handle,WM_SYSCOMMAND,SC_CLOSE,0);
PostMessage(handle, WM_CLOSE, 0, 0);
procedure WMSysCommand(var message: TMessage); message WM_SYSCOMMAND;procedure TForm1.WMSysCommand(var message: TMessage);
begin
case message.msg of
SC_CLOSE:
{代码}
else
inherited;
end;
end;问题2:
以UDP为例
udpserverA,udpserverBudpserverB.Send(...,关闭代码);udpserverA.收到并分析,同意则Send(...,同意关闭)udpserverB.收到同意回复,关闭
如果用户用ALT + F4关闭程序呢?
我是想截获程序B的close消息,然后发送给程序A,程序A如果同意关闭的话,程序B才关闭
http://lysoft.7u7.net