function ReadEmpNo(Port, BaudRate: Integer; EmpNo: array of byte): Integer; stdcall; external 'Reader.dll';type
  TMyThread = class(TThread)
  protected
    procedure Execute; override;
  end;procedure TMyThread.Execute;
var
  i: Integer;
  EmpNo: array[0..10] of byte;
  strNo: string;
begin
  FreeOnTerminate := True; {这可以让线程执行完毕后随即释放}
  try
   // while (true) do
    begin
      strNo := '';
      if ReadEmpNo(StrToInt('1') - 1, 19200, EmpNo) = 0 then
      begin
    //ShowMessage(Trim(PChar(@EmpNo)));
        strNo := Trim(PChar(@EmpNo));      end;
      FormC_input.edt_no.Text := '22222';//strNo;      sleep(3000);
    end;  finally
 // variable.Free;
  end;
end;
问题出在红色部分,就是这个FORM上的控件无法把值弄上去..但这段代码我另外用D7写个程序可以出来的..