Hi,
In FlexCel 6.24 we indeed added an overload for setcellvalue taking a TDateTime, for performance reasons. (If we don't define this overload as in 6.23, you can still enter a TDateTime, but it will be converted to a TCellValue and then the TCellValue entered into the cell).
But in most cases, this new overload shouldn't matter. If you do:
program Project59;
{$APPTYPE CONSOLE}
{$R *.res}
uses
DateUtils,
SysUtils,
VCL.FlexCel.Core,
FlexCel.XlsAdapter;
var
date: TDateTime;
dbl: double;
v: variant;
fl: single;
xls: TExcelFile;
begin
date :=EncodeDateTime(1900, 1, 1, 10, 20, 0, 0);
dbl := double(date);
v := date;
fl := dbl;
xls := TXlsFile.Create(1, true);
try
xls.SetCellValue(1, 1, date, -1);
xls.SetCellValue(1, 1, dbl, -1);
xls.SetCellValue(1, 1, v, -1);
// xls.SetCellValue(1, 1, fl, -1);
finally
xls.Free;
end;
end.
That should compile fine. But if you uncomment the line:
xls.SetCellValue(1, 1, fl, -1);
Then indeed you will get an ambiguous error, because for some reason Delphi doesn't know into what to convert a float.
So I wonder, what is the type of the 3rd parameter to SetCellValue in your code? Is it a float, a double, or something else?