Delphi奇怪的现象!!!(50)
我写了一个TidTcpClient的程序,用来和服务器进行通讯,
点击按钮建立连接后,程序应会进入死循环,并不断将服务器端发来的消息打印在
RICHEDIT控件上。程序如下:
但是这么写,界面上没有任何东西被打印。
procedure TMain.BitBtn1Click(Sender: TObject);
Var
strData:string;
begin
DataModule_MainModule := TDataModule_MainModule.Create(main);
DataModule_MainModule.IdTCPClient_SMSAS.Host:='192.168.0.204';
DataModule_MainModule.IdTCPClient_SMSAS.Port:=8889;
while true do
begin
strData := DataModule_MainModule.IdTCPClient_SMSAS.ReadString(100);
if strData <> '' then
begin
RichEdit_message_filter.Lines.Append(strData);
end;
end;
end;
但是当我将WHILE语句去掉,只保留循环体,程序却能有正确的输出(只不过只能输出一次数据),程序如下:
procedure TMain.BitBtn1Click(Sender: TObject);
Var
strData:string;
begin
DataModule_MainModule := TDataModule_MainModule.Create(main);
DataModule_MainModule.IdTCPClient_SMSAS.Host:='192.168.0.204';
DataModule_MainModule.IdTCPClient_SMSAS.Port:=8889;
//while true do
//begin
strData := DataModule_MainModule.IdTCPClient_SMSAS.ReadString(100);
if strData <> '' then
begin
RichEdit_message_filter.Lines.Append(strData);
end;
//end;
end;
请问高手,此是何道理??
(另,我换成REPEAT语句也不成功)