![]() |
Wordautomation Zeilenabstand einstellen
Delphi-Quellcode:
Der Zeilenabstand zu Text2 ist leider größer als nächste Zeile.Var oWord1: OLEVariant; oDocument: OLEVariant; oRange: OLEVariant; begin try oWord1 := CreateOleObject('Word.Application'); oWord1.Visible := True; oDocument := oWord1.Documents.Add(); oRange := oDocument.Range(); oRange.Font.Name := 'Courier New'; oRange.Font.Size := 8; oRange.Text := 'Text1' + chr(13); oRange.Move(wdstory); oRange.Text := "Text2" + chr(13); oRange.Movew(wdStory); finally end; end; |
AW: Wordautomation Zeilenabstand einstellen
Hallo Alfredo,
Du kannst Deinen Quellcode etwas übersichtlicher formatieren, wenn Du das Delphi-Symbol (= gelber Helm mit dem roten Kamm) vom Menü direkt über dem Editorfenster benutzt. Oder für neutrale Fälle als einfachen Code mit dem Symbol gleich links daneben (= auf weißem Blatt blaue eckige Klammern <>). Das geht auch nachträglich. :wink: Gruß, Andreas |
AW: Wordautomation Zeilenabstand einstellen
|
AW: Wordautomation Zeilenabstand einstellen
Evtl. wäre es auch etwas Word-Konformer, wenn man anstatt mit CHR(13) usw. zu arbeiten, Paragraphs.Add benutzt.
|
AW: Wordautomation Zeilenabstand einstellen
Vielen Dank für eure Hinweise:
Die Lösung ist, dass chr(13) einen harten Zeilenumbruch vornimmt. Für mein Problem ist jedoch ein weicher Zeilenumbruch([Enter]+Shift) = Chr(11) notwendig. In der Delphi-Praxis steht die Lösung bereits unter "OLE Word Zeilenumbruch". :( Gibt es denn für chr(11) auch etwas dass Word-Konform ist? Mein altes Automationshandbuch für VFP hat mir "Paragraphs.Add" einfach unterschlagen. |
AW: Wordautomation Zeilenabstand einstellen
Zitat:
Wobei + CHR(11) schon einfacher ist :-D |
AW: Wordautomation Zeilenabstand einstellen
Beim Testen ist mir aufgefallen, dass der Compiler keine Fehler meldet,
aber zur Laufzeit Fehler in der Codierung des Word-Objektes festgestellt werden. Kann man den Compiler dazu bringen, dass er diese Fehler beanstandet? |
AW: Wordautomation Zeilenabstand einstellen
nicht bei der späten Bindung. Damit der Compiler meckert musst Du die frühe Bindung machen, d.h. die TLB in eine pas umwandeln und diese einbinden und verwenden.
|
AW: Wordautomation Zeilenabstand einstellen
Hallo Lemmy,
in meiner Form steht in der uses comobj. Die comobj ist m.E. bereits eine pas. Was übersehe ich? Gruß Alfred |
AW: Wordautomation Zeilenabstand einstellen
alles was du in Delphi einbindest dürfte ne pas sein - zumindest wenn Sourcen drin stehen.
Du sollst über Delphi Menü Komponente - Komponente importieren - Typbibliothek importieren: in der Liste dann Microsoft Word suchen und auswählen. Dazu muss Word natürlich importiert sein. Auf der nächsten Seite die "Palette" nicht definieren, ebenso wenig "Komponenten Wrapper erstellen" auswählen. Nochmal "Weiter" und "Unit anlegen" und Fertigstellen. Die Unit kannst Du dann einbinden und die Klasse TWordApplication (oder wie immer die dann auch heißt) "normal" wie jede andere Klasse in Delphi nutzen. Nachteil dieser Art ist aber, dass dein Programm dann ohne installiertes MS Word mit aktiver OLE-Schnittstelle nicht mehr laufen wird. Die comobj enhält "lediglich" die notwendigen Sourcen um mit COM zu arbeiten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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