zoukankan      html  css  js  c++  java
  • 获取变量类型的函数

    Variants 单元下的 VarType 函数可以获取变量类型, 但它返回的只是一个数字; 需要再结合一下在 System 单元里定义的这些常量:
    varEmpty    = $0000;
    varNull     = $0001;
    varSmallint = $0002;
    varInteger  = $0003;
    varSingle   = $0004;
    varDouble   = $0005;
    varCurrency = $0006;
    varDate     = $0007;
    varOleStr   = $0008;
    varDispatch = $0009;
    varError    = $000A;
    varBoolean  = $000B;
    varVariant  = $000C;
    varUnknown  = $000D;
    varShortInt = $0010;
    varByte     = $0011;
    varWord     = $0012;
    varLongWord = $0013;
    varInt64    = $0014;
    varStrArg   = $0048;
    varString   = $0100;
    varAny      = $0101;
    varTypeMask = $0FFF;
    varArray    = $2000;
    varByRef    = $4000;
    
    函数及测试如下:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
    
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    {函数}
    function GetVarType(const v: Variant): string;
    begin
      case VarType(v) of
        varEmpty    : Result := 'Empty';
        varNull     : Result := 'Null';
        varSmallint : Result := 'Smallint';
        varInteger  : Result := 'Integer';
        varSingle   : Result := 'Single';
        varDouble   : Result := 'Double';
        varCurrency : Result := 'Currency';
        varDate     : Result := 'Date';
        varOleStr   : Result := 'OleStr';
        varDispatch : Result := 'Dispatch';
        varError    : Result := 'Error';
        varBoolean  : Result := 'Boolean';
        varVariant  : Result := 'Variant';
        varUnknown  : Result := 'Unknown';
        varShortInt : Result := 'ShortInt';
        varByte     : Result := 'Byte';
        varWord     : Result := 'Word';
        varLongWord : Result := 'LongWord';
        varInt64    : Result := 'Int64';
        varStrArg   : Result := 'StrArg';
        varString   : Result := 'String';
        varAny      : Result := 'Any';
        varTypeMask : Result := 'TypeMask';
        varArray    : Result := 'Array';
        varByRef    : Result := 'ByRef';
      end;
    end;
    
    {测试}
    procedure TForm1.FormCreate(Sender: TObject);
    var
      i: Integer;
      w: Word;
      s: string;
      d: Double;
    begin
      ShowMessage(GetVarType(i)); {Integer}
      ShowMessage(GetVarType(w)); {Word}
      ShowMessage(GetVarType(s)); {string}
      ShowMessage(GetVarType(d)); {Double}
    end;
    
    end.
    
    这里有个类似的东西: http://www.cnblogs.com/del/archive/2008/05/09/1158858.html#1190739

  • 相关阅读:
    Oracle 修改带数据的字段类型
    Oracle的主键约束、唯一约束与外键约束
    Oracle 唯一 索引 约束 创建 删除
    Oracle 在Drop表时的Cascade Constraints
    iTunes备份注意
    谈判的四种风格
    求平均速度
    网站推荐的代码自动生成软件实际使用感触
    DOTA游戏相关的文章
    魔兽争霸3不能弹出输入法原因
  • 原文地址:https://www.cnblogs.com/del/p/1190710.html
Copyright © 2011-2022 走看看