Определить надстрочное или подстрочное положение каретки в richedit
Как определить надстрочное или подстрочное положение каретки в richedit?
Как оказалось, программных средств управления надстрочными/подстрочными символами в richedit не предусмотрено.
Вопрос не корректен, если нужно определить ввод в верхнем регистре или нет - проще снять состояние капс лока и шифта, если состояние буквы в месте где каретка стоит уже другой вопрос.
[syntax=Delphi] [/syntax]
Мне нужно определить, какой символ после каретки, надстрочный или подстрочный. Думал, что можно это реализовать, если отследить положение каретки.
И я неправильно написал предыдущее свое сообщение.В самой делфи нет возможности программно управлять надстрочными/подстрочными символами, надо использовать команды WinAPI.
И я неправильно написал предыдущее свое сообщение.В самой делфи нет возможности программно управлять надстрочными/подстрочными символами, надо использовать команды WinAPI.
Я не видел ни в одном языке чтоб была такая функциональность вшитая, везде нужно брать позицию каретки, следом брать нужный символ и проверять регистр буквы.. Можно на он кей ап повесить событие и собственно выполнять данный цикл действий..
[syntax=Delphi] [/syntax]
Тогда такой вопрос: есть ли какая-нибудь другая команда для определения регистра символа, кроме EM_GETCHARFORMAT? Ну или как быть с параметром SCF_Selection, если текст не выделен (выбран)?
Кстати погугли что-нить на тему свойства SelStart.. Дэльфы под рукой нет чтоб посмотреть правильно ли свойство называется, это по поводу взять символ из компонента.
По поводу узнать регистр можно сделать так:
[syntax=Delphi]
if oneChar in ['А'..'Я','A'..'Z'] then Верхний регистр //дэльфи до уникода
if CharInSet(oneChar,['А'..'Я','A'..'Z']) then Верхний регистр //уникод Delphi 2009+
[/syntax]
Всё что остаётся вытащить нужный символ на проверку..
По поводу узнать регистр можно сделать так:
[syntax=Delphi]
if oneChar in ['А'..'Я','A'..'Z'] then Верхний регистр //дэльфи до уникода
if CharInSet(oneChar,['А'..'Я','A'..'Z']) then Верхний регистр //уникод Delphi 2009+
[/syntax]
Всё что остаётся вытащить нужный символ на проверку..
[syntax=Delphi] [/syntax]
Кстати погугли что-нить на тему свойства SelStart.. Дэльфы под рукой нет чтоб посмотреть правильно ли свойство называется, это по поводу взять символ из компонента.
По поводу узнать регистр можно сделать так:
[syntax=Delphi]
if oneChar in ['А'..'Я','A'..'Z'] then Верхний регистр // дэльфи до уникода
if CharInSet(oneChar,['А'..'Я','A'..'Z']) then Верхний регистр //уникод Delphi 2009+
[/syntax]
Всё что остаётся вытащить нужный символ на проверку..
По поводу узнать регистр можно сделать так:
[syntax=Delphi]
if oneChar in ['А'..'Я','A'..'Z'] then Верхний регистр // дэльфи до уникода
if CharInSet(oneChar,['А'..'Я','A'..'Z']) then Верхний регистр //уникод Delphi 2009+
[/syntax]
Всё что остаётся вытащить нужный символ на проверку..
[syntax=Delphi] [/syntax]