Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OLE: Word - Tabulator setzen (https://www.delphipraxis.net/13059-ole-word-tabulator-setzen.html)

Praktikant 10. Dez 2003 11:34


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:
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;
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?

thx :angle2:

Garby 10. Dez 2003 12:35

Re: OLE: Word - Tabulator setzen
 
Hallo,

probiers mal mit
Delphi-Quellcode:
Word.Selection.TypeText('hallo'#13#10);

Praktikant 10. Dez 2003 12:41

Re: OLE: Word - Tabulator setzen
 
nö, die operatoren funktionieren da nicht.

Garby 10. Dez 2003 12:49

Re: OLE: Word - Tabulator setzen
 
Das sollte natürlich so ausschauen:
Delphi-Quellcode:
Word.Selection.TypeText('hallo'#9);
Welche Operatoren meinst du?

Praktikant 10. Dez 2003 12:56

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:
Word.Selection.ParagraphFormat.tabstops.add(Position:=50, Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces);
Allerdings ist die Position in einem untypischen Maß, sind keine mm oder cm, die 50 entsprechen 1,76cm :gruebel:

Garby 10. Dez 2003 13:24

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:
Function Add(Position As Single, [Alignment], [Leader]
Und da gibts noch die Funktion CentimetersToPoints, die in der ActiveX Library als Global deklariert ist.

Ich vermute mal, dass es so funktioniert:
Delphi-Quellcode:
Word.Selection.ParagraphFormat.TabStops.Add(Word.CentimetersToPoints(4))

Praktikant 10. Dez 2003 15:11

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