Delphi-PRAXiS

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 TWordApplication und Commandbar (https://www.delphipraxis.net/117682-twordapplication-und-commandbar.html)

Sergej_Molotov 23. Jul 2008 12:24


TWordApplication und Commandbar
 
Hallo Zusammen,

ich hab da so ein gewisses Problem mit Word 2003 und der ActiveX Steuerung.

Programmablauf:
Word-Prozess wird mittel TWordApplication erzeugt bzw. gestartet
Word ist zur Zeit unsichtbar und nicht in der Windows-Taskleiste.

Dann:
Delphi-Quellcode:
aWord.MinimizeWindow;
aWord.Visible := true;
Das Word wird nun Minimiert und befindet sich nun sichtbar in der Taskleiste. Danach wird ein neues Worddokument auf Basis einer Vorlage erstellt.

Das Problem:
Wenn ich zum Abschluss, nach einer Reihe von weiteren Funktionen, das Word anzeigen will, sehe ich zwar den Text, aber nicht mehr die Menüleiste oder die Toolbar. Veränder ich das Fenster in der Größe z.B. mit der Maus, dann erscheint die Menüleiste.

Zur Zeit kann ich dieses Problem nur beseitigen, wenn ich für alle Commandbars folgende Aktion durchführe:

Delphi-Quellcode:
procedure RefreshMenuBar(aWord: TWordObject);
var
  index : Integer;
begin
  for index := 1 to aWord.Application.CommandBars.Count do
  begin
    aWord.Application.CommandBars.Item[index].Reset;
  end;
end;
Hat einer von euch auch mal dieses Problem festgestellt? Es scheint sich um einen Word-Bug zu handeln. Ich such nur eine gute Möglichkeit, die Menüleiste zu refreshen. Der oben gezeigte Aufruf dauert bei mir in der VM ca. 1 Sekunde. Bei allen anderen Word-Versionen habe ich diese Problem nicht.

Danke

Sergej_Molotov 23. Jul 2008 15:17

Re: TWordApplication und Commandbar
 
Kurz vor meinem Seelbstmord habe ich bei der MSDN einen Beitrag gefunden, der sich mit der Anpassung von Word mit Hilfe von Templates (so wie ich es ja mache) beschäftigt.

Dort bin ich auf folgende Zeilen gestoßen:
Delphi-Quellcode:
'Force the customization context to return to the active document's
   'attached template, or to Normal.dot if no document is open.
   'This helps ensure that Word continues to display
   'all current customizations.
   If Documents.Count > 0 Then
      CustomizationContext = ActiveDocument.AttachedTemplate  'Danach klapps auch mit der Leiste
   Else
      CustomizationContext = NormalTemplate
   End If
Hier die URL:
Customizing Word 2003

Ps:
Jedes Word verhält sich anders. :kotz:

p80286 23. Jul 2008 15:52

Re: TWordApplication und Commandbar
 
Hallo Sergej
Zitat:

Zitat von Sergej_Molotov
Ps:
Jedes Word verhält sich anders.

Wie wahr!
Ich durfte vor ein paar Wochen Word-Dokumente aus einer DB generieren. Irgendwann sagte Word "kann Filter für Konvertierung nicht finden" (oder so ähnlich), da hatte sich word ca. 500 MByte unter den Nagel gerissen und es waren ca. 650 Seiten generiert. Auf anderen Rechnern mit der gleichen Word-Version lief die Generierung durch. Am nächsten Tag lief's auf den Rechnern auf denen es gestern nicht lief oder auch nicht oder umgekehrt.
Kurz und schlecht ich hab dann eine HTML-Datei generiert und die wurde dann von Word anstandslos verarbeitet.
Wenn diese Office-Zicken nicht beinahe auf jedem Rechner vorhanden wären, hätten 50 % aller Administratoren nichts mehr zu tun.
BTW der Link sieht gut aus.

Gruß
K-H


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