⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit3.pas

📁 本目录内所有代码仅作指导用户编程之用,用户如果要作为 商业用途,建议使用正版软件进行编译. 开发环境说明: delphi demo : delphi 6.0 vc de
💻 PAS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -