运行此程序后,Windows 2000 无法关机/注销(200分)

  • 主题发起人 主题发起人 huawdg
  • 开始时间 开始时间
H

huawdg

Unregistered / Unconfirmed
GUEST, unregistred user!
Windows 2000 + Delphi 6
这是 MIDAS 三层中的客户端应用程序。
编译成 Exe 文件后,运行 Exe 程序,点 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.
 
好象没有什么特殊的东西。在Form的OnDestroy事件中,加上SocketConnection1.Close;看看
 
大富翁怎么这么没人气?
CSDN 的答案:
// TSocketConnection的SupportCallbacks 设为False即可,如:
SocketConnection1.SupportCallbacks := False;
确实解决了问题,那么有谁知道原因是什么?
 
呵呵,分点分给我啊:)[:D][:D]
 
大富翁上的高手呢?
 
都跑CSDN上去了
 
你好,我想请教一下,你上次遇到的clientdataset的刷新问题最后是怎么解决的?
 
跟你在98下打开Winap放音乐关闭前关机没效果一样你把程序换98下试试看是否系统问题
 
现在可以确定是 SocketConnection 有问题了,当 SupportCallbacks=True 时,它创建了一个线程,这个线程也许没有处理好。算啦,就设 SupportCallbacks=False 吧。
to bfox: 只能用 CDS.Refresh 了。
 
TO HUAWDG
谢谢:)
 
给分吧。 :)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
686
import
I
I
回复
0
查看
740
import
I
后退
顶部