Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Wordmenü in OleContainer einbetten (https://www.delphipraxis.net/200985-wordmenue-olecontainer-einbetten.html)

delphicoder123 13. Jun 2019 14:32

Wordmenü in OleContainer einbetten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich benutze ein oleContainer um ein Word-Dokument einzubetten.
Das hat erstmal soweit geklappt. Allerdings ist das Menü außerhalb des oleContainer(siehe Anhang).
Wie bekomme ich das Menü in den Container rein?

Hier mein Code:

Code:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.OleCtnrs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    OleContainer1: TOleContainer;
    Panel1: TPanel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj, shellapi;

procedure TForm1.Button1Click(Sender: TObject);
var
  FDocument, FWord:Variant;
  FContainer: TOleContainer;
begin
  FContainer := TOleContainer.Create(olecontainer1);
  FContainer.Modified := false;
  FContainer.Parent := olecontainer1;
  FContainer.Align := alClient;
  FContainer.CreateObject('Word.Document', true);
  FDocument := IDispatch(FContainer.OleObject);
  FWord := FDocument.Application;
  FContainer.DoVerb(ovShow);
end;

end.

peterbelow 13. Jun 2019 16:53

AW: Wordmenü in OleContainer einbetten
 
Zitat:

Zitat von delphicoder123 (Beitrag 1434575)
Hallo,
ich benutze ein oleContainer um ein Word-Dokument einzubetten.
Das hat erstmal soweit geklappt. Allerdings ist das Menü außerhalb des oleContainer(siehe Anhang).
Wie bekomme ich das Menü in den Container rein?

Garnicht, das wird schlicht nicht unterstützt. So weit ich weis kann man nur die Position des Menus etwas beeinflußen, wenn man ein TPanel oberhalb des Olecontainers aligned, das wird dann durch das Menu ersetzt.

Bei so komplexen Anwendungen sollte man lieber AllowInPlaceEdit auf false setzen, damit das Dokument in der Orginalanwendung bearbeitet werden kann.

delphicoder123 13. Jun 2019 19:41

AW: Wordmenü in OleContainer einbetten
 
Nicht, dass ich dir nicht traue, aber kann man irgendwo nachlesen, dass sowas nicht unterstützt wird?

peterbelow 14. Jun 2019 08:42

AW: Wordmenü in OleContainer einbetten
 
Zitat:

Zitat von delphicoder123 (Beitrag 1434595)
Nicht, dass ich dir nicht traue, aber kann man irgendwo nachlesen, dass sowas nicht unterstützt wird?

Vermutlich schon, aber ich kann Dir nicht sagen, wo. :wink:

Aber sieh Dir mal http://docwiki.embarcadero.com/Libra....TOleContainer an. Das Verhalten bezüglich der Menus der Serveranwendung ist offenbar absichtlich so implementiert worden, um die Integration in MDI-Anwendungen zu erleichtern. Das ist ancient history, schon in Delphi 1 hat sich der Olecontainer so verhalten.


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