Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Word2000: Wie Kopfzeile erstellen? (https://www.delphipraxis.net/63282-word2000-wie-kopfzeile-erstellen.html)

JPSelter 16. Feb 2006 09:56


Word2000: Wie Kopfzeile erstellen?
 
Wie kann ich aus Delphi heraus in Word eine Kopfzeile mit 3 Spalten erstellen? Ich habe bereits mit viel Mühe Word soweit unter Kontrolle, dass ich einige Seiten mit variablen Tabelleninhalten erstellen kann. Aber nun muss ich auch an die Kopfzeile. Aber wie? Irgendwie muss ich den Cursor doch dahinbekommen und dann den Text einfach einfügen.

Keldorn 16. Feb 2006 18:12

Re: Word2000: Wie Kopfzeile erstellen?
 
Hallo
Delphi-Quellcode:
procedure TForm1.Button15Click(Sender: TObject);
Var _DefaultTableBehavior:olevariant;
    _AutoFitBehavior:olevariant;
    _RulerStyle:olevariant;
    _unit:olevariant;
begin
  //Bsp mit Serverkompos
  //autoconnect von Wordapp+Doc auf false
  WordApplication1.Connect;
  try
    WordApplication1.Visible:=true;
    //neues Worddoc
    WordDocument1.ConnectTo(WordApplication1.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam));

    //in Kopzeile wechseln
    WordApplication1.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;

    //3-spaltige Tabelle erstellen
    _DefaultTableBehavior:=wdWord9TableBehavior;
    _AutoFitBehavior:= wdAutoFitFixed;
    WordDocument1.Tables.Add(WordApplication1.Selection.Range,1,3,_DefaultTableBehavior,_AutoFitBehavior);

    //Formatieren (keine Rahmen)
    With WordApplication1.Selection.Tables.Item(1) do
      begin
        Borders.Item(wdBorderLeft).LineStyle := wdLineStyleNone;
        Borders.item(wdBorderRight).LineStyle := wdLineStyleNone;
        Borders.item(wdBorderTop).LineStyle := wdLineStyleNone;
        Borders.item(wdBorderBottom).LineStyle := wdLineStyleSingle;
        Borders.item(wdBorderVertical).LineStyle := wdLineStyleNone;
        Borders.item(wdBorderDiagonalDown).LineStyle := wdLineStyleNone;
        Borders.item(wdBorderDiagonalUp).LineStyle := wdLineStyleNone;
        Borders.Shadow := False
      End;
    //1. Spalte kleiner machen
    _RulerStyle:=wdAdjustNone;
    WordApplication1.Selection.Tables.item(1).Columns.Item(1).SetWidth(WordApplication1.CentimetersToPoints(3), _RulerStyle);
    //Text ausgeben
    WordApplication1.Selection.TypeText('Spalte1');

    _unit:=wdCell;
    WordApplication1.Selection.MoveRight(_unit,EmptyParam,EmptyParam);
    WordApplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
    WordApplication1.Selection.TypeText('Spalte2'+chr(vk_return)+'zentriert');

    WordApplication1.Selection.MoveRight(_unit,EmptyParam,EmptyParam);
    WordApplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphRight;
    WordApplication1.Selection.TypeText('Spalte3 (rechts)');

    //wieder zum Hauptdok
    WordApplication1.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocument;

    //Text ausgebebn
    WordApplication1.Selection.TypeText('Fertig');
  finally
    WordDocument1.Disconnect;
    WordApplication1.Disconnect;
  end;
end;
Die Tabelle ist nur Beispielhaft, prinzipiell kannst du den text gleich direkt mit typetext reinschreiben, "3" spalten sind durch die Tabstops links, zentriert und rechts schon vorgegeben.

Mfg Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz