Hallo Forum,
ich versuche in Word eine Aufzählung zu erzeugen. Die Formatierung wird auch angenommen. Aber der Tab funktioniert nicht wie gewünscht.
Manuell oder aus VBA heraus kann man nach Punkt 1. einen Zeilenumbruch und dann per Tab Punkt 1.1. erzeugen. Mache ich das aus Delphi heraus wird aber Punkt 2. erzeugt und der Text ist eingerückt
. Manuell bekomme ich das so gar nicht hin.
Bin für jeden Tipp dankbar...
Hier der gesamte Quelcode:
Delphi-Quellcode:
var
Word, doc, sel, Galleries,
Gallery, Templates, Template,
Levels, Level, Afont : OleVariant;
index, i2: integer;
nf: String;
begin
Word := CreateOleObject('Word.Application');
Word.Visible := True;
doc := Word.Documents.Add(EmptyParam, EmptyParam);
sel := Word.Selection;
// With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(1)
// .NumberFormat = "%1"
Galleries := word.ListGalleries;
gallery := Galleries.Item(wdListGalleryType(wdOutlineNumberGallery));
Template := Gallery.ListTemplates.Item(1);
Levels := Template.ListLevels;//(6);
//Level := Levels.Item(1);
for index := 1 to 8 do begin
Level := Levels.Item(index);
nf := '';
for i2 := 1 to index do
nf := nf + '%' + inttostr(i2) + '.';
Level.NumberFormat := nf; //'%1.%2.%3.%4.%5.%6.%7.%8.%9.';
level.NumberStyle := wdListNumberStyleArabic;
//level.NumberPosition = CentimetersToPoints(0)
level.TrailingCharacter := wdTrailingTab;
//level.TextPosition = CentimetersToPoints(1.02)
//level.Font...
end;
Afont := Level.Font;
// Change any font properties here
Level.LinkedStyle := '';
Template.Name := '';
sel.Range.ListFormat.ApplyListTemplateWithLevel (
ListTemplate :=
//template, // ListGalleries(wdNumberGallery).ListTemplates(1),
template,
ContinuePreviousList := False, ApplyTo := wdListApplyToWholeList, DefaultListBehavior:=
wdWord10ListBehavior);
[COLOR="Blue"] //Hier nun zwei verschiedene Versuche per Tab in der Auflistung zum nächsten unterpunkt zu wechseln.
[/COLOR] Sel.TypeText(Text:= 'Punkt 1.'#13#10#9'Sollte Punkt 1.1. sein ist aber 2.');
Sel.TypeParagraph;
Sel.TypeText(chr(9));
Sel.TypeText('Sollte Punkt 1.1.1. sein ist aber Punkt 3.');