* added missing varString,varOlestr to ordinals

git-svn-id: trunk@2340 -
This commit is contained in:
peter 2006-01-25 22:05:31 +00:00
parent 01808d825d
commit 6c905f6266

View File

@ -56,7 +56,8 @@ end;
---------------------------------------------------------------------}
Function VariantToSmallInt(Const VargSrc : TVarData) : SmallInt;
var
l : longint;
begin
With VargSrc do
Case (VType and VarTypeMask) of
@ -67,20 +68,32 @@ begin
VarDouble : Result:=Round(VDouble);
VarCurrency: Result:=Round(VCurrency);
VarDate : Result:=Round(VDate);
VarOleStr : Result:=StrToInt(WideCharToString(vOleStr));
VarBoolean : Result:=SmallInt(VBoolean);
VarByte : Result:=VByte;
VarWord : Result:=VWord;
VarLongWord : Result:=VLongWord;
VarInt64 : Result:=VInt64;
VarQword : Result:=VQWord;
VarOleStr :
begin
if not(TryStrToInt(WideCharToString(vOleStr),l)) then
VariantTypeMismatch;
result:=l;
end;
VarString :
begin
if not(TryStrToInt(ansistring(vString),l)) then
VariantTypeMismatch;
result:=l;
end;
else
VariantTypeMismatch;
end;
end;
Function VariantToShortInt(Const VargSrc : TVarData) : ShortInt;
var
l : longint;
begin
With VargSrc do
Case (VType and VarTypeMask) of
@ -91,13 +104,24 @@ begin
VarDouble : Result:=Round(VDouble);
VarCurrency: Result:=Round(VCurrency);
VarDate : Result:=Round(VDate);
VarOleStr : Result:=StrToInt(WideCharToString(vOleStr));
VarBoolean : Result:=SmallInt(VBoolean);
VarByte : Result:=VByte;
VarWord : Result:=VWord;
VarLongWord : Result:=VLongWord;
VarInt64 : Result:=VInt64;
VarQword : Result:=VQWord;
VarOleStr :
begin
if not(TryStrToInt(WideCharToString(vOleStr),l)) then
VariantTypeMismatch;
result:=l;
end;
VarString :
begin
if not(TryStrToInt(ansistring(vString),l)) then
VariantTypeMismatch;
result:=l;
end;
else
VariantTypeMismatch;
end;
@ -191,7 +215,6 @@ Function VariantToSingle(Const VargSrc : TVarData) : Single;
if not(TryStrToFloat(ansistring(vString),Result)) then
VariantTypeMismatch;
end;
VarBoolean : Result:=Longint(VBoolean);
VarByte : Result:=VByte;
VarWord : Result:=VWord;
@ -220,6 +243,11 @@ Function VariantToDouble(Const VargSrc : TVarData) : Double;
if not(TryStrToFloat(WideCharToString(vOleStr),Result)) then
VariantTypeMismatch;
end;
VarString :
begin
if not(TryStrToFloat(ansistring(vString),Result)) then
VariantTypeMismatch;
end;
VarBoolean : Result:=Longint(VBoolean);
VarByte : Result:=VByte;
VarWord : Result:=VWord;
@ -324,7 +352,8 @@ begin
end;
Function VariantToByte(Const VargSrc : TVarData) : Byte;
var
l : longint;
begin
Try
With VargSrc do
@ -336,13 +365,24 @@ begin
VarDouble : Result:=Round(VDouble);
VarCurrency: Result:=Round(VCurrency);
VarDate : Result:=Round(VDate);
VarOleStr : NoWideStrings;
VarBoolean : Result:=Longint(VBoolean);
VarByte : Result:=VByte;
VarWord : Result:=VWord;
VarLongWord : Result:=VLongWord;
VarInt64 : Result:=Vint64;
VarQword : Result:=VQWord;
VarOleStr :
begin
if not(TryStrToInt(WideCharToString(vOleStr),l)) then
VariantTypeMismatch;
result:=l;
end;
VarString :
begin
if not(TryStrToInt(ansistring(vString),l)) then
VariantTypeMismatch;
result:=l;
end;
else
VariantTypeMismatch;
end;
@ -367,13 +407,18 @@ begin
VarDouble : Result:=Trunc(VDouble);
VarCurrency: Result:=Trunc(VCurrency);
VarDate : Result:=Trunc(VDate);
VarOleStr : NoWideStrings;
VarBoolean : Result:=Longint(VBoolean);
VarByte : Result:=VByte;
VarWord : Result:=VWord;
VarLongWord : Result:=VLongWord;
VarInt64 : Result:=VInt64;
VarQword : Result:=VQWord;
VarOleStr :
if not(TryStrToInt64(WideCharToString(vOleStr),Result)) then
VariantTypeMismatch;
VarString :
if not(TryStrToInt64(ansistring(vString),Result)) then
VariantTypeMismatch;
else
VariantTypeMismatch;
end;
@ -386,7 +431,8 @@ begin
end;
Function VariantToQWord(Const VargSrc : TVarData) : QWord;
var
l : int64;
begin
Try
With VargSrc do
@ -398,13 +444,24 @@ begin
VarDouble : Result:=Trunc(VDouble);
VarCurrency: Result:=Trunc(VCurrency);
VarDate : Result:=Trunc(VDate);
VarOleStr : NoWideStrings;
VarBoolean : Result:=Longint(VBoolean);
VarByte : Result:=VByte;
VarWord : Result:=VWord;
VarLongWord : Result:=VLongWord;
VarInt64 : Result:=VInt64;
VarQword : Result:=VQWord;
VarOleStr :
begin
if not(TryStrToInt64(WideCharToString(vOleStr),l)) then
VariantTypeMismatch;
result:=l;
end;
VarString :
begin
if not(TryStrToInt64(ansistring(vString),l)) then
VariantTypeMismatch;
result:=l;
end;
else
VariantTypeMismatch;
end;