The following example shows a JadeRichText class click event method that dynamically creates and manipulates rich text in a control when the btnRTFByLogic button is clicked on the running form.
btnRTFByLogic_click(btn: Button input) updating;
vars
str : String;
begin
// Clear text box
rtfRichText.text := "";
// Change some text and end up with one
// line reading "WednesdayFriday"
rtfRichText.load("Monday", JadeRichText.Load_Append);
rtfRichText.load("Tuesday", JadeRichText.Load_Append);
rtfRichText.load("Wednesday",JadeRichText.Load_ReplaceAll);
rtfRichText.load("Thursday", JadeRichText.Load_Append);
rtfRichText.selStart := 9;
rtfRichText.selLength := 5;
rtfRichText.load("Fri", JadeRichText.Load_ReplaceSelection);
// Change the font of ALL text so far, leaving font size,
// color, and other attributes unchanged
rtfRichText.setCharacterFormat(false,
"Comic Sans MS",
JadeRichText.CharacterFormat_Undefined,
JadeRichText.CharacterFormat_Undefined,
JadeRichText.CharacterFormat_Undefined,
JadeRichText.CharacterFormat_Undefined,
JadeRichText.CharacterFormat_Undefined,
JadeRichText.CharacterFormat_Undefined);
// Try some plain bullets
rtfRichText.load(Cr, JadeRichText.Load_Append);
rtfRichText.bulletStyle := JadeRichText.BulletStyle_Dot;
rtfRichText.load("One" & Cr, JadeRichText.Load_Append);
rtfRichText.load("Two" & Cr, JadeRichText.Load_Append);
rtfRichText.load("Three" & Cr, JadeRichText.Load_Append);
// Do numbered bullets, with text in its matching color
rtfRichText.bulletStyle := JadeRichText.BulletStyle_Number;
rtfRichText.setCharacterFormat(true, // apply to selection
null, // use current font name
JadeRichText.CharacterFormat_Undefined, // font size
#000000FF, // text color = Red
JadeRichText.CharacterFormat_NotSet, // not bold
JadeRichText.CharacterFormat_Set, // italic
JadeRichText.CharacterFormat_NotSet, // no strikethru
JadeRichText.CharacterFormat_Set); // underline
rtfRichText.load("RED" & Cr, JadeRichText.Load_Append);
rtfRichText.setCharacterFormat(true,
null,
16,
#0000FF00,
JadeRichText.CharacterFormat_Set,
JadeRichText.CharacterFormat_NotSet,
JadeRichText.CharacterFormat_Set,
JadeRichText.CharacterFormat_NotSet);
rtfRichText.load("GREEN" & Cr, JadeRichText.Load_Append);
rtfRichText.selTextColor := 256;
rtfRichText.setCharacterFormat(true,
null,
20,
#00FF0000,
JadeRichText.CharacterFormat_Undefined,
JadeRichText.CharacterFormat_Undefined,
JadeRichText.CharacterFormat_Set,
JadeRichText.CharacterFormat_Set);
rtfRichText.load("BLUE" & Cr, JadeRichText.Load_Append);
// Create some text that exceeds the control width
rtfRichText.bulletStyle := JadeRichText.BulletStyle_None;
str := "1 2 3 4 5 6 7 8 9 0 ";
str := str & str & str & str & str & str & str & str & str;
rtfRichText.load(str & Cr, JadeRichText.Load_Append);
// Try a different font
rtfRichText.setCharacterFormat(true,
"MS Sans Serif", // Not a True Type font so cannot be scaled
8.25,
JadeRichText.CharacterFormat_AutoColor, // System color
JadeRichText.CharacterFormat_NotSet,
JadeRichText.CharacterFormat_NotSet,
JadeRichText.CharacterFormat_NotSet,
JadeRichText.CharacterFormat_NotSet);
// Different alignments, with left and right indents
rtfRichText.setParagraphFormat(100, 75, 0, JadeRichText.Alignment_Left);
rtfRichText.load("This is LEFT aligned" & Cr, JadeRichText.Load_Append);
rtfRichText.setParagraphFormat(JadeRichText.ParagraphFormat_Undefined,
JadeRichText.ParagraphFormat_Undefined,
JadeRichText.ParagraphFormat_Undefined,
JadeRichText.Alignment_Right);
rtfRichText.load("This is RIGHT aligned" & Cr,JadeRichText.Load_Append);
rtfRichText.setParagraphFormat(JadeRichText.ParagraphFormat_Undefined,
JadeRichText.ParagraphFormat_Undefined,
JadeRichText.ParagraphFormat_Undefined,
JadeRichText.Alignment_Center);
rtfRichText.load("This is CENTERED" & Cr, JadeRichText.Load_Append);
// Justified text with hanging indent
rtfRichText.setParagraphFormat(JadeRichText.ParagraphFormat_Undefined,
JadeRichText.ParagraphFormat_Undefined,
-20,
JadeRichText.Alignment_Justify);
rtfRichText.load("This is JUSTIFIED text. It also shows how text is "
& " displayed when paragraph indenting is used. Note "
& " that the first line indent value is relative to "
& " the left indent. Therefore you can create a "
& " hanging indent by using a negative first line "
& " indent value." & Cr,
JadeRichText.Load_Append);
// Turn off hanging indent (or use the setParagraphFormat method)
rtfRichText.firstLineIndent := 0;
rtfRichText.alignment := JadeRichText.Alignment_Left;
// Add a URL that is displayed as a link
rtfRichText.autoURLDetect := true;
rtfRichText.append(Cr & "www.jadeworld.com");
// Replace all 'www.microsoft.com' with 'www.jadeworld.com'
rtfRichText.replace("www.microsoft.com",
"www.jadeworld.com",
JadeRichText.Find_BeginningOfText,
JadeRichText.Find_EndOfText,
JadeRichText.Replace_ReplaceAll);
// Insert a picture
rtfRichText.append(Cr); // Make on a new line
rtfRichText.insertObject("c:\schema\images\jadelogo.bmp", false, false);
// Scroll the whole control up by 20 pixels
rtfRichText.scrollVertPos := 20;
end;
The following image shows the result of this method in a JadeRichText control on a form when the btnRTFByLogic button is clicked.