Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi OLE Objekt erstellen, welches in MS Word o.ä. verwendet werden kann (https://www.delphipraxis.net/155423-delphi-ole-objekt-erstellen-welches-ms-word-o-ae-verwendet-werden-kann.html)

MiniMatrix 22. Okt 2010 13:48

Delphi OLE Objekt erstellen, welches in MS Word o.ä. verwendet werden kann
 
Hi

Ich habe scheinbar ein Verständnis Problem und bitte um Eure Hilfe.

Ich möchte gerne mit Delphi 2006 etwas erstellen, was ich dann z.B. in MS Word verwenden kann. Wenn man dort unter "Einfügen - Objekt" den dann angezeigten Dialog betrachtet, dann soll dieses zu erstellende Objekt auf dem Tab Reiter "Neu erstellen" und dort in der Liste "Objekttyp" aufgeführt werden (MS Word 2003).
Was habe ich bisher programmiert, was nicht funktioniert hat:
1.) Ich habe eine ActiveX (OCX) mit Delphi erstellt, welches ein ActiveForm beinhaltete.
2.) Ich habe eine ActiveX (OCX) mit Delphi erstellt, welches aus einem Delphi Control ein ActiveX Steuerelement gemacht hat.

Beides taucht nicht in dieser Liste auf (kann aber über die Steuerelement Toolbox integriert werden).
Was muß ich tun, damit ich etwas mit Delphi 2006 erzeuge was genau hier angezeigt wird? Dieses Ding soll dort, wie z.B. das Objekt "Bitmap" eingefügt werden und auch dort drin bleiben, wenn das Dokument gespeichert wird.

Für Hinweise und Links auf entsprechende Webseiten, die auf genau dieses Problem eingehen, wäre ich sehr dankbar.
Ist so etwas überhaupt mit Delphi erstellbar? Ist es ein "Active-Server-Objekt" oder ein "Automatisierungsobjekt" oder ein "COM-Objekt", oder ... ?

Ich wäre auch für ein "wenig" Backgroundwissen zu diesem Thema dankbar (möglichst auf Deutsch).

shmia 22. Okt 2010 15:21

AW: Delphi OLE Objekt erstellen, welches in MS Word o.ä. verwendet werden kann
 
Das wäre in der Borland-Sprache ein "ActiveX-Element".
Ein richtiges OLE Objekt muss eine ganze Latte von Interfaces implementieren:
Delphi-Quellcode:
TActiveXControl = class(TAutoObject,
    IConnectionPointContainer,
    IDataObject,
    IObjectSafety,
    IOleControl,
    IOleInPlaceActiveObject,
    IOleInPlaceObject,
    IOleObject,
    IPerPropertyBrowsing,
    IPersistPropertyBag,
    IPersistStorage,
    IPersistStreamInit,
    IQuickActivate,
    ISimpleFrameSite,
    ISpecifyPropertyPages,
    IViewObject,
    IViewObject2)
Du musst also von TActiveXControl ableiten.
Aber mach' dich schon mal auf Probleme gefasst.

MiniMatrix 24. Okt 2010 14:17

AW: Delphi OLE Objekt erstellen, welches in MS Word o.ä. verwendet werden kann
 
Danke für die schnelle Antwort "shmia",

aber eine ActiveX-Element hatte ich ja schon ausprobiert und dieses wird nur als "normales" ActiveX Steuerelement in MS Word verwendet. Dort kann man es nicht über den beschriebenen/gewünschten Weg einbinden - zumindest ist es mir nicht gelungen.

Ich möchte nochmals verdeutlichen, dass ich das OCX nicht über "Aus Datei erstellen" integrieren möchte, sonders dass es sich wie ein "Excel Dokument" in ein Word Dokument einbetten lassen soll.

Das dazu warscheinlich eine komplette Anwendung geschrieben werden muß, so wie Excel halt, ist mir schon klar. Aber mir ist überhaupt nicht klar, wie ich das dann als OLE Objekt anderen Anwendungen zur Verfügung stellen kann.

Ich denke, es ist warscheinlich eher ein OLE-Server. Aber wie erzeugt man so etwas mit Hilfe von Delphi 2006 Architekt. Es muß doch hierzu eine Dokumentation oder Beispielanwendung geben, oder so was ähnliches.

Was mir halt wichtig wäre, dass sich meine Anwendung direkt in die andere Anwendung integriert und dort ggf. sogar meine eigenen Menüpunkte verwenden lassen. Und wenn dann das Word Dokument gespeichert und geschlossen wird, dass dann meine Anwendung quasi in dem Dokument selber ebenfalls enthalten ist, so dass man dieses Dokument auch an andere weitergeben kann.

Ich denke, es fehlt mir hier grundsätzliches Basiswissen.

Gibt es im Rahmen des Jedi Projektes eventuell Dinge, die mich hier weiter bringen?

MiniMatrix 26. Okt 2010 13:06

AW: Delphi OLE Objekt erstellen, welches in MS Word o.ä. verwendet werden kann
 
@shmia:

Hm, wenn Du Recht hast, dann verstehe ich nicht, warum ich dann, wenn ich z.B. von TPanel ableite, dieses nicht in Word angezeigt bekomme, sondern nur ein Symbol und darunter der Name des OCX.
Erwartet hätte ich aber, dass ich ein leeres Panel angezeigt bekomme.
Was muß ich tun, damit dieses Kontrol dort angezeigt wird? Muß ich ggf. Implementierungen von Schnittstellenmethoden überschreiben (aber dies sollte doch eigentlich nicht nötig sein, da Delphi diese doch schon entsprechend definiert haben sollte, oder)?

HILFE :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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