你不能在多线程里面访问VCl界面,对于Vcl的访问只能在主线程里访问,你可以用Synchronize()方法让多线程的方法在主线程里执行

解决方案 »

  1.   

    是不是Showmessage('员工资料成功导入'); 出错?
      

  2.   

    在线程中增加一个方法:
    procedure ShowMess;
    begin
      ShowMessage('  ');
    edn;
    然后在execute方法中调用:
      syschronize(ShowMess);
      

  3.   

    跟界面有关的应该在主线程中执行。
    像你的FrmImportEmp.Gauge1应该是一个窗口上进度条,最好在主线程中执行
      

  4.   

    同意楼上观点,但是可能你的程序还有问题
    Gauge1.Progress:=Trunc(int((iRow/iRowCount)*100));
    我认为这一句的问题最大,你可以将它屏蔽试一下
      

  5.   

    我已经解决问题了,是showmessage的问题,应该按pathe(睡斛) 说的做.不过对于Gauge1.Progress:=Trunc(int((iRow/iRowCount)*100));  好像没问题,尽管它是主线程中的界面,但仍能在线程中控制.