Как использовать верхние и нижние индексы? |
Previous Top Next |
RichEdit поддерживает верхние/нижние индексы;
Вот как это делается:
Code: |
uses RichEdit;
procedure TForm1.Button1Click(Sender: TObject); var CF: TCharFormat; begin cf.cbSize := sizeof(cf); cf.dwMask := CFM_OFFSET; cf.yOffset := 70; // смещение по y; положительное/отрицательное для смещение верх/вниз RichEdit1.Perform(EM_SETCHARFORMAT, SCF_SELECTION, integer(@cf)); end; |
SCF_ALL применить ко всему тексту
SCF_SELECTION применить к веделенному тексту
SCF_WORD | SCF_SELECTION применить к выделенным словам
Взято из MSDN. Проверено на Delphi7. Это работает. Попробый сделать сам, чтобы верхние/нижние индексы имели меньший размер.
Тем более это работает в rxRichEdit.
Автор: Seti
©Drkb::00572
Взято с Vingrad.ru http://forum.vingrad.ru
Code: |
// 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; |
©Drkb::01027
Взято с сайта: http://www.swissdelphicenter.ch