H
huanghuang612
Unregistered / Unconfirmed
GUEST, unregistred user!
//主程序中串口接收字符,其中strlist为TStringlist
procedure TFrm_Main.Comm1RxChar(Sender: TObject;
Count: Integer);
var str:string;
begin
comm1.ReadStr(Str,Count);
EnterCriticalSection(cs1);
try
strlist.Add(Str);
except
showmessage('添加缓存出错:');
end;
LeaveCriticalSection(cs1);
end;
//线程执行代码
procedure ReceiveThread.Execute;
var str:string;
i:integer;
begin
i:=0;
while not terminateddo
begin
if Frm_Main.strlist.Count>0 then
begin
try
i:=Frm_Main.strlist.Count;
str:= Frm_Main.strlist.Strings[0];
Frm_Main.strlist.Delete(0);
Frm_Main.RzStatusPane1.Caption := inttostr(i);
except
Frm_Main.RzStatusPane1.Caption := '缓存中的行数为:'+inttostr(i);
end;
Frm_Main.ProcessRecStr(str);
end
else
begin
try
i:=Frm_Main.strlist.Count;
Frm_Main.RzStatusPane1.Caption := inttostr(i);
sleep(500);
except
Frm_Main.RzStatusPane1.Caption := '缓存中的行数为0';
end;
end;
end;
end;
现在系统提示的错误是“添加缓存出错”。
系统中只在这两段代码中有strlist变量
procedure TFrm_Main.Comm1RxChar(Sender: TObject;
Count: Integer);
var str:string;
begin
comm1.ReadStr(Str,Count);
EnterCriticalSection(cs1);
try
strlist.Add(Str);
except
showmessage('添加缓存出错:');
end;
LeaveCriticalSection(cs1);
end;
//线程执行代码
procedure ReceiveThread.Execute;
var str:string;
i:integer;
begin
i:=0;
while not terminateddo
begin
if Frm_Main.strlist.Count>0 then
begin
try
i:=Frm_Main.strlist.Count;
str:= Frm_Main.strlist.Strings[0];
Frm_Main.strlist.Delete(0);
Frm_Main.RzStatusPane1.Caption := inttostr(i);
except
Frm_Main.RzStatusPane1.Caption := '缓存中的行数为:'+inttostr(i);
end;
Frm_Main.ProcessRecStr(str);
end
else
begin
try
i:=Frm_Main.strlist.Count;
Frm_Main.RzStatusPane1.Caption := inttostr(i);
sleep(500);
except
Frm_Main.RzStatusPane1.Caption := '缓存中的行数为0';
end;
end;
end;
end;
现在系统提示的错误是“添加缓存出错”。
系统中只在这两段代码中有strlist变量