OLE: Word - Tabulator setzen
Ich schreibe aus meinem Prog heraus Einstellungen in ein Word Doku.
Ich nehme nicht die OLE-Server (Word.Application und Word.Document), da diese einfach nicht laufen wollten (habe es mit diesem Bsp. probiert, sondern eben den Weg über CreateOleObject usw. Das läufgt jetzt auch wunderbar (dank einem schönen Bsp.-Prog :roll: ), doch ich bekomme keinen Tabulatorsprung hin. Habe schon das Makro-Tool mitlaufen lassen, das sieht folgendermassen aus: Selection.TypeText Text:="hallo" Selection.TypeParagraph Selection.TypeText Text:=vbTab & "dies ist ein test" Selection.TypeParagraph Selection.Delete Unit:=wdCharacter, Count:=1 Selection.TypeParagraph Selection.TypeParagraph Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(4), _ Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces Selection.TypeText Text:=vbTab & "tab gesetzt!" Umgesetzt in Delphi:
Delphi-Quellcode:
Also, wie bekomme ich einen Tabulatorsprung hin? Und wie setze ich meinen Tabulator auf einen Wert (Lineal auf x(4)cm von links, wie oben im Makro?
var Word : OLEVariant;
begin Word.Selection.TypeText(Text := EditSteuer_Bits.Text); Word.Selection.TypeParagraph; Word.Selection.TypeParagraph; Word.Selection.TypeText(Text := 'hallo' & vbTab); //vbTab wird nicht akzeptiert ... end; thx :angle2: |
Re: OLE: Word - Tabulator setzen
Hallo,
probiers mal mit
Delphi-Quellcode:
Word.Selection.TypeText('hallo'#13#10);
|
Re: OLE: Word - Tabulator setzen
nö, die operatoren funktionieren da nicht.
|
Re: OLE: Word - Tabulator setzen
Das sollte natürlich so ausschauen:
Delphi-Quellcode:
Welche Operatoren meinst du?
Word.Selection.TypeText('hallo'#9);
|
Re: OLE: Word - Tabulator setzen
mit operatoren meinte ich dein #xx
[edit] müll geschrieben, geht doch...[/edit] Aber es sollte doch ein OLE-Befehl geben welcher funktioniert --> vbTab :?: Sprich #13 = Word.Selection.TypeParagraph; #9 = Word.Selection.(???) Tjo, jetzt geht's noch darum die Einstellung auf einen bestimmten Sprungwert zu schicken. Update: Hab's hinbekommen:
Delphi-Quellcode:
Allerdings ist die Position in einem untypischen Maß, sind keine mm oder cm, die 50 entsprechen 1,76cm :gruebel:
Word.Selection.ParagraphFormat.tabstops.add(Position:=50, Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces);
|
Re: OLE: Word - Tabulator setzen
vbTab ist nichts anderes als eine Konstante, die in VBA Global zur Verfügung steht.
lt deinem Beispiel müsste der Tabulatorsprung mit Tabstops.Add funktionieren. Diese Funktion ist folgendermassen deklariert:
Delphi-Quellcode:
Und da gibts noch die Funktion CentimetersToPoints, die in der ActiveX Library als Global deklariert ist.
Function Add(Position As Single, [Alignment], [Leader]
Ich vermute mal, dass es so funktioniert:
Delphi-Quellcode:
Word.Selection.ParagraphFormat.TabStops.Add(Word.CentimetersToPoints(4))
|
Re: OLE: Word - Tabulator setzen
erstma danke für die Hilfe.
Tabstops bzw. Tabstop mag er nicht :( Das mit der activex hab ich noch nicht probiert, einfach nur activex in uses schreiben und es funzt? Tjo, und wenn wir schon dabei sind: Wie kann ich anstatt der Standardbezeichnung "Dokument1" Word beim Aufruf dazu bringen einen alternativen Dokunamen zu verwenden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr. |
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