Цитата:
Сообщение от poli-smen
Можно и так. Но так как функция RE_SetCharFormat работает на выделении, то можно сразу поместить всю строку в RichEdit, а потом выделяя (SelStart-SelLength) нужные части применять эту функцию.
Кстати эта функция имитирует верхний/нижний индекс просто делая смещение текста вверх/вниз. Но у RichEdit есть и официальный способ сделать верхний/нижний индекс.
Вот исправленная версия этой функции, которая делает "настоящий" верхний/нижний индекс:
Код:
procedure RE_SetCharFormat2(aRichEdit: TRichEdit; CharacterFormat: TCharacterFormat);
var
Format: TCharFormat2;
begin
FillChar(Format, SizeOf(Format), 0);
with Format do
begin
cbSize := SizeOf(Format);
dwMask := RichEdit.CFM_SUBSCRIPT;
case CharacterFormat of
CFM_Superscript: dwEffects := CFE_SUPERSCRIPT;
CFM_Subscript: dwEffects := CFE_SUBSCRIPT;
CFM_Normal: dwEffects := 0;
end;
end;
aRichEdit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
end;
|
У меня данный код не заработал.
Можно рабочий проект?