Nein, es soll kein Formulareditor sein, sondern z.B. Rechnungen anzeigen.
Auf der ersten Seite steht zum Beispiel der Adressblock, die Rechnungsnummer, Projektnummer etc. und die sollen mit einem eigens entwickelten Formulardesigner frei positionierbar sein, deswegen die Inputtextboxen frei positionierbar .
Alle Folgeseiten enthalten dann z.B. im Header die Seitennummer, das Datum etc. deren Position auch vom Anwender im Designer festgelegt wurde.
Der "echte Textbereich" besteht nur aus einer einzigen Tabelle, welche dann aber auch mal 50 Seiten umfassen kann.
Die Positionierung der Textboxen funktioniert ja auch, aber nicht gelöst ist das Problem dass ihr Inhalt beim Erreichen einer neuen Seite verlorengeht!
Bei folgendem Code, hier sind Images anstelle der Textboxen, geht deren Inhalt nicht verloren!
block := WPRichText1.HeaderFooter.Get(wpIsHeader, wpraOnFirstPage, '');
block.Clear(true);
Par := block.AppendNewPar();
Par.Append('');
obj := Par.AppendNewObject(wpobjImage);
obj.LoadObjFromFile('c:\temp\bildseite1.bmp');
obj.ScaleWH(WPCentimeterToTwips(5), WPCentimeterToTwips(5));
WPRichText1.ReformatAll(false, true);
obj.PositionMode := wpotPage;
obj.RelX := WPCentimeterToTwips(0);
obj.RelY := WPCentimeterToTwips(0);
block := WPRichText1.HeaderFooter.Get(wpIsHeader, wpraNotOnFirstPage, '');
block.Clear(true);
Par := block.AppendNewPar();
Par.Append('');
obj := Par.AppendNewObject(wpobjImage);
obj.LoadObjFromFile('c:\temp\bildseite2.bmp');
obj.ScaleWH(WPCentimeterToTwips(4), WPCentimeterToTwips(4));
WPRichText1.ReformatAll(false, true);
obj.PositionMode := wpotPage;
obj.RelX := WPCentimeterToTwips(0);
obj.RelY := WPCentimeterToTwips(0);
Alles anzeigen
Wie kann ich erreichen, dass in folgendem Code, wenn er als ersten im leeren WPRichText1 die Boxen erzeugt, dann beim Füllen des Textes der Inhalt der Textboxen beim Erreichen der zweiten Seite nicht verschwindet?
Bei wpraOnFirstPage passiert das nicht, bei wpraOnEvenPages passiert das Gleiche, die ersten Textboxen sind korrekt, wächst der Text über mehrere Seiten und die Header werden "wiederholt" verschwindet der Inhalt der Textboxen!
RTFDataBlock := WPRichText1.HeaderFooter.Get(wpIsHeader, wpraOnAllPages , '');
WPRichText1.ActiveText := RTFDataBlock;
WPRichText1.InputTextbox('', 2000, 300, true).RelY := 300;
WPRichText1.InputString('Diese Box steht im Header');
WPRichText1.ActiveText := RTFDataBlock;
WPRichText1.InputTextbox('', 2000, 300, true).RelY := 2000;
WPRichText1.InputString('Diese Box steht auch im Header');
WPRichText1.ActiveText := WPRichText1.BodyText;
Wenn möglich oder notwendig erstelle ich auch mal ein Miniprojekt was das demonstriert, kann ich das hier irgendwie hochladen?
Ciao
Stefan