private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation var connect_count:integer=0; {$R *.dfm}procedure TForm1.ServerSocket1clientconnect(Sender: TObject; Socket: TCustomWinSocket); begin listbox3.Items.Add('connect:'+socket.RemoteHost+'('+socket.RemoteAddress+')'); inc(connect_count);end; procedure TForm1.RefreshClients(Sender: TObject); var l,j:Integer; begin listbox1.Clear; if connect_count<>0 then for l:=0 to connect_count-1 do with serversocket1.Socket.Connections[l] do begin sendtext('^get refresh'); sleep(50); listbox1.Items.Add(RemoteAdress+'(+RemoteHost)'); for j:=0 to connect_count-1 do begin sendtext('$'+inttostr(j)+':'+serversocket1.Socket.connections[j].RemoteAddress+'('+serversocket1.Socket.Connections[j].RemoteHost+')'); sleep(50); end; end; end; procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin listbox3.Items.Add('Disconnected:'+socket.RemoteHost+'('+socket.RemoteAddress+')'); dec(connect_count); refreshclients; end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var l:integer; rc_text:string; rc_name:string; begin rc_text:=Socket.ReceiveText; rc_name:=socket.RemoteHost; listbox2.Items.Add(rc_name+':'+rc_text) ; for l:=0 to serversocket1.Socket.ActiveConnections-1 do serversocket1.Socket.Connections[l].SendText(rc_name+': '+rc_text); end;procedure TForm1.Timer1Timer(Sender: TObject); begin refreshclients; end;procedure TForm1.ListBox2DblClick(Sender: TObject); begin showmessage(listbox1.Items[listbox1.Itemsindex]); end;end. 大家帮我看看吧 该怎么改呢?
form1:=Tform2.create(self);
form1.show;
finally
form2.free;
end; 如果写成(1)这样,就要改成:
if not assigned(form1) then
form1:=Tform1.create(self);
try
form1.showmodal;
finally
freeandNil(form1);
end;
检查一下事件代码.FORM1的事件.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ScktComp;type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
ListBox1: TListBox;
ListBox2: TListBox;
ListBox3: TListBox;
ServerSocket1: TServerSocket;
Timer1: TTimer;
procedure ServerSocket1clientconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure RefreshClients(Sender: TObject);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Timer1Timer(Sender: TObject);
procedure ListBox2DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
var connect_count:integer=0;
{$R *.dfm}procedure TForm1.ServerSocket1clientconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
listbox3.Items.Add('connect:'+socket.RemoteHost+'('+socket.RemoteAddress+')');
inc(connect_count);end;
procedure TForm1.RefreshClients(Sender: TObject);
var
l,j:Integer;
begin
listbox1.Clear;
if connect_count<>0 then
for l:=0 to connect_count-1 do
with serversocket1.Socket.Connections[l] do
begin
sendtext('^get refresh');
sleep(50);
listbox1.Items.Add(RemoteAdress+'(+RemoteHost)');
for j:=0 to connect_count-1 do
begin
sendtext('$'+inttostr(j)+':'+serversocket1.Socket.connections[j].RemoteAddress+'('+serversocket1.Socket.Connections[j].RemoteHost+')');
sleep(50);
end;
end;
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
listbox3.Items.Add('Disconnected:'+socket.RemoteHost+'('+socket.RemoteAddress+')');
dec(connect_count);
refreshclients;
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
l:integer;
rc_text:string;
rc_name:string;
begin
rc_text:=Socket.ReceiveText;
rc_name:=socket.RemoteHost;
listbox2.Items.Add(rc_name+':'+rc_text) ;
for l:=0 to serversocket1.Socket.ActiveConnections-1 do
serversocket1.Socket.Connections[l].SendText(rc_name+': '+rc_text);
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
refreshclients;
end;procedure TForm1.ListBox2DblClick(Sender: TObject);
begin
showmessage(listbox1.Items[listbox1.Itemsindex]);
end;end.
大家帮我看看吧
该怎么改呢?