function ProBar : boolean; 
begin 
... 
end; 
-------------------------- 
var  
    ThreadId : DWORD;    var  
  ThreadHandle :  THandle; 
  
  begin  
  ThreadHandle  :=  CreateThread(nil,  0,  @ProBar,  nil,  0,  ThreadID);  
-------------------------- 
  
  Delphi6显示Variable  required,光标停在第三个参数后。 
  函数ProBar在其他的方法中调用都没问题。    
    
  谢谢!!!  

解决方案 »

  1.   

    第三个参数,如果用@ProBar改为@Self就可以编译OK,但是调用这个方法后就报错,
    我看到网上的都是@Self.方法名,但是我的只能是@Self.控件(或变量)
    哪位高手来指点一下.....急...
      

  2.   

    function ProBar : boolean; 
    begin 
    ... 
    end; 放在前面看看
      

  3.   

    Wozhiyonglangqi,你说放在前面是什么意思?
    不能在第三个参数中用@self.方法,请问为什么?
      

  4.   

    CreateThread 的用法没有问题
    把方法写成这样试一下 function ProBar : boolean;  stdcall;
      

  5.   

    function TPPSampleSendCustFrm.ProBar: Boolean; stdcall;
    我写成这样后,还是显示Variable  required,光标停在第三个参数后。
    CreateThread这方法各位有运行成功过吗,小弟愚昧,多多指点啊...
      

  6.   

     function TForm1.ProBar : boolean;
    begin
    ShowMessage('we');end;
    procedure TForm1.btn1Click(Sender: TObject);
    var
     ThreadId : DWORD;
    begin    CreateThread(nil,0,@TForm1.ProBar,nil,0,ThreadID);end;
      

  7.   

    function TForm1.ProBar : Integer; stdcall;
    begin
      ShowMessage('we');
      Result := 0;
    end;type
      TMyFunc = function: Integer of object; stdcall;procedure TForm1.btn1Click(Sender: TObject);
    var
      ThreadId : DWORD;
      m: TMethod;
    begin
      TMyFunc(m) := ProBar;
      CreateThread(nil,0,m.Code,m.Data,0,ThreadID);end;
      

  8.   

    lpStartAddress,指向线程函数的指针,形式:@函数名,函数名称没有限制,但是必须以下列形式声明:
      DWORD WINAPI ThreadProc (LPVOID pParam) ,格式不正确将无法调用成功。 
      

  9.   

    Idle_  的方法我试过,可以编译,到运行到事件时报错:
    access violation at 0x007a529f: write of address 0x65646f4f
    ???
    怎么解???
     
      

  10.   

    抱歉Idle_ ,没有错,是我看错了