Skip to main content

How to Insert a Floating Text Box

  • 3 minutes to read

This topic explains how to create a floating text box and customize its settings programmatically. A text box is a fully functional subdocument hosted within a floating shape.

You can manage, position and customize text floating boxes within a rich text document via the Rich Edit control’s public API that provides the InsertTextBox function, available both at the document and subdocument levels. The function creates and anchors an empty floating text box to the beginning of the page that includes the specified document position.

Refer to the following code example:

uses
..., dxCoreGraphics, cxGeometry;  // Add these units to the uses clause...
//...
var
  ADocument: IdxRichEditDocument;
  ATextBoxShape: IdxRichEditShape;
  ATextBoxSubDocument: IdxRichEditSubDocument;
begin
  ADocument := dxRichEditControl1.Document;
  ADocument.&Unit := TdxRichEditDocumentUnit.Point;  // Sets the measurement unit used to specify positions and sizes within the document
  ATextBoxShape := ADocument.InsertTextBox(ADocument.CreatePosition(0));  // Creates a new empty text box
  ATextBoxSubDocument := ATextBoxShape.TextBox.Document;
// Adds text to the text box
  ATextBoxSubDocument.AppendText('Lorem ipsum dolor sit amet, eu cum consul ignota. ');
  ATextBoxSubDocument.AppendText('Ea purto ubique voluptua nam, ea malorum definebas assueverit mel. ');
  ATextBoxSubDocument.AppendText('Qui ea alia mutat petentium ius latine oblique conclusionemque ne.');
  ATextBoxShape.TextWrapping := TdxRichEditTextWrappingType.Square;  // Anchors the floating text box to the document's text layer and wraps text around all sides of the floating box's bounding rectangle
  ATextBoxShape.HorizontalAlignment := TdxRichEditShapeHorizontalAlignment.Center;
  ATextBoxShape.Offset := TdxPointF.Create(0, 200);
  ATextBoxShape.RotationAngle := 45;
// Sets the floating shape's appearance settings
  ATextBoxShape.Line.Thickness := 1;
  ATextBoxShape.Line.Color := TdxAlphaColors.Black;
  ATextBoxShape.Fill.Color := TdxAlphaColors.Bisque;
// Sets the margins between the text box's bounding rectangle and the parent document's text
  ATextBoxShape.MarginBottom := 10;
  ATextBoxShape.MarginLeft := 10;
  ATextBoxShape.MarginRight := 10;
  ATextBoxShape.MarginTop := 10;
end;

Alternatively, you can insert text boxes by calling the document’s Shapes.InsertTextBox function.