Страница 1 из 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 10 фев 2014, 16:09
Duncon
Кстати погугли что-нить на тему свойства SelStart.. Дэльфы под рукой нет чтоб посмотреть правильно ли свойство называется, это по поводу взять символ из компонента.
По поводу узнать регистр можно сделать так:
[syntax=Delphi]
if oneChar in ['А'..'Я','A'..'Z'] then Верхний регистр //дэльфи до уникода
if CharInSet(oneChar,['А'..'Я','A'..'Z']) then Верхний регистр //уникод Delphi 2009+
[/syntax]

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

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

Добавлено: 10 фев 2014, 16:15
Duncon
Кстати погугли что-нить на тему свойства SelStart.. Дэльфы под рукой нет чтоб посмотреть правильно ли свойство называется, это по поводу взять символ из компонента.
По поводу узнать регистр можно сделать так:
[syntax=Delphi]
if oneChar in ['А'..'Я','A'..'Z'] then Верхний регистр // дэльфи до уникода
if CharInSet(oneChar,['А'..'Я','A'..'Z']) then Верхний регистр //уникод Delphi 2009+
[/syntax]
Всё что остаётся вытащить нужный символ на проверку..