要求:  
1.函数返回时间不确定,得到某一结果后返回true,一定时间无结果返回false  
2.不用循环  
3.不用时间控件  

解决方案 »

  1.   

    像opendialog.excute一样,
    如function myfunction:boolean
    执行到if myfunction then时,停止并等待返回值,然后继续执行
      

  2.   

    执行起来像opendialog.excute而已,
    如function myfunction:boolean,myfunction与一个通讯结果有关,返回时间结果不定!
    执行到if myfunction then时,停止并等待返回值,然后继续执行
      

  3.   

    function myfunction :boolean ;
    begin
      Result := false ;
      if not Assigned(yourForm) then
        yourForm := TyourForm.Create(Self) ;
      if yourForm.ShowModal = mrOK then
      begin
        //返回你要的东西
        Result := true ;
      end ;
    end ;
      

  4.   

    倒,楼上的只是利用了ShowModal的特性而已,而这一点ShowModal与opendialog.excute的原理是一样的,我要知道的是如何写!!!
      

  5.   

    想知道源码,你可以试着追一下Delphi的源程序
    应该会有所收获的!
    这个东西,没有什么别的办法,无论谁做,谁都得参照Delphi实现原理,
    只不过翻译成为自己的思路而已
      

  6.   

    不懂什么意思,要达到这个效果可以用一个Form,再ShowModal就可以了。
      

  7.   

    为什么要用Form.showmodal???又不是手动控制返回值,而是由通讯结果控制返回值!!!
      

  8.   

    我的要求与opnedialog没有任何关系,只是函数执行方式相似而已
      

  9.   

    两贴同时加分,另一贴:
    http://expert.csdn.net/Expert/topic/1105/1105705.xml?temp=.4611627