implementation
{$R *.dfm}
uses Setting;
procedure TMyThread.Execute;
begin
inherited;
while not Terminated do begin
try
Msg := frClient.TCPClient.ReadLn;
Synchronize(View);
except
Terminate;
end;
end;
end;
procedure TMyThread.View;
begin
frClient.Memo.Lines.Add(Msg);
end;
procedure TfrClient.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin
TCPClient.WriteLn(Edit1.Text + ' : ' + Edit2.Text);
Edit2.Text := '';
Key := #0;
end;
end;
procedure TfrClient.TCPClientConnected(Sender: TObject);
begin
Memo.Lines.Add('서버와 접속되었습니다');
end;
procedure TfrClient.TCPClientDisconnected(Sender: TObject);
begin
Memo.Lines.Add('서버와 접속해재 되었습니다');
end;
procedure TfrClient.ConfigClick(Sender: TObject);
begin
if frSetting = nil then
frSetting := TfrSetting.Create( Self );
frSetting.ShowModal;
end;
procedure TfrClient.btConnectClick(Sender: TObject);
begin
if Edit1.Text = '' then begin
ShowMessage('대화명을 입력하세요');
Edit1.SetFocus;
exit;
end;
if (frSetting.ePort.Text = '0') Or (frSetting.eIP.Text = '0') then begin
ShowMessage('서버접속 설정을 하세요.');
exit;
end;
TCPClient.Port := StrtoInt(frSetting.ePort.Text);
TCPClient.Connect;
MyThread := TMyThread.Create(True);
MyThread.FreeOnTerminate := True;
MyThread.Resume;
end;
-> 폼이 종료 되거나 IndyTCPClient가 DisConnect되기만 하면 error가 뜹니다. 도와주세요~ ㅠ.ㅠ
ps. 서버 쪽에서는 Client가 종료되면 broadcast로 메세지를 뿌려주는 것 말고는 Client에 보내지는게
없습니다
|