Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

Excel OLE, Version 2007 erkennen

  Alt 23. Jul 2009, 11:39
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;
Heiko
  Mit Zitat antworten Zitat