...use Subscript or Superscript in a TRichEdit?

Author: Thomas Stutz

Category: VCL

// yOffset values
type
  
TCharacterFormat = (CFM_Superscript, CFM_Subscript, CFM_Normal);

procedure RE_SetCharFormat(RichEdit: TRichEdit; CharacterFormat: TCharacterFormat);
var
  
// The CHARFORMAT structure contains information about
  // character formatting in a rich edit control.
  
Format: TCharFormat;
begin
  
FillChar(Format, SizeOf(Format), 0);
  with Format do
  begin
    
cbSize := SizeOf(Format);
    dwMask := CFM_OFFSET;
    // Character offset, in twips, from the baseline.
    // If the value of this member is positive,
    // the character is a superscript;
    // if it is negative, the character is a subscript.
    
case CharacterFormat of
      
CFM_Superscript: yOffset := 60;
      CFM_Subscript: yOffset := -60;
      CFM_Normal: yOffset := 0;
    end;
  end;
  // The EM_SETCHARFORMAT message sets character formatting in a rich edit control.
  // SCF_SELECTION: Applies the formatting to the current selection
  
Richedit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
end;

// Examples:
// Beispiele:

// Apply Superscript to the current selection
// Markierte Zeichen hoch stellen
procedure TForm1.Button1Click(Sender: TObject);
begin
  
RE_SetCharFormat(RichEdit1, CFM_Superscript);
end;

// Apply Subscript to the current selection
// Markierte Zeichen tief stellen
procedure TForm1.Button2Click(Sender: TObject);
begin
  
RE_SetCharFormat(RichEdit1, CFM_Subscript);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base