Thema: Delphi Excel in OLE Container

Einzelnen Beitrag anzeigen

michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#1

Excel in OLE Container

  Alt 29. Nov 2008, 09:11
Guten morgen zusammen,

ich habe folgendes Problem:

Es wird eine Excel Datei in einen OLEContainer geladen und in unserer Oberfläche Angezeigt.

mit folgendem Quellcode verden die Symbolleisten von Excel ausgeblendet.

Delphi-Quellcode:
{============================================================================
  Methode : FormatExcelformular
  ---------------------------------------------------------------------------
  Zweck :  Ausblenden der Menueleiste sowie der Eingabeleiste von Excel,
  ---------------------------------------------------------------------------
  Bemerkung: Beim schließen von Excel Grundeinstellung wieder
            hergestellen
=============================================================================}

procedure FormatExcelFormular(aExcel : OleVariant); Var
   i : Integer;
Begin
  Setlength(FARRCommandBars,0);
  aExcel.CommandBars['Worksheet Menu Bar'].Enabled := TRUE;
  aExcel.DisplayFormulaBar := FALSE;
  for i := 2 to aExcel.CommandBars.Count do
  begin
    if aExcel.CommandBars.Item[i].Visible then
    begin
      Setlength(FARRCommandBars, 1 + Length(FARRCommandBars));
      FARRCommandBars[High(FARRCommandBars)] := aExcel.CommandBars.Item[i].Name; // merken der ursprünglichen Einstellungen
      aExcel.CommandBars[FARRCommandBars[high(FARRCommandBars)]].Enabled := TRUE;
      aExcel.CommandBars[FARRCommandBars[high(FARRCommandBars)]].Visible := FALSE;
    end;
  end;
end;

Meine Versuche mit dem nachfolgenden Quelltext die Einstellungen von Excel wieder herzustellen scheitern komplett und ich
kann mir nicht erklären woran das liegt.
Delphi-Quellcode:
{============================================================================
  Methode : ResetExcelFormular
  ---------------------------------------------------------------------------
  Zweck :  Grundeinstellung von Excel wieder herstellen
  ---------------------------------------------------------------------------
=============================================================================}

procedure ResetExcelFormular(aExcel: OleVariant); Var
   i : Integer;
Begin
  aExcel.CommandBars['Worksheet Menu Bar'].Enabled := TRUE;
  aExcel.DisplayFormulaBar := TRUE;
  for i := low(FARRCommandBars) to high(FARRCommandBars)do
  begin
    aExcel.CommandBars[FARRCommandBars[i]].Visible := TRUE; // hier sollten die Symbolleiten doch sichtbar sein oder?
    aExcel.CommandBars[FARRCommandBars[i]].Enabled := TRUE;
  end;
  Setlength(FARRCommandBars,0);
  FARRCommandBars:=NIL;
end;

Weiß vieleicht jemand was ich da falsch mache??
Vielen Dank bereits jetzt für die Tipps oder Antworten

Gruß

Michael
Michael Cohrs
  Mit Zitat antworten Zitat