Delphi7 demo 下的Net chat 程序,我想在新线程中传递一个新的Form给它,
线程运行时用Show显示这个窗口,但是运行时就死机了。 也就是:
在TcpServer1的 OnAccept事件中,窗建一个Form,然后将其传递给子线程,
子线程在运行时就死了, 如果在线程中创建Form,调用Show显示,则没问题,这又是为什么呢?那位高手分析一下,很急!
我在 TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);
var
s: string; DataThread: TClientDataThread;
begin
// create thread
DataThread:= TClientDataThread.Create(true);
// set the TagetList to the gui list that you
// with to synch with.
DataThread.TargetList := memRecv.lines;
DataThread.form :=Tfmduihua.Create(nil);加了这个。
procedure TClientDataThread.synchAddDataToControl;
begin
TargetList.AddStrings(ListBuffer);
// form:=Tfmduihua.Create(nil);
form.Show ; //死机了
end;
线程运行时用Show显示这个窗口,但是运行时就死机了。 也就是:
在TcpServer1的 OnAccept事件中,窗建一个Form,然后将其传递给子线程,
子线程在运行时就死了, 如果在线程中创建Form,调用Show显示,则没问题,这又是为什么呢?那位高手分析一下,很急!
我在 TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);
var
s: string; DataThread: TClientDataThread;
begin
// create thread
DataThread:= TClientDataThread.Create(true);
// set the TagetList to the gui list that you
// with to synch with.
DataThread.TargetList := memRecv.lines;
DataThread.form :=Tfmduihua.Create(nil);加了这个。
procedure TClientDataThread.synchAddDataToControl;
begin
TargetList.AddStrings(ListBuffer);
// form:=Tfmduihua.Create(nil);
form.Show ; //死机了
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货