More of an observation than an answer, but 1e300 is possibly too big to handle, also, is it worth casting the variant values - comparing date or string to a number may be ambiguous.


----- Original Message ----- From: "Arno Garrels" <[EMAIL PROTECTED]>
To: "'Borland's Delphi Discussion List'" <[email protected]>
Sent: Sunday, April 17, 2005 2:31 PM
Subject: Variant Overflow



Hello,

procedure TForm1.Button1Click(Sender: TObject);
var
   d, v : Variant;
begin
   d := '19.1.1999';
   v := 1e300;
   if d < v then
       v := d;
end;


This simple ButtonClick routine works fine, however in a component (FastReport v.254) statement "if d < v then v := d" with the same values raises an EVariantOverflowError.


Message: �berlauf bei der Konvertierung einer Variante vom Typ (Double) in Typ (Date).


And that's on the stack:


main thread ($458): 00434bff A.exe Variants VarOverflowError 00434f05 A.exe Variants VarResultCheck 00437b47 A.exe Variants VarToDateViaOS 00437cd0 A.exe Variants @VarToDate 0043aebb A.exe Variants VarCompareSimple 0043b36a A.exe Variants VarCompare 0043ddbd A.exe Variants @VarCmpLT 005d1910 A.exe FR_Class 6350 TfrBand.DoAggregate //if d < v then v := d;


It happens in D7, D4 is working fine.


Any idea what might be going on here?


Thanks in advance,


Arno Garrels



_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi



_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to