AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi - Text in Wordtabelle zentrieren

Delphi - Text in Wordtabelle zentrieren

Ein Thema von Nimmersatt · begonnen am 15. Okt 2018 · letzter Beitrag vom 18. Okt 2018
Antwort Antwort
Seite 1 von 2  1 2   
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#1

Delphi - Text in Wordtabelle zentrieren

  Alt 15. Okt 2018, 23:26
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
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.263 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 15. Okt 2018, 23:43
Vielleicht ParagraphFormat.Alignment mit Wert wdAlignParagraphCenter / wdAlignVerticalCenter ? Weiß nich genau, oder Cells.VerticalAlignment ?


Eine recht umfangreiche sammlung dazu findest du hier
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...

Geändert von KodeZwerg (15. Okt 2018 um 23:48 Uhr)
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#3

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 15. Okt 2018, 23:59
Das ging aber schnell.


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


WordTab[e].Cell(1,1).HorizontalAlignment:=1; Funktioniert nicht !
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#4

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 16. Okt 2018, 00:13
Kann sich das jemand erklären, warum HorizontalAlignment im Gegensatz zu VerticalAlignment nicht funktioniert ?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.223 Beiträge
 
Delphi 7 Personal
 
#5

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 16. Okt 2018, 01:07
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.263 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 16. Okt 2018, 01:35
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)
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...

Geändert von KodeZwerg (16. Okt 2018 um 01:38 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.530 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 16. Okt 2018, 08:17
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.
Ralph
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#8

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 17. Okt 2018, 22:56
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
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.223 Beiträge
 
Delphi 7 Personal
 
#9

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 18. Okt 2018, 09:40
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
ghubi01

Registriert seit: 18. Nov 2017
66 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Delphi - Text in Wordtabelle zentrieren

  Alt 18. Okt 2018, 13:50
Hallo Nimmersatt,

hier etwas gegen die "Not"
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;
  ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf