Hallo,
ich habe mehrere Textboxen die auf Seite 1 dargestellt werden sollen und andere, die auf allen Folgeseiten erscheinen sollen.
Ich habe daher im WPRichTextMeasureTextPage eine Funktion eingebaut, welche anhand der Seitennummer die Textboxpositionierung vorhehmen soll.
procedure TCSKWPTDokument.ShowPanels(seite: integer);
var
p: integer;
X, Y, b, h: integer;
TxtObj: TWPTextObj;
par: TParagraph;
s: string;
f: integer;
begin
fWPRichText.TextCursor.DropMarker;
//für nur eine Seite CPPosition = 0, bei mehreren Seiten CPPage verwenden?
// fWPRichText.CPPosition := 0;
fWPRichText.CPPage := seite;
for p := 0 to High(Vorlage.PanelArray) do
begin
if (seite = 1) and (Vorlage.PanelArray[p].seite <> 1) then
continue;
if (seite <> 1) and (Vorlage.PanelArray[p].seite = 1) then
continue;
X := WPCentimeterToTwips(Vorlage.PanelArray[p].Left100 / 10);
Y := WPCentimeterToTwips(Vorlage.PanelArray[p].Top100 / 10);
b := WPCentimeterToTwips(Vorlage.PanelArray[p].Width100 / 10);
h := WPCentimeterToTwips(Vorlage.PanelArray[p].Height100 / 10);
TxtObj := fWPRichText.InputTextbox('', b, h, true);
TxtObj.PositionMode := wpotPage;
TxtObj.Mode := TxtObj.Mode + [wpobjWithinEditable, wpobjSizingDisabled,
wpobjDisableAutoSize];
TxtObj.RelY := Y;
TxtObj.RelX := X;
fWPRichText.ActiveText := fWPRichText.BodyText;
end;
fWPRichText.TextCursor.GotoMarker(true);
fWPRichText.ReformatAll(true, true);
end;
Alles anzeigen
Leider funktioniert das nur bedingt:
auf Seite 1 ist alles in Ordnung, aber die Textboxen die dann auf Seite 2 gezeichnet werden erscheinen, wenn Seite 3 hinzukommt, auf Seite 3 und auf Seite 2 sind sie nicht mehr vorhanden...
Gibt es dazu bitte einen Tip?
Ich vermute das setzen von CPPage ist falsch?
Nein, wenn ich einzeln neue Textzeilen dem Dokument hinzufüge werden die Textboxen korrekt auf allen Seiten ab Seite 2 wiederholt!
Mache ich das Hinzufügen vieler Zeilen in einer Schleife (so dass gleich 10 Seiten entstehen) dann ist die Folgeseiten-Textbox nur auf der letzten Seite!
Das ReformatAll ist da scheinbar wirkungslos?
Ciao
Stefan