|
@@ -87,18 +87,18 @@ begin
|
|
varEmpty : Result := 0;
|
|
varEmpty : Result := 0;
|
|
varSmallInt : Result := vSmallInt;
|
|
varSmallInt : Result := vSmallInt;
|
|
varShortInt : Result := vShortInt;
|
|
varShortInt : Result := vShortInt;
|
|
- varInteger : Result := vInteger;
|
|
|
|
- varSingle : Result := Round(vSingle);
|
|
|
|
- varDouble : Result := Round(vDouble);
|
|
|
|
- varCurrency : Result := Round(vCurrency);
|
|
|
|
- varDate : Result := Round(vDate);
|
|
|
|
- varBoolean : Result := SmallInt(vBoolean);
|
|
|
|
|
|
+ varInteger : Result := smallint(vInteger);
|
|
|
|
+ varSingle : Result := smallint(Round(vSingle));
|
|
|
|
+ varDouble : Result := smallint(Round(vDouble));
|
|
|
|
+ varCurrency : Result := smallint(Round(vCurrency));
|
|
|
|
+ varDate : Result := smallint(Round(vDate));
|
|
|
|
+ varBoolean : Result := smallint(SmallInt(vBoolean));
|
|
varVariant : Result := VariantToSmallInt(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToSmallInt(PVarData(vPointer)^);
|
|
varByte : Result := vByte;
|
|
varByte : Result := vByte;
|
|
- varWord : Result := vWord;
|
|
|
|
- varLongWord : Result := vLongWord;
|
|
|
|
- varInt64 : Result := vInt64;
|
|
|
|
- varQword : Result := vQWord;
|
|
|
|
|
|
+ varWord : Result := smallint(vWord);
|
|
|
|
+ varLongWord : Result := smallint(vLongWord);
|
|
|
|
+ varInt64 : Result := smallint(vInt64);
|
|
|
|
+ varQword : Result := smallint(vQWord);
|
|
varOleStr : Result := WStrToSmallInt(vOleStr);
|
|
varOleStr : Result := WStrToSmallInt(vOleStr);
|
|
varString : Result := LStrToSmallInt(vString);
|
|
varString : Result := LStrToSmallInt(vString);
|
|
else
|
|
else
|
|
@@ -107,18 +107,18 @@ begin
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
varSmallInt : Result := PSmallInt(vPointer)^;
|
|
varSmallInt : Result := PSmallInt(vPointer)^;
|
|
varShortInt : Result := PShortInt(vPointer)^;
|
|
varShortInt : Result := PShortInt(vPointer)^;
|
|
- varInteger : Result := PInteger(vPointer)^;
|
|
|
|
- varSingle : Result := Round(PSingle(vPointer)^);
|
|
|
|
- varDouble : Result := Round(PDouble(vPointer)^);
|
|
|
|
- varCurrency : Result := Round(PCurrency(vPointer)^);
|
|
|
|
- varDate : Result := Round(PDate(vPointer)^);
|
|
|
|
|
|
+ varInteger : Result := smallint(PInteger(vPointer)^);
|
|
|
|
+ varSingle : Result := smallint(Round(PSingle(vPointer)^));
|
|
|
|
+ varDouble : Result := smallint(Round(PDouble(vPointer)^));
|
|
|
|
+ varCurrency : Result := smallint(Round(PCurrency(vPointer)^));
|
|
|
|
+ varDate : Result := smallint(Round(PDate(vPointer)^));
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varVariant : Result := VariantToSmallInt(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToSmallInt(PVarData(vPointer)^);
|
|
varByte : Result := PByte(vPointer)^;
|
|
varByte : Result := PByte(vPointer)^;
|
|
- varWord : Result := PWord(vPointer)^;
|
|
|
|
- varLongWord : Result := PLongWord(vPointer)^;
|
|
|
|
- varInt64 : Result := PInt64(vPointer)^;
|
|
|
|
- varQword : Result := PQWord(vPointer)^;
|
|
|
|
|
|
+ varWord : Result := smallint(PWord(vPointer)^);
|
|
|
|
+ varLongWord : Result := smallint(PLongWord(vPointer)^);
|
|
|
|
+ varInt64 : Result := smallint(PInt64(vPointer)^);
|
|
|
|
+ varQword : Result := smallint(PQWord(vPointer)^);
|
|
varOleStr : Result := WStrToSmallInt(PPointer(vPointer)^);
|
|
varOleStr : Result := WStrToSmallInt(PPointer(vPointer)^);
|
|
varString : Result := LStrToSmallInt(PPointer(vPointer)^);
|
|
varString : Result := LStrToSmallInt(PPointer(vPointer)^);
|
|
else { other vtype }
|
|
else { other vtype }
|
|
@@ -164,40 +164,40 @@ begin
|
|
case vType and not varTypeMask of
|
|
case vType and not varTypeMask of
|
|
0: case vType of
|
|
0: case vType of
|
|
varEmpty : Result := 0;
|
|
varEmpty : Result := 0;
|
|
- varSmallInt : Result := vSmallInt;
|
|
|
|
|
|
+ varSmallInt : Result := shortint(vSmallInt);
|
|
varShortInt : Result := vShortInt;
|
|
varShortInt : Result := vShortInt;
|
|
- varInteger : Result := vInteger;
|
|
|
|
- varSingle : Result := Round(vSingle);
|
|
|
|
- varDouble : Result := Round(vDouble);
|
|
|
|
- varCurrency : Result := Round(vCurrency);
|
|
|
|
- varDate : Result := Round(vDate);
|
|
|
|
|
|
+ varInteger : Result := shortint(vInteger);
|
|
|
|
+ varSingle : Result := shortint(Round(vSingle));
|
|
|
|
+ varDouble : Result := shortint(Round(vDouble));
|
|
|
|
+ varCurrency : Result := shortint(Round(vCurrency));
|
|
|
|
+ varDate : Result := shortint(Round(vDate));
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varVariant : Result := VariantToShortInt(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToShortInt(PVarData(vPointer)^);
|
|
- varByte : Result := vByte;
|
|
|
|
- varWord : Result := vWord;
|
|
|
|
- varLongWord : Result := vLongWord;
|
|
|
|
- varInt64 : Result := vInt64;
|
|
|
|
- varQword : Result := vQWord;
|
|
|
|
|
|
+ varByte : Result := shortint(vByte);
|
|
|
|
+ varWord : Result := shortint(vWord);
|
|
|
|
+ varLongWord : Result := shortint(vLongWord);
|
|
|
|
+ varInt64 : Result := shortint(vInt64);
|
|
|
|
+ varQword : Result := shortint(vQWord);
|
|
varOleStr : Result := WStrToShortInt(vOleStr);
|
|
varOleStr : Result := WStrToShortInt(vOleStr);
|
|
varString : Result := LStrToShortInt(vString);
|
|
varString : Result := LStrToShortInt(vString);
|
|
else
|
|
else
|
|
VariantTypeMismatch(vType, varShortInt);
|
|
VariantTypeMismatch(vType, varShortInt);
|
|
end;
|
|
end;
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
- varSmallInt : Result := PSmallInt(vPointer)^;
|
|
|
|
|
|
+ varSmallInt : Result := shortint(PSmallInt(vPointer)^);
|
|
varShortInt : Result := PShortInt(vPointer)^;
|
|
varShortInt : Result := PShortInt(vPointer)^;
|
|
- varInteger : Result := PInteger(vPointer)^;
|
|
|
|
- varSingle : Result := Round(PSingle(vPointer)^);
|
|
|
|
- varDouble : Result := Round(PDouble(vPointer)^);
|
|
|
|
- varCurrency : Result := Round(PCurrency(vPointer)^);
|
|
|
|
- varDate : Result := Round(PDate(vPointer)^);
|
|
|
|
|
|
+ varInteger : Result := shortint(PInteger(vPointer)^);
|
|
|
|
+ varSingle : Result := shortint(Round(PSingle(vPointer)^));
|
|
|
|
+ varDouble : Result := shortint(Round(PDouble(vPointer)^));
|
|
|
|
+ varCurrency : Result := shortint(Round(PCurrency(vPointer)^));
|
|
|
|
+ varDate : Result := shortint(Round(PDate(vPointer)^));
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varVariant : Result := VariantToShortInt(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToShortInt(PVarData(vPointer)^);
|
|
- varByte : Result := PByte(vPointer)^;
|
|
|
|
- varWord : Result := PWord(vPointer)^;
|
|
|
|
- varLongWord : Result := PLongWord(vPointer)^;
|
|
|
|
- varInt64 : Result := PInt64(vPointer)^;
|
|
|
|
- varQword : Result := PQWord(vPointer)^;
|
|
|
|
|
|
+ varByte : Result := shortint(PByte(vPointer)^);
|
|
|
|
+ varWord : Result := shortint(PWord(vPointer)^);
|
|
|
|
+ varLongWord : Result := shortint(PLongWord(vPointer)^);
|
|
|
|
+ varInt64 : Result := shortint(PInt64(vPointer)^);
|
|
|
|
+ varQword : Result := shortint(PQWord(vPointer)^);
|
|
varOleStr : Result := WStrToShortInt(PPointer(vPointer)^);
|
|
varOleStr : Result := WStrToShortInt(PPointer(vPointer)^);
|
|
varString : Result := LStrToShortInt(PPointer(vPointer)^);
|
|
varString : Result := LStrToShortInt(PPointer(vPointer)^);
|
|
else { other vtype }
|
|
else { other vtype }
|
|
@@ -246,17 +246,17 @@ begin
|
|
varSmallInt : Result := vSmallInt;
|
|
varSmallInt : Result := vSmallInt;
|
|
varShortInt : Result := vShortInt;
|
|
varShortInt : Result := vShortInt;
|
|
varInteger : Result := vInteger;
|
|
varInteger : Result := vInteger;
|
|
- varSingle : Result := Round(vSingle);
|
|
|
|
- varDouble : Result := Round(vDouble);
|
|
|
|
- varCurrency : Result := Round(vCurrency);
|
|
|
|
- varDate : Result := Round(vDate);
|
|
|
|
|
|
+ varSingle : Result := longint(Round(vSingle));
|
|
|
|
+ varDouble : Result := longint(Round(vDouble));
|
|
|
|
+ varCurrency : Result := longint(Round(vCurrency));
|
|
|
|
+ varDate : Result := longint(Round(vDate));
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varVariant : Result := VariantToLongInt(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToLongInt(PVarData(vPointer)^);
|
|
varByte : Result := vByte;
|
|
varByte : Result := vByte;
|
|
varWord : Result := vWord;
|
|
varWord : Result := vWord;
|
|
- varLongWord : Result := vLongWord;
|
|
|
|
- varInt64 : Result := vInt64;
|
|
|
|
- varQword : Result := vQWord;
|
|
|
|
|
|
+ varLongWord : Result := longint(vLongWord);
|
|
|
|
+ varInt64 : Result := longint(vInt64);
|
|
|
|
+ varQword : Result := longint(vQWord);
|
|
varOleStr : Result := WStrToLongInt(vOleStr);
|
|
varOleStr : Result := WStrToLongInt(vOleStr);
|
|
varString : Result := LStrToLongInt(vString);
|
|
varString : Result := LStrToLongInt(vString);
|
|
else
|
|
else
|
|
@@ -266,17 +266,17 @@ begin
|
|
varSmallInt : Result := PSmallInt(vPointer)^;
|
|
varSmallInt : Result := PSmallInt(vPointer)^;
|
|
varShortInt : Result := PShortInt(vPointer)^;
|
|
varShortInt : Result := PShortInt(vPointer)^;
|
|
varInteger : Result := PInteger(vPointer)^;
|
|
varInteger : Result := PInteger(vPointer)^;
|
|
- varSingle : Result := Round(PSingle(vPointer)^);
|
|
|
|
- varDouble : Result := Round(PDouble(vPointer)^);
|
|
|
|
- varCurrency : Result := Round(PCurrency(vPointer)^);
|
|
|
|
- varDate : Result := Round(PDate(vPointer)^);
|
|
|
|
|
|
+ varSingle : Result := longint(Round(PSingle(vPointer)^));
|
|
|
|
+ varDouble : Result := longint(Round(PDouble(vPointer)^));
|
|
|
|
+ varCurrency : Result := longint(Round(PCurrency(vPointer)^));
|
|
|
|
+ varDate : Result := longint(Round(PDate(vPointer)^));
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varVariant : Result := VariantToLongInt(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToLongInt(PVarData(vPointer)^);
|
|
varByte : Result := PByte(vPointer)^;
|
|
varByte : Result := PByte(vPointer)^;
|
|
varWord : Result := PWord(vPointer)^;
|
|
varWord : Result := PWord(vPointer)^;
|
|
- varLongWord : Result := PLongWord(vPointer)^;
|
|
|
|
- varInt64 : Result := PInt64(vPointer)^;
|
|
|
|
- varQword : Result := PQWord(vPointer)^;
|
|
|
|
|
|
+ varLongWord : Result := longint(PLongWord(vPointer)^);
|
|
|
|
+ varInt64 : Result := longint(PInt64(vPointer)^);
|
|
|
|
+ varQword : Result := longint(PQWord(vPointer)^);
|
|
varOleStr : Result := WStrToLongInt(PPointer(vPointer)^);
|
|
varOleStr : Result := WStrToLongInt(PPointer(vPointer)^);
|
|
varString : Result := LStrToLongInt(PPointer(vPointer)^);
|
|
varString : Result := LStrToLongInt(PPointer(vPointer)^);
|
|
else { other vtype }
|
|
else { other vtype }
|
|
@@ -324,38 +324,38 @@ begin
|
|
varEmpty : Result := 0;
|
|
varEmpty : Result := 0;
|
|
varSmallInt : Result := vSmallInt;
|
|
varSmallInt : Result := vSmallInt;
|
|
varShortInt : Result := vShortInt;
|
|
varShortInt : Result := vShortInt;
|
|
- varInteger : Result := vInteger;
|
|
|
|
- varSingle : Result := Round(vSingle);
|
|
|
|
- varDouble : Result := Round(vDouble);
|
|
|
|
- varCurrency : Result := Round(vCurrency);
|
|
|
|
- varDate : Result := Round(vDate);
|
|
|
|
|
|
+ varInteger : Result := cardinal(vInteger);
|
|
|
|
+ varSingle : Result := cardinal(Round(vSingle));
|
|
|
|
+ varDouble : Result := cardinal(Round(vDouble));
|
|
|
|
+ varCurrency : Result := cardinal(Round(vCurrency));
|
|
|
|
+ varDate : Result := cardinal(Round(vDate));
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varVariant : Result := VariantToCardinal(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToCardinal(PVarData(vPointer)^);
|
|
varByte : Result := vByte;
|
|
varByte : Result := vByte;
|
|
varWord : Result := vWord;
|
|
varWord : Result := vWord;
|
|
varLongWord : Result := vLongWord;
|
|
varLongWord : Result := vLongWord;
|
|
- varInt64 : Result := vInt64;
|
|
|
|
- varQword : Result := vQWord;
|
|
|
|
|
|
+ varInt64 : Result := cardinal(vInt64);
|
|
|
|
+ varQword : Result := cardinal(vQWord);
|
|
varOleStr : Result := WStrToCardinal(vOleStr);
|
|
varOleStr : Result := WStrToCardinal(vOleStr);
|
|
varString : Result := LStrToCardinal(vString);
|
|
varString : Result := LStrToCardinal(vString);
|
|
else
|
|
else
|
|
VariantTypeMismatch(vType, varLongWord);
|
|
VariantTypeMismatch(vType, varLongWord);
|
|
end;
|
|
end;
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
- varSmallInt : Result := PSmallInt(vPointer)^;
|
|
|
|
- varShortInt : Result := PShortInt(vPointer)^;
|
|
|
|
- varInteger : Result := PInteger(vPointer)^;
|
|
|
|
- varSingle : Result := Round(PSingle(vPointer)^);
|
|
|
|
- varDouble : Result := Round(PDouble(vPointer)^);
|
|
|
|
- varCurrency : Result := Round(PCurrency(vPointer)^);
|
|
|
|
- varDate : Result := Round(PDate(vPointer)^);
|
|
|
|
|
|
+ varSmallInt : Result := cardinal(PSmallInt(vPointer)^);
|
|
|
|
+ varShortInt : Result := cardinal(PShortInt(vPointer)^);
|
|
|
|
+ varInteger : Result := cardinal(PInteger(vPointer)^);
|
|
|
|
+ varSingle : Result := cardinal(Round(PSingle(vPointer)^));
|
|
|
|
+ varDouble : Result := cardinal(Round(PDouble(vPointer)^));
|
|
|
|
+ varCurrency : Result := cardinal(Round(PCurrency(vPointer)^));
|
|
|
|
+ varDate : Result := cardinal(Round(PDate(vPointer)^));
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varVariant : Result := VariantToCardinal(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToCardinal(PVarData(vPointer)^);
|
|
varByte : Result := PByte(vPointer)^;
|
|
varByte : Result := PByte(vPointer)^;
|
|
varWord : Result := PWord(vPointer)^;
|
|
varWord : Result := PWord(vPointer)^;
|
|
varLongWord : Result := PLongWord(vPointer)^;
|
|
varLongWord : Result := PLongWord(vPointer)^;
|
|
- varInt64 : Result := PInt64(vPointer)^;
|
|
|
|
- varQword : Result := PQWord(vPointer)^;
|
|
|
|
|
|
+ varInt64 : Result := cardinal(PInt64(vPointer)^);
|
|
|
|
+ varQword : Result := cardinal(PQWord(vPointer)^);
|
|
varOleStr : Result := WStrToCardinal(PPointer(vPointer)^);
|
|
varOleStr : Result := WStrToCardinal(PPointer(vPointer)^);
|
|
varString : Result := LStrToCardinal(PPointer(vPointer)^);
|
|
varString : Result := LStrToCardinal(PPointer(vPointer)^);
|
|
else { other vtype }
|
|
else { other vtype }
|
|
@@ -660,7 +660,7 @@ begin
|
|
varWord : Result := vWord;
|
|
varWord : Result := vWord;
|
|
varLongWord : Result := vLongWord;
|
|
varLongWord : Result := vLongWord;
|
|
varInt64 : Result := vInt64;
|
|
varInt64 : Result := vInt64;
|
|
- varQword : Result := vQWord;
|
|
|
|
|
|
+ varQword : Result := currency(vQWord);
|
|
varOleStr : Result := WStrToCurrency(vOleStr);
|
|
varOleStr : Result := WStrToCurrency(vOleStr);
|
|
varString : Result := LStrToCurrency(vString);
|
|
varString : Result := LStrToCurrency(vString);
|
|
else
|
|
else
|
|
@@ -692,7 +692,7 @@ begin
|
|
varWord : Result := PWord(vPointer)^;
|
|
varWord : Result := PWord(vPointer)^;
|
|
varLongWord : Result := PLongWord(vPointer)^;
|
|
varLongWord : Result := PLongWord(vPointer)^;
|
|
varInt64 : Result := PInt64(vPointer)^;
|
|
varInt64 : Result := PInt64(vPointer)^;
|
|
- varQword : Result := PQWord(vPointer)^;
|
|
|
|
|
|
+ varQword : Result := currency(PQWord(vPointer)^);
|
|
varOleStr : Result := WStrToCurrency(PPointer(vPointer)^);
|
|
varOleStr : Result := WStrToCurrency(PPointer(vPointer)^);
|
|
varString : Result := LStrToCurrency(PPointer(vPointer)^);
|
|
varString : Result := LStrToCurrency(PPointer(vPointer)^);
|
|
else { other vtype }
|
|
else { other vtype }
|
|
@@ -894,40 +894,40 @@ begin
|
|
case vType and not varTypeMask of
|
|
case vType and not varTypeMask of
|
|
0: case vType of
|
|
0: case vType of
|
|
varEmpty : Result := 0;
|
|
varEmpty : Result := 0;
|
|
- varSmallInt : Result := vSmallInt;
|
|
|
|
- varShortInt : Result := vShortInt;
|
|
|
|
- varInteger : Result := vInteger;
|
|
|
|
- varSingle : Result := Round(vSingle);
|
|
|
|
- varDouble : Result := Round(vDouble);
|
|
|
|
- varCurrency : Result := Round(vCurrency);
|
|
|
|
- varDate : Result := Round(vDate);
|
|
|
|
|
|
+ varSmallInt : Result := byte(vSmallInt);
|
|
|
|
+ varShortInt : Result := byte(vShortInt);
|
|
|
|
+ varInteger : Result := byte(vInteger);
|
|
|
|
+ varSingle : Result := byte(Round(vSingle));
|
|
|
|
+ varDouble : Result := byte(Round(vDouble));
|
|
|
|
+ varCurrency : Result := byte(Round(vCurrency));
|
|
|
|
+ varDate : Result := byte(Round(vDate));
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varVariant : Result := VariantToByte(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToByte(PVarData(vPointer)^);
|
|
varByte : Result := vByte;
|
|
varByte : Result := vByte;
|
|
- varWord : Result := vWord;
|
|
|
|
- varLongWord : Result := vLongWord;
|
|
|
|
- varInt64 : Result := vInt64;
|
|
|
|
- varQword : Result := vQWord;
|
|
|
|
|
|
+ varWord : Result := byte(vWord);
|
|
|
|
+ varLongWord : Result := byte(vLongWord);
|
|
|
|
+ varInt64 : Result := byte(vInt64);
|
|
|
|
+ varQword : Result := byte(vQWord);
|
|
varOleStr : Result := WStrToByte(vOleStr);
|
|
varOleStr : Result := WStrToByte(vOleStr);
|
|
varString : Result := LStrToByte(vString);
|
|
varString : Result := LStrToByte(vString);
|
|
else
|
|
else
|
|
VariantTypeMismatch(vType, varByte);
|
|
VariantTypeMismatch(vType, varByte);
|
|
end;
|
|
end;
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
- varSmallInt : Result := PSmallInt(vPointer)^;
|
|
|
|
- varShortInt : Result := PShortInt(vPointer)^;
|
|
|
|
- varInteger : Result := PInteger(vPointer)^;
|
|
|
|
- varSingle : Result := Round(PSingle(vPointer)^);
|
|
|
|
- varDouble : Result := Round(PDouble(vPointer)^);
|
|
|
|
- varCurrency : Result := Round(PCurrency(vPointer)^);
|
|
|
|
- varDate : Result := Round(PDate(vPointer)^);
|
|
|
|
- varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
|
|
- varVariant : Result := VariantToByte(PVarData(vPointer)^);
|
|
|
|
|
|
+ varSmallInt : Result := byte(PSmallInt(vPointer)^);
|
|
|
|
+ varShortInt : Result := byte(PShortInt(vPointer)^);
|
|
|
|
+ varInteger : Result := byte(PInteger(vPointer)^);
|
|
|
|
+ varSingle : Result := byte(Round(PSingle(vPointer)^));
|
|
|
|
+ varDouble : Result := byte(Round(PDouble(vPointer)^));
|
|
|
|
+ varCurrency : Result := byte(Round(PCurrency(vPointer)^));
|
|
|
|
+ varDate : Result := byte(Round(PDate(vPointer)^));
|
|
|
|
+ varBoolean : Result := byte(SmallInt(PWordBool(vPointer)^));
|
|
|
|
+ varVariant : Result := byte(VariantToByte(PVarData(vPointer)^));
|
|
varByte : Result := PByte(vPointer)^;
|
|
varByte : Result := PByte(vPointer)^;
|
|
- varWord : Result := PWord(vPointer)^;
|
|
|
|
- varLongWord : Result := PLongWord(vPointer)^;
|
|
|
|
- varInt64 : Result := PInt64(vPointer)^;
|
|
|
|
- varQword : Result := PQWord(vPointer)^;
|
|
|
|
|
|
+ varWord : Result := byte(PWord(vPointer)^);
|
|
|
|
+ varLongWord : Result := byte(PLongWord(vPointer)^);
|
|
|
|
+ varInt64 : Result := byte(PInt64(vPointer)^);
|
|
|
|
+ varQword : Result := byte(PQWord(vPointer)^);
|
|
varOleStr : Result := WStrToByte(PPointer(vPointer)^);
|
|
varOleStr : Result := WStrToByte(PPointer(vPointer)^);
|
|
varString : Result := LStrToByte(PPointer(vPointer)^);
|
|
varString : Result := LStrToByte(PPointer(vPointer)^);
|
|
else { other vtype }
|
|
else { other vtype }
|
|
@@ -986,7 +986,7 @@ begin
|
|
varWord : Result := vWord;
|
|
varWord : Result := vWord;
|
|
varLongWord : Result := vLongWord;
|
|
varLongWord : Result := vLongWord;
|
|
varInt64 : Result := vInt64;
|
|
varInt64 : Result := vInt64;
|
|
- varQword : Result := vQWord;
|
|
|
|
|
|
+ varQword : Result := int64(vQWord);
|
|
varOleStr : Result := WStrToInt64(vOleStr);
|
|
varOleStr : Result := WStrToInt64(vOleStr);
|
|
varString : Result := LStrToInt64(vString);
|
|
varString : Result := LStrToInt64(vString);
|
|
else
|
|
else
|
|
@@ -1052,19 +1052,19 @@ begin
|
|
case vType and not varTypeMask of
|
|
case vType and not varTypeMask of
|
|
0: case vType of
|
|
0: case vType of
|
|
varEmpty : Result := 0;
|
|
varEmpty : Result := 0;
|
|
- varSmallInt : Result := vSmallInt;
|
|
|
|
- varShortInt : Result := vShortInt;
|
|
|
|
- varInteger : Result := vInteger;
|
|
|
|
- varSingle : Result := Round(vSingle);
|
|
|
|
- varDouble : Result := Round(vDouble);
|
|
|
|
- varCurrency : Result := Round(vCurrency);
|
|
|
|
- varDate : Result := Round(vDate);
|
|
|
|
|
|
+ varSmallInt : Result := qword(vSmallInt);
|
|
|
|
+ varShortInt : Result := qword(vShortInt);
|
|
|
|
+ varInteger : Result := qword(vInteger);
|
|
|
|
+ varSingle : Result := qword(Round(vSingle));
|
|
|
|
+ varDouble : Result := qword(Round(vDouble));
|
|
|
|
+ varCurrency : Result := qword(Round(vCurrency));
|
|
|
|
+ varDate : Result := qword(Round(vDate));
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varBoolean : Result := SmallInt(vBoolean);
|
|
varVariant : Result := VariantToQWord(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToQWord(PVarData(vPointer)^);
|
|
varByte : Result := vByte;
|
|
varByte : Result := vByte;
|
|
varWord : Result := vWord;
|
|
varWord : Result := vWord;
|
|
varLongWord : Result := vLongWord;
|
|
varLongWord : Result := vLongWord;
|
|
- varInt64 : Result := vInt64;
|
|
|
|
|
|
+ varInt64 : Result := qword(vInt64);
|
|
varQword : Result := vQWord;
|
|
varQword : Result := vQWord;
|
|
varOleStr : Result := WStrToQWord(vOleStr);
|
|
varOleStr : Result := WStrToQWord(vOleStr);
|
|
varString : Result := LStrToQWord(vString);
|
|
varString : Result := LStrToQWord(vString);
|
|
@@ -1072,19 +1072,19 @@ begin
|
|
VariantTypeMismatch(vType, varQWord);
|
|
VariantTypeMismatch(vType, varQWord);
|
|
end;
|
|
end;
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
varByRef: if Assigned(vPointer) then case vType of
|
|
- varSmallInt : Result := PSmallInt(vPointer)^;
|
|
|
|
- varShortInt : Result := PShortInt(vPointer)^;
|
|
|
|
- varInteger : Result := PInteger(vPointer)^;
|
|
|
|
- varSingle : Result := Round(PSingle(vPointer)^);
|
|
|
|
- varDouble : Result := Round(PDouble(vPointer)^);
|
|
|
|
- varCurrency : Result := Round(PCurrency(vPointer)^);
|
|
|
|
- varDate : Result := Round(PDate(vPointer)^);
|
|
|
|
|
|
+ varSmallInt : Result := qword(PSmallInt(vPointer)^);
|
|
|
|
+ varShortInt : Result := qword(PShortInt(vPointer)^);
|
|
|
|
+ varInteger : Result := qword(PInteger(vPointer)^);
|
|
|
|
+ varSingle : Result := qword(Round(PSingle(vPointer)^));
|
|
|
|
+ varDouble : Result := qword(Round(PDouble(vPointer)^));
|
|
|
|
+ varCurrency : Result := qword(Round(PCurrency(vPointer)^));
|
|
|
|
+ varDate : Result := qword(Round(PDate(vPointer)^));
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varBoolean : Result := SmallInt(PWordBool(vPointer)^);
|
|
varVariant : Result := VariantToQWord(PVarData(vPointer)^);
|
|
varVariant : Result := VariantToQWord(PVarData(vPointer)^);
|
|
varByte : Result := PByte(vPointer)^;
|
|
varByte : Result := PByte(vPointer)^;
|
|
varWord : Result := PWord(vPointer)^;
|
|
varWord : Result := PWord(vPointer)^;
|
|
varLongWord : Result := PLongWord(vPointer)^;
|
|
varLongWord : Result := PLongWord(vPointer)^;
|
|
- varInt64 : Result := PInt64(vPointer)^;
|
|
|
|
|
|
+ varInt64 : Result := qword(PInt64(vPointer)^);
|
|
varQword : Result := PQWord(vPointer)^;
|
|
varQword : Result := PQWord(vPointer)^;
|
|
varOleStr : Result := WStrToQWord(PPointer(vPointer)^);
|
|
varOleStr : Result := WStrToQWord(PPointer(vPointer)^);
|
|
varString : Result := LStrToQWord(PPointer(vPointer)^);
|
|
varString : Result := LStrToQWord(PPointer(vPointer)^);
|