Einzelnen Beitrag anzeigen

mjenke

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

Re: AddIn funktioniert nicht richtig (Word2003)

  Alt 9. Jan 2007, 07:22
Guten Morgen!

Wie Ihr seht, bastele ich immer noch an meinem Problem herum. Auch die Änderung des Codes und Einbinden eines CoClass-Objekts haben mich nicht weiter gebracht:

Delphi-Quellcode:
function TWordSettings.Style_Create(Format: TFormat): Style;
var
  _Type: OleVariant;
  MF: TWordFont;
  _Para: WordParagraphFormat;
  counter: Integer;
  TSAlignment, TSLeader: OleVariant;
  TemplateIdx: OleVariant;
  LevelIdx: OleVariant;
  LG: ListGallery;
  srvIntfFont: _Font;
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
            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 );
          end;
        // Font
          try
            
            // Erzeugen und Verbinden eines expliziten TWordFont-Objektes,
            // um hierüber auf die Font-Eigenschaften zuzugreifen

            MF := TWordFont.Create ( nil );
            srvIntfFont := Result.Font;
            if srvIntfFont <> nil then MF.ConnectTo ( srvIntfFont as Word_TLB._Font )
            else ShowMessage ( 'Kein Font-Objekt' );

            // ... und hier der Zugriff...
            
            with Font do begin
              MF.Name := Name.Value;
              MF.Size := Size.Value;
              if Bold.Value then MF.Bold := 1 else MF.Bold := 0;
[...]
In Word2000 funktioniert auch der neue Code einwandfrei, in Word2003 hat sich ebenfalls nichts geändert. Beim Zugriff auf die Font-Eigenschaften der Formatvorlage geht alles ins Leere. Word2003 gibt keine Rückmeldung mehr...


Matthias
Matthias Jenke
  Mit Zitat antworten Zitat