Excel in OLE Container
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 |
Re: Excel in OLE Container
Hallo michael.cohrs,
Versuch mal mit:
Delphi-Quellcode:
die Menüleiste zurückzusetzen.
aExcel.CommandBars['Worksheet Menu Bar'].Reset;
Bis bald Chemiker |
Re: Excel in OLE Container
Vielen Dank für die schnelle Antwort,
werden dadurch denn auch die Ursprünglichen Einstellungen des Anwenders in Excel wieder hergestellt? Das Problem ist ja das jeder Anwender so seine eigenen Einstellungen in Excel vornehmen kann und ich möchte diese nach Beenden meiner Applikation wieder herstellen, so wie der Anwender es sich eingerichtet hat Viele Grüße Michael |
Re: Excel in OLE Container
Hallo michael. Cohrs,
Zitat:
Ob, es eine einfache Möglichkeit Excel Anwenderspezifisch zurückzusetzen ist mir jetzt nicht bekannt. Ein Weg wehre vor jeder Änderung sich den Ausgangszustand zu merken und zum Schluss in den alten Zustand zurückzusetzen. Edit: Was mir noch einfällt eigene Schaltflächen kann man noch das Argument: Temporary:= TRUE mitgeben, dann bleiben die Schaltflächen nur so lange erhalten wie die Applikation läuft. Bis bald Chemiker |
Re: Excel in OLE Container
Hallo Chemiker,
das ist ja genau das was ich mit obigem Quelltext versuche, in dem Array FARRCommandBars merke ich mir ja die ursprünglichen Einstellungen Viele Grüße Michael |
Re: Excel in OLE Container
Hallo michael. Cohrs,
Ausblenden:
Delphi-Quellcode:
Einblenden:
aExcel.CommandBars['Worksheet Menu Bar'].Enabled := FALSE;
aExcel.DisplayFormulaBar := FALSE;
Delphi-Quellcode:
Edit: Wenn es nur um das ein- und Ausblenden geht braucht man nicht mehr anzugeben.
aExcel.CommandBars['Worksheet Menu Bar'].Enabled := TRUE;
aExcel.DisplayFormulaBar := TRUE; Bis bald Chemiker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz