Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MS Word / Excel in Form einbetten (https://www.delphipraxis.net/159951-ms-word-excel-form-einbetten.html)

QStorm 20. Apr 2011 08:33

MS Word / Excel in Form einbetten
 
Hi,

Vorab sorry falls die Frage schon einige Male gefallen ist, aber ich habe leider weder im Forum noch bei Google eine passende Antwort bekommen.

Ich möchte MS Word und Excel Dokumente in einem VCL Formular anzeigen. Ich habe es bereits über den TWebBrowser versucht, dieser ruft jedoch nur den "Speichern unter / öffnen" Dialog auf und der startet direkt Word / Excel. Kann man da vielleicht etwas über Einstellungen machen?

Am liebsten wäre es mir, wenn ich Word / Excel (inklusive Menü) in mein Formular einbetten könnte.

Hintergrund: Der Kunde soll die Dokumente direkt in meiner Anwendung lesen, bearbeiten und speichern können.

Evtl. kennt jemand eine Komponente die das unterstützt. Sie kann ruhig auch Geld kosten. ;)

P.S.: Ich habe mich schon mit WPTools und TRichView beschäftigt. Beide haben mich jedoch enttäuscht. Daher möchte ich nun direkt die Office Produkte benutzen. Kennt jemand vielleicht eine alternative zu den beiden Komponenten?

Vielen Dank im Voraus.
QStorm

Bernhard Geyer 20. Apr 2011 08:46

AW: MS Word / Excel in Form einbetten
 
Zitat:

Zitat von QStorm (Beitrag 1096138)
Ich möchte MS Word und Excel Dokumente in einem VCL Formular anzeigen. Ich habe es bereits über den TWebBrowser versucht, dieser ruft jedoch nur den "Speichern unter / öffnen" Dialog auf und der startet direkt Word / Excel. Kann man da vielleicht etwas über Einstellungen machen?

Kann man, sollte man aber nicht.

Die alternative Einbeddung wäre über einen OleContainer. (TOleContainer).

QStorm 21. Apr 2011 10:20

AW: MS Word / Excel in Form einbetten
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1096139)
Die alternative Einbeddung wäre über einen OleContainer. (TOleContainer).

Der TOleContainer funktioniert ganz gut. Zwei Punkte sind noch offen.

1. Wie kann ich den OleContainer direkt beim öffnen des Dokuments in den Editier-Modus versetzen (manuell über: Rechte Maustaste auf den Container -> Öffnen oder Bearbeiten)? Sprich er soll nicht das Preview anzeigen sondern gleich das Dokument in der entsprechenden Anwendung öffnen.

2. Bei Öffnen von Office Dokumenten (Excel, Word) werden die Office Ribbons über den eigentlichen OleContainer angezeigt. Leider verdecken sie so einige meiner Widgets. Zudem gehen die Ribbons über die gesamte Fentserbreite (egal wie groß der OleCOntainer ist). Kann man die Ribbons irgendwie in den TOleContainer verschieben? Ansonsten wäre der OleContainer bei Office Dokumenten für mich unbrauchbar.

Grüße
QStorm

QStorm 21. Apr 2011 10:23

AW: MS Word / Excel in Form einbetten
 
Ein Punkt habe ich noch vergessen:

Leider habe ich es bisher nicht hinbekommen, geöffnete Office Dokumente zu speichern (der Speichern-Button ist deaktiviert). Kann man in einem TOleContainer editierte Dokumente irgendwie speichern? Im besten Fall direkt über die specihern-Funktionalität der eingebetten Anwendung (Office z.B.)

QStorm 21. Apr 2011 10:32

AW: MS Word / Excel in Form einbetten
 
Und noch etwas ist mir aufgefallen. *.doc Dateien machen keine Probleme. Wenn ich jedoch *.docx Dokumente öffne und in den Editier-Modus wechsel kommt die Meldung:

"Objekt ist nicht mit dem Server verbunden."

Kann mir jemand sagen woran das liegt?

QStorm 21. Apr 2011 11:38

AW: MS Word / Excel in Form einbetten
 
Zitat:

Zitat von QStorm (Beitrag 1096350)
1. Wie kann ich den OleContainer direkt beim öffnen des Dokuments in den Editier-Modus versetzen (manuell über: Rechte Maustaste auf den Container -> Öffnen oder Bearbeiten)? Sprich er soll nicht das Preview anzeigen sondern gleich das Dokument in der entsprechenden Anwendung öffnen.

Den 1. Punkt habe ich bereits hiermit gelöst:

Delphi-Quellcode:
OleContainerExcel.DoVerb(ovShow);

soulies 21. Apr 2011 11:56

AW: MS Word / Excel in Form einbetten
 
hoi,

Zitat:

1. Wie kann ich den OleContainer direkt beim öffnen des Dokuments in den Editier-Modus versetzen
z.B. indem Du im OI von Tolecontainer den Wert von AutoActivate auf aaGetFocus stellst und bei Programmstart der Container den Fokus erhält

oder via Code

indem Du den entsprechenden Parameter verwendest für OleContainer.doVerb( xxx )

Zitat:

Bei Öffnen von Office Dokumenten (Excel, Word) werden die Office Ribbons über den eigentlichen OleContainer angezeigt
Kannst Du nicht den Container unter die Ribbons verschieben?


Zitat:

Leider habe ich es bisher nicht hinbekommen, geöffnete Office Dokumente zu speichern
Das ist standardmäßig deaktiviert.

Du kannst speichern --> über F12 den Dialog aufrufen oder fängst entsprechend den Key ab und führst deine eigene Prozedur aus.

cya

QStorm 21. Apr 2011 16:11

AW: MS Word / Excel in Form einbetten
 
Zunächst erstmal vielen Dank für die bisherigen Antworten.

Zitat:

Zitat von soulies (Beitrag 1096367)
hoi,
Zitat:

Bei Öffnen von Office Dokumenten (Excel, Word) werden die Office Ribbons über den eigentlichen OleContainer angezeigt
Kannst Du nicht den Container unter die Ribbons verschieben?

Das geht bei meiner Anwendung leider nicht. Meine Anwendung ist dem Explorer ähnlich. Im linken Bereich gibt es eine Liste von Dokumenten + verschiedene controls. Im rechten Bereich soll der OleContainer das ausgewählte Dokument anzeigen. Über diesen "Explorer" gibt es zudem Menüs. Leider verdecken die Ribbons sowohl das Menü als auch ein Teil der Liste.


Zitat:

Zitat von soulies (Beitrag 1096367)
hoi,
Zitat:

Leider habe ich es bisher nicht hinbekommen, geöffnete Office Dokumente zu speichern
Das ist standardmäßig deaktiviert.

Du kannst speichern --> über F12 den Dialog aufrufen oder fängst entsprechend den Key ab und führst deine eigene Prozedur aus.

cya

Kann man das irgendwie aktivieren?

Kann man den über F12 erreichbaren Dialog auch im Code aufrufen? z.B. Wenn man ein eigener Button gedrückt wird. Ich meine keinen eigenen SaveDialog sondern den von der im OleContainer angezeigten Anwendung (z.B. Word oder Excel).

QStorm 21. Apr 2011 16:17

AW: MS Word / Excel in Form einbetten
 
Ich sehe gerade das die Ribbons bzw. die Toolbars selbst die eigenen Scrollbars überdecken. Ist das vielleicht ein Bug im OleContainer. Ich kann mir schwer vorstellen, dass das so gewollt ist.

QStorm 23. Apr 2011 08:50

AW: MS Word / Excel in Form einbetten
 
Hat niemand eine Idee?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 Uhr.
Seite 1 von 2  1 2      

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