unit3.pas
来自「本目录内所有代码仅作指导用户编程之用,用户如果要作为 商业用途,建议使用正版软」· PAS 代码 · 共 74 行
PAS
74 行
unit Unit3;
interface
uses
Classes,Unit_dll, windows;
type
TNoblockReadth = class(TThread)
private
{ Private declarations }
dr:data_record;
procedure ProcessData;
protected
procedure Execute; override;
end;
var
nbrth: TNoblockReadth;
implementation
uses unit1;
{ Important: Methods and properties of objects in VCL or CLX can only be used
in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure TNoblockReadth.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TNoblockReadth }
procedure TNoblockReadth.Execute;
var
p:PChar;
bAnswer:Boolean;
i: integer;
begin
GetMem(p,512);
if form1.ckAnswer.Checked then
bAnswer:=true
else
bAnswer:=false;
while (not Terminated) do
begin
i :=do_read_proc(dr,p,bAnswer);
if (i>=0) then
begin
if dr.m_data_len > 0 then
Synchronize(ProcessData)
else if (dr.m_data_type = 1) or (dr.m_data_type = 2) then
Synchronize(form1.PollUserTable)
else
Sleep(10);
end;
end;
FreeMem(p,512);
end;
procedure TNoblockReadth.ProcessData;
begin
form1.ProcessData(dr);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?