你的这些变量是不是其他控件的东东!
或许是因为为了区别Delphi中的关键字(或Delphi中已经占用的)。
gz

解决方案 »

  1.   

    好像是定义外部接口时,为了避免重名,一般采用加‘_'
    如:
      _Collection = interface(IDispatch)
        ['{00000512-0000-0010-8000-00AA006D2EA4}']
        function Get_Count: Integer; safecall;
        function _NewEnum: IUnknown; safecall;
        procedure Refresh; safecall;
        property Count: Integer read Get_Count;
      end;
      

  2.   

    同意楼上的同志'_' 和 'a'..'b','A'..'Z'是一样的标识符元素
    没有什么特别的含义
    因为很少用它
    所以有时后就用来避免重名System unit 中的一些函数就是用'_'开头
    function _Str0Int64(val: Int64): ShortString;
    begin
      Result := _StrInt64(val, 0);
    end;
    表示是基层的函数但不公开
      

  3.   

    通过Import Type Library引入的许多类都是用下划线开头的。
    因为Delphi事先并不知道其他的类型库中是否有和Delphi的类重名的,因此引入时一般都加上“_”,以避免与Delphi类冲突。不到之处,请同道指点。
      

  4.   

    System unit 中的一些函数就是用'_'开头,是Borland公司不想你直接调用的函数。比如:_Str0Int64其实你在调用 StrToInt 时就可能调用的是她。
      

  5.   

    错!StrToInt其实是用了Val函数的。不信?打赌。50分!
      

  6.   

    50分我自己留着。
    StrToInt确实是用了Val函数,_Str0Int64在什么地方调用我目前还不知道。
    胡说八道了,真对不起。
    感谢richardsong(白玉老虎)的指正。