1、unusedVt:OleVariant;
   TVarData(unusedVt).vType:=varError;
   TVarData(unusedVt).vError:=DISP_E_PARAMNOTFOUND;
========================================================
2、把Label动态的定位到光标处:
   在MouseMove中写如下的代码: 
    ReleaseCapture;
    Label1.Perform(WM_SYSCOMMAND,$F012, 0);

解决方案 »

  1.   

    1.将unusedVt定义成系统内部错误类型。表示缺少参数。delphi在调用外部函数时,有时函数的参数可以是缺省值,这时可以传入一个olevarint类型的参数。通过tvardata将olevariant类型转换为varError。
    2。perfrom绕开windows消息队列,直接给控件发消息,wm_syscommand是系统消息,$F012,0是消息参数,是横纵坐标。
      

  2.   

    第一个问题是关于ActiveX中的通用变量类型VARIANT的。一个variant可以标识多种类型的变量,其中的第二句设置这个变量所代表的类型(错误值)。第三条语句设置这个变量的值。