Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi - Text in Wordtabelle zentrieren (https://www.delphipraxis.net/198227-delphi-text-wordtabelle-zentrieren.html)

Nimmersatt 15. Okt 2018 23:26

Delphi - Text in Wordtabelle zentrieren
 
Hallo,


Ich möchte einen Text in der Wordtabelle zentrieren.

Hier erst mal der Code

Delphi-Quellcode:
const wdStory = 6;

var wordTable: array[1..2] of OLEVariant;
    e: integer;

begin
  try
    Word := CreateOleObject('Word.Application');
  except
    Exit;
  end;

  Word.Visible := True;
  NewDoc := Word.Documents.Add;

  for e:=1 to 2 do
  begin
    WordTable[e]:=NewDoc.Tables.Add(Word.Selection.Range,2,2);
 
    WordTable[e].Cell(1,1).Range.Text :='aaa';
    WordTable[e].Cell(1,2).Range.Text :='bbb';
    WordTable[e].Cell(2,1).Range.Text :='ccc';
    WordTable[e].Cell(2,2).Range.Text :='ddd';

    wordTable[e].Borders.InsideLineStyle :=1;
    wordTable[e].Borders.outsideLineStyle :=1;

    Word.Selection.Endkey(wdStory);
    Word.Selection.TypeText(#13#10);
  end;
end;

Wie also kann der Text in den Zellen der Wordtabelle zentriert werden ?



mfg Nimmersatt

KodeZwerg 15. Okt 2018 23:43

AW: Delphi - Text in Wordtabelle zentrieren
 
Vielleicht
Delphi-Quellcode:
ParagraphFormat.Alignment
mit Wert
Delphi-Quellcode:
wdAlignParagraphCenter / wdAlignVerticalCenter
? Weiß nich genau, oder
Delphi-Quellcode:
Cells.VerticalAlignment
?


Eine recht umfangreiche sammlung dazu findest du hier

Nimmersatt 15. Okt 2018 23:59

AW: Delphi - Text in Wordtabelle zentrieren
 
Das ging aber schnell.


Delphi-Quellcode:
WordTab[e].Cell(1,1).VerticalAlignment:=1;
Funktioniert !


Delphi-Quellcode:
WordTab[e].Cell(1,1).HorizontalAlignment:=1;
Funktioniert nicht !

Nimmersatt 16. Okt 2018 00:13

AW: Delphi - Text in Wordtabelle zentrieren
 
Kann sich das jemand erklären, warum HorizontalAlignment im Gegensatz zu VerticalAlignment nicht funktioniert ?

p80286 16. Okt 2018 01:07

AW: Delphi - Text in Wordtabelle zentrieren
 
Die frage ist wofür "1" steht. Left- Right Align Center.....
UU muß auch nicht das Alignment der Zelle sondern des Absatzes definiert werden. Ggf hilft da ein Blick in die Word-Hilfe, oder aber das Makro-Protokoll.

Gruß
K-H

KodeZwerg 16. Okt 2018 01:35

AW: Delphi - Text in Wordtabelle zentrieren
 
Zitat:

Zitat von Nimmersatt (Beitrag 1415820)
Kann sich das jemand erklären, warum HorizontalAlignment im Gegensatz zu VerticalAlignment nicht funktioniert ?

Ich bräuchte eine aktuelle TLB um nachzuschauen, kannst du eine erstellen und hochladen? (bitte als datei, als text wird das hier zu lang)

Jumpy 16. Okt 2018 08:17

AW: Delphi - Text in Wordtabelle zentrieren
 
Es gibt die Eigenschaft HorizontalAlignment in Word Tables nicht. Hab gerade einfach mal in Word-VBA nachgeschaut!
Das ist mMn bei Office-Automation eh immer das sinnvollste. Mach das zunächst rudimentär und/oder mit dem Makro-Editor in dem Programm (Excel,Word,...) selber und dann übertrag das nach Delphi.

Nimmersatt 17. Okt 2018 22:56

AW: Delphi - Text in Wordtabelle zentrieren
 
Da ich nicht zu viel Zeit verschwenden will, habe ich die Notlösung genommen - am Anfang des Textes ein paar Leerzeichen eingefügt.

Vielen Dank an alle.


mfg Nimmersatt

p80286 18. Okt 2018 09:40

AW: Delphi - Text in Wordtabelle zentrieren
 
Zitat:

Zitat von Nimmersatt (Beitrag 1416007)
Da ich nicht zu viel Zeit verschwenden will, habe ich die Notlösung genommen - am Anfang des Textes ein paar Leerzeichen eingefügt.

Sehr clever!
Wenn Du jetzt noch alle Tabulatoren durch Leerzeichen ersetzt und 0 durch O bist Du auf dem Stand vor 40 Jahren.

*kopfschüttelnd*
K-H

ghubi01 18. Okt 2018 13:50

AW: Delphi - Text in Wordtabelle zentrieren
 
Hallo Nimmersatt,

hier etwas gegen die "Not" :-D
Delphi-Quellcode:
  ...
   for e:=1 to 2 do
   begin
     WordTable[e]:=NewDoc.Tables.Add(Word.Selection.Range,2,2);

     WordTable[e].Cell(1,1).Range.Text :='aaa';
     WordTable[e].Cell(1,2).Range.Text :='bbb';
     WordTable[e].Cell(2,1).Range.Text :='ccc';
     WordTable[e].Cell(3,2).Range.Text :='ddd';

     //*********************
     // Vertikal zentrieren
     WordTable[e].Cell(1,1).VerticalAlignment:=1; // 1 = Mitte; 3 = Unten
     // Horizental zentrieren
     WordTable[e].Cell(1,1).Range.ParagraphFormat.Alignment:=1;
     //Damit man auch was sieht Zeilenhöhe ändern :-)
     WordTable[e].Rows.SetHeight(60,2);
     //*********************

     wordTable[e].Borders.InsideLineStyle :=1;
     wordTable[e].Borders.outsideLineStyle :=1;
     Word.Selection.Endkey(6);  //wdStory = 6
     Word.Selection.TypeText(#13#10);
   end;
  ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.
Seite 1 von 2  1 2   

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