AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi AddIn funktioniert nicht richtig (Word2003)
Thema durchsuchen
Ansicht
Themen-Optionen

AddIn funktioniert nicht richtig (Word2003)

Ein Thema von mjenke · begonnen am 8. Jan 2007 · letzter Beitrag vom 9. Jan 2007
 
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

AddIn funktioniert nicht richtig (Word2003)

  Alt 8. Jan 2007, 07:25
Guten Morgen, alle miteinander!


Ich habe in den letzten Wochen ein Word-AddIn geschrieben, das in Word2000 auch wunderbar funktioniert. Je nachdem, welche DOT im Hintergrund an dem Dokument hängt, wird der Benutzer über einen Dialog aufgefordert, Einstellungen vorzunehmen und dann werden Formate und CommandBars etc. dynamisch erzeugt, damit genau die Arbeitsumgebungen vorhanden sind, die der Benutzer benötigt.

Wie gesagt, in Word 2000 funktioniert alles wunderbar. Ein Installer ist gebaut, auf mehreren Geräten getestet - und nirgends gab es Problem.

Anders in Word 2003.

Ich habe den Installer an einem Gerät mit Word 2003 ausprobiert. Die DLL ist installiert und registriert und wird von Word auch geladen. Beim Erzeugen der Formatvorlagen hängt Word2003 sich allerdings auf. Und zwar an folgender Stelle:

Delphi-Quellcode:
function TWordSettings.Style_Create(Format: TFormat): Style;
var
  My_Font: WordFont;
  [...]
begin

  Result := nil;
  _Type := 1;

  if Assigned ( Format ) then begin

    if HasActiveDocument then begin

      Result := Style_GetStyle ( Format.StyleInfoAF.Name );
      if Result = nil then
        Result := FWord.ActiveDocument.Styles.Add ( Format.StyleInfoAF.Name, _Type );

      // In Result können jetzt die Werte eingetragen werden...

      with Format.StyleInfoAF do begin
        // Allgemein
          Result.Set_LanguageID ( LanguageID );
        // Link 2 List
          if Format.Link2ListSet then begin
            try
              LG := FWord.ListGalleries.item(LinkToList.GalleryIdx.Value);
              LevelIdx := LinkToList.LevelIdx.Value;
              TemplateIdx := LinkToList.TemplateIdx.Value;
              Result.LinkToListTemplate ( LG.ListTemplates.item(TemplateIdx), LevelIdx );
              // Und in die Listgallery eintragen
              LG.ListTemplates.item(TemplateIdx).ListLevels.Item(LevelIdx).Set_LinkedStyle ( Name );
            except
            end;
          end;
        // Font
          My_Font := Result.Get_Font;
          with Font do begin

            // Hier:
            //
            // bei My_Font.Set_Name
            //
            // hängt Word2003 sich auf, während es in Word2000 KEINERLEI
            // Probleme gibt... Wenn die Zeile auskommentiert ist, hängt Word
            // sich entsprechend bei Set_Size auf etc. Ein Zugriff auf das WordFont-
            // Objekt bereitet also die Probleme

            My_Font.Set_Name ( Name.Value );
            My_Font.Set_Size ( Size.Value );
            if Bold.Value then My_Font.Set_Bold ( 1 ) else My_Font.Set_Bold ( 0 );
            if Italic.Value then My_Font.Set_Italic ( 1 ) else My_Font.Set_Italic ( 0 );
        [...]

Hatte jemand schon einmal ein ähnliches Problem und dazu eine Lösung gefunden? Ich weiß, dass einige unserer Kunden mit Word2003 arbeiten, ich kann es also leider nicht auf sich beruhen lassen...



Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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