首页  编辑  

RichEdit的上标和下标

Tags: /超级猛料/VCL/Memo&Edit&Richedit/RichEdit、RxRichEdit/   Date Created:

如何在RichEdit中实现上标或者下标?

// 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;

img_17429.bmp (83.1KB)