Announcement

Collapse
No announcement yet.

Probleme mit Word im OLE Container

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Word im OLE Container

    Hallo,

    ich habe eine Problem mit Word 2000 im OleContainer innerhalb einer Form mit mehreren Componenten. Zur Zeit habe ich eine TTreeView und TOleContainer Componente in der Form. Der OleContainer wird wie folgt gestarte:
    <PRE>
    FileName:='d:\temp\test.doc';
    WordCV.CreateObjectFromFile(FileName, False);
    WordCv.DoVerb(ovInPlaceActivate);
    </PRE>
    Word startet auch korrekt im Container, zeigt das Menü an (bis auf das Dateimenü?) und auch die Toolbars werden angezeigt.

    Wenn ich nun mit der Maus in den TreeView klicke, verschwindet das Menü und die Toolbas. Word kann dann auch nicht mehr durch anklicken aktiviert werden.

    Was mach ich hier falsch und warum wird mir das Dateimenü nicht angezeigt?

    Gruß

    Thorsten Meyer

  • #2
    Hallo,

    &gt;warum wird mir das Dateimenü nicht angezeigt?

    der Anbieter des eingebetten OLE-Objekts (hier Microsoft) legt das Verhalten fest. Es ist "normal", dass die Menüpunkte aus <i>Datei</i> fehlen (genauer gesagt wird dieser Menüpunkt von der eigenen Anwendung verwendet/beansprucht).

    Im Beispielprojekt aus meinem Buch <i>COM/DCOM/COM+ mit Delphi</i> habe ich zu einem Trick gegriffen, um Word wieder aktivieren zu können:
    <pre>
    // Neu: OLEContainer beim Aktivieren der Anwendung neu initialisieren

    procedure TFormMain.FormCreate(Sender: TObject);
    begin
    Application.OnActivate := ActivateWordDocInContainer;
    end;
    // Datenmodul-Methode aufrufen: Im Edit-Modus wird DoVerb(1) aufgerufen

    procedure TFormMain.ActivateWordDocInContainer(Sender: TObject);
    begin
    DM.ActivateContainer
    end;
    procedure TDM.ActivateContainer;
    begin
    if TableWordOLE.State = dsEdit then
    FormMain.OleContainerWord.DoVerb(1);
    end;
    </pre&gt

    Comment

    Working...
    X