Windows 2000 关闭/注销时,应用程序无法终止。

hiflower 2003-12-12 10:33:43

这是 MIDAS 三层中的客户端应用程序。
点 Button1,再点 Button2,或先 Button2,再 Button1 后,Windows 关闭/注销时,此程序不能终止。
服务端程序启动或不启动都无所谓,结果都一样。

高手快来帮忙啊。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBClient, MConnect, SConnect;

type
TForm1 = class(TForm)
Button1: TButton;
SocketConnection1: TSocketConnection;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
try
SocketConnection1.Open;
except
SocketConnection1.Close;
end;
// Application.MessageBox('ddd','ddd');
// MessageBox(Handle,'aaa','ddd',0);
// showmessage('ok');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// Application.MessageBox('ddd','ddd');
// MessageBox(Handle,'aaa','ddd',0);
showmessage('ok');
end;

end.
...全文
41 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
swayi21 2003-12-18
  • 打赏
  • 举报
回复
那你把
ShowMessage(...); 換成:
MessageBox(...); 把Dialog單元去掉。

要不你就把按鈕裡的內容換一下,如(Exit; Sleep(10);)

Set SupportCallbacks to False if you are not using callback functions and want to eliminate the dependency on WinSock2.

亂說了一氣,呵呵。
hiflower 2003-12-15
  • 打赏
  • 举报
回复
杜克兄的办法确实解决了问题,那么有谁知道原因是什么?
hiflower 2003-12-13
  • 打赏
  • 举报
回复
也许我是个星星中的例外 :P
whitetiger8 2003-12-13
  • 打赏
  • 举报
回复
呵呵。好像你是二个星的高手哦。
hiflower 2003-12-13
  • 打赏
  • 举报
回复
谢谢 杜克兄,下星期才能试

如果是这样的话,是不是有点奇怪啊
hiflower 2003-12-12
  • 打赏
  • 举报
回复
to swayi21(微斯人): 但如果不点 button2 ,则很正常啊
swayi21 2003-12-12
  • 打赏
  • 举报
回复
我沒用過,但我相信是SocketConnection1的问题,
你試試:
try
SocketConnection1.Open;
finally
SocketConnection1.Close;
end;
再不行,你就動態創建這個組件試試。
我認為與先後點擊無關。
pandengzhe 2003-12-12
  • 打赏
  • 举报
回复
我的没问题。。。
hiflower 2003-12-12
  • 打赏
  • 举报
回复
我是 Win2000+D6
如果不手工关闭此程序,Windows 就不能关闭/注销了.
pandengzhe 2003-12-12
  • 打赏
  • 举报
回复
win2003+d7,没问题啊,不明白楼主意思。。。
pandengzhe 2003-12-12
  • 打赏
  • 举报
回复
xx+gz+up...
qiume 2003-12-12
  • 打赏
  • 举报
回复
// TSocketConnection的SupportCallbacks 设为False即可,如:
SocketConnection1.SupportCallbacks := False;
wave_f 2003-12-12
  • 打赏
  • 举报
回复
学习一下
WGYKING 2003-12-12
  • 打赏
  • 举报
回复
怪事。。。
hiflower 2003-12-12
  • 打赏
  • 举报
回复
to superhjw(黄锦云) : 我运行的是 Exe 文件
superhjw 2003-12-12
  • 打赏
  • 举报
回复
不是SOCKET的问题,而是在DELPHI的编译环境中才会有这个问题。
脱离编译环境就OK了。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧