|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как в окне JvRichEdit определить надстрочные и подстрочные символы?
Не могу сам решить эту задачу.
Есть текст, в котором надо выловить надстрочные и подстрочные символы. Как я понял, надо использовать EM_GETCHARFORMAT, но как, я не пойму. Я использую библиотеку JEDI. Добавил в uses помимо JvRichEdit еще и RichEdit, потому как без него возникает ошибка в объявлении переменной CF:TCharFormat2;. Пробую отслеживать dwMask и yOffset (да и другие варианты, которые нашел в примерах в интернете), но это не срабатывает... Помогите решить задачу или посоветуйте учебник, в котором это было бы расписано, если такой существует, я вот найти не могу. Код:
procedure TForm1.Button1Click(Sender: TObject); var i:integer; CF:TCharFormat2; begin for i:=1 to Length(RichEdit1.Text) do begin //Искать по всем символам всего текста RichEdit1.SelStart:=i; // FillChar(CF, SizeOf(CF), 0); // CF.cbSize:=SizeOf(CF); // CF.dwMask:=CFM_OFFSET; // CF.dwMask:=CFE_SUPERSCRIPT; // RichEdit1.Perform(EM_GETCHARFORMAT, SCF_SELECTION, LPARAM(@CF)); FillChar(CF, SizeOf(CF), 0); if CF.dwMask = CFM_SUPERSCRIPT then //Если текущий символ надстрочный, то... begin S1:=S1+RichEdit1.Text[i]; //Все надстрочные символы в одну переменную end; if CF.yOffset <0 then //Если текущий символ подстрочный, то... begin S2:=S2+RichEdit1.Text[i]; //Все подстрочные символы в одну переменную end; end; RichEdit2.Lines.Add('Надстрочные: '+S1); RichEdit2.Lines.Add('Подстрочные: '+S2); end; |