Cuestión : Arsenal variable de Delphi

Tengo un arsenal variable de secuencia en Delphi. ¿Cómo puedo comprobar qué valora se ha puesto en el showmesage del arsenal es decir o un cierto cheque visual? class= del

Respuesta : Arsenal variable de Delphi

Utilizo estas funciones para uso general:

Var MyVar: Variante;

comenzar
 MyVar: =… // hace una cierta inicialización

 ShowMessageFmt ('MyVar es del tipo %s y es valor es el “#13#10'% s”,
    [VariantTypeName (MyVar), VariantAsString (MyVar)]);
extremo;
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
función VariantBasicTypeName (varVar: Variante): Secuencia;
var
  basicType  : Número entero;
comenzar
  basicType: = VarType (varVar) y VarTypeMask;
  basicType del caso de
    varEmpty     : Resultado: = “vaciar”;
    varNull      : Resultado: = “falta de información”;
    varSmallInt  : Resultado: = “SmallInt”;
    varInteger   : Resultado: = “número entero”;
    varSingle    : Resultado: = “escoger”;
    varDouble    : Resultado: = “doble”;
    varCurrency  : Resultado: = “moneda”;
    varDate      : Resultado: = “fecha”;
    varOleStr    : Resultado: = “OleStr”;
    varDispatch  : Resultado: = “envío”;
    varError     : Resultado: = “error”;
    varBoolean   : Resultado: = “boleano”;
    varVariant   : Resultado: = “variante”;
    varUnknown   : Resultado: = “desconocido”;
    varByte      : Resultado: = “octeto”;
{$ifdef VER140}
    varWord      : Resultado: = “palabra”;
    varLongWord  : Resultado: = “LongWord”;
    varInt64     : Resultado: = “Int64”;
{$endif}    
    varStrArg    : Resultado: = “StrArg”;
    el varString    : Resultado: = “secuencia”;
    varAny       : Resultado: = “cualesquiera”;
    varTypeMask  : Resultado: = “TypeMask”;
    Resultado otro: = formato (“aduana (%d)”, [basicType]);
  extremo;
extremo;

función VariantTypeName (varVar: Variante): Secuencia;
var
  ExtType, i  : Número entero;
comenzar
 ExtType: = VarType (varVar);
 Resultado: =VariantBasicTypeName (varVar);
 si (ExtType y varArray) >0 entonces
  comenzar
   Resultado: =Result+'[';
   para i: =1 a VarArrayDimCount (varVar) resultan: =Result+Format (“%d,”, [VarArrayHighBound (varVar, i) - VarArrayLowBound (varVar, i) +1]);
   Resultado [longitud (resultado)]: = '] ';
  extremo;
 si (ExtType y varByRef) entonces resultan >0: = ' @ ' +Result;
extremo;

función VariantAsString (varVar: Variante): Secuencia;
Var
// L: TStringList;
 basicType, i, j, dévil: Número entero;
comenzar
 basicType: = VarType (varVar) y VarTypeMask;
 si VarIsArray (varVar) entonces
  comenzar
   Amortiguar: =VarArrayDimCount (varVar);
   si Dim>2 entonces
    comenzar
     Resultado: = ' arsenal '+VariantTypeName (varVar);
     Salida;
    extremo;
   Resultado: = ' [';
   si Dim=1
    Entonces para i: =VarArrayLowBound (varVar, 1) a VarArrayHighBound (varVar, 1) resulta: =Result+VariantAsString (varVar [i]) + ', '
    Para i: =VarArrayLowBound (varVar, 1) a VarArrayHighBound (varVar, 1) hacer
     comenzar
      Resultado: =Result+#13#10  [';
      para j: =VarArrayLowBound (varVar, 2) a VarArrayHighBound (varVar, 2) resulta: =Result+VariantAsString (varVar [i, j]) + ', ';
      Resultado [longitud (resultado)]: = '] ';
      Resultado: =Result+, ';
     extremo;
   Resultado [longitud (resultado)]: = '] ';
  extremo 
  comenzar
   si entonces resulta VarIsEmpty (varVar): = ' (vacío) '
   si entonces resulta VarIsNull (varVar): = ' (falta de información) 'resultado otro: =VarToStr (varVar);
  extremo;
extremo;
Otras soluciones  
 
programming4us programming4us