Hallo #,
folgender Code soll erkennen, ob es sch beim aktuellen Excel um 2007
oder kleiner handelt.
Das StringGrid wird bei <2007 auf die maximal erlaubten 256 Spalten "reduziert".
Problem ... es klappt nicht ! ;(
sVersion:= XLApp.Version;
sVersion ist '9.0' (Excel 2000)
TryStrToFloat(sVersion, dVersion) schläft fehl ???
dVersion:= XLApp.Version;
dVersion liefert 90 (statt 9.0).
Was mache ich falsch ?
Gibt es vielleicht einen Befehl (MaxColumnCount) oder so,
damit ich mir das ganze Gewurschtel hier sparen kann ?
Danke
Heiko
Delphi-Quellcode:
var
XLApp : OLEVariant;
sVersion : OleVariant;
dVersion : Double;
begin
Result:= False;
try
// Create Excel-OLE Object
Result := False;
XLApp := CreateOleObject('
Excel.Application');
try
{ until Excel2007 (version 12) we have maximal 256 columns }
if AGrid.ColCount>256
then
begin
iMaxCols:= 256;
end
else
begin
iMaxCols:= AGrid.ColCount;
end;
try
sVersion:= XLApp.Version;
dVersion:= sVersion;
if TryStrToFloat(sVersion, dVersion)
then
begin
if dVersion>=12
then
begin
iMaxCols:= AGrid.ColCount;
end;
end;
except
end;