PDA

Просмотр полной версии : Определить надстрочное или подстрочное положение каретки в richedit



sergeros
09.02.2014, 22:08
Как определить надстрочное или подстрочное положение каретки в richedit?

sergeros
10.02.2014, 11:03
Как оказалось, программных средств управления надстрочными/подстрочными символами в richedit не предусмотрено.

Duncon
10.02.2014, 12:02
Вопрос не корректен, если нужно определить ввод в верхнем регистре или нет - проще снять состояние капс лока и шифта, если состояние буквы в месте где каретка стоит уже другой вопрос.

sergeros
10.02.2014, 13:32
Мне нужно определить, какой символ после каретки, надстрочный или подстрочный. Думал, что можно это реализовать, если отследить положение каретки.

И я неправильно написал предыдущее свое сообщение.В самой делфи нет возможности программно управлять надстрочными/подстрочными символами, надо использовать команды WinAPI.

Duncon
10.02.2014, 13:50
Я не видел ни в одном языке чтоб была такая функциональность вшитая, везде нужно брать позицию каретки, следом брать нужный символ и проверять регистр буквы.. Можно на он кей ап повесить событие и собственно выполнять данный цикл действий..

sergeros
10.02.2014, 15:08
Тогда такой вопрос: есть ли какая-нибудь другая команда для определения регистра символа, кроме EM_GETCHARFORMAT? Ну или как быть с параметром SCF_Selection, если текст не выделен (выбран)?

Duncon
10.02.2014, 16:15
Кстати погугли что-нить на тему свойства SelStart.. Дэльфы под рукой нет чтоб посмотреть правильно ли свойство называется, это по поводу взять символ из компонента.
По поводу узнать регистр можно сделать так:

if oneChar in ['А'..'Я','A'..'Z'] then Верхний регистр // дэльфи до уникода
if CharInSet(oneChar,['А'..'Я','A'..'Z']) then Верхний регистр //уникод Delphi 2009+

Всё что остаётся вытащить нужный символ на проверку..