Страница 1 из 1
Позиционирование в TEXT-контроле
Добавлено: 28 Сентябрь 2009, 10:20
NewUser
Не подскажет ли кто оперативно, как в Text-контроле (в частности с атрибутом RTF) запомнить текущую позицию курсора при потере фокуса контролом (или при позиционировании курсора в новую позицию в рамках этого текст-контрола).
Что-то после отпуска простые вещи повелетали из головы.
CW6.3 АВС
Re: Позиционирование в TEXT-контроле
Добавлено: 28 Сентябрь 2009, 11:18
NewUser
В принципе, эксперементальным методом найдена точка вставки, которая активизируется при любом изменении позиционирования курсора:
Local Objects - Abs Objects - RTF Control - RefreshLinePos.
Только вот вопрос остался открытым - как получить числовое значение места нахождения курсора?
Ну подскажите, пожалуйста!

Re: Позиционирование в TEXT-контроле
Добавлено: 28 Сентябрь 2009, 14:33
Дед Пахом
А вот и сам метод RefreshLinePos:
Код: Выделить всё
RTFControlClass.RefreshLinePos PROCEDURE()
CODE
IF SELF.CtlShowLineNo
SELF.CtlShowLineNo{PROP:Text} = 'Line: ' & SELF.Props.CaretY() & ' of ' & SELF.Props.LineCount()
END
IF SELF.CtlShowPosInLine
SELF.CtlShowPosInLine{PROP:Text} = 'Col: ' & SELF.Props.CaretX()
END
RETURN
Re: Позиционирование в TEXT-контроле
Добавлено: 28 Сентябрь 2009, 15:07
NewUser
Спасибо, с этим я разобрался. Умею теперь программно понимать на какой строке (Y) и на каком знакоместе (Х) у меня курсор.
Но как определить после какого (по количеству) от начала поля символа находится курсор? Ведь в каждой строке произвольное кол-во символов. Не зная этого, невозможно буде потом спозиционироваться на это же место оперетором: Select(?MY:Text,CurPos), где MY:Text - текстовой RTF контрол, CurPos - вычисленное значение положения курсора, относительно начала строки.
Re: Позиционирование в TEXT-контроле
Добавлено: 28 Сентябрь 2009, 15:46
Дед Пахом
Есть вот ещё:
Код: Выделить всё
Caret PROCEDURE (LONG lineno, LONG pos) ! 1-based
Re: Позиционирование в TEXT-контроле
Добавлено: 28 Сентябрь 2009, 15:47
Дед Пахом
И вообще, есть исходники, там много чего интересного написано:
rtfctl.inc/clw, RTF.INT
Re: Позиционирование в TEXT-контроле
Добавлено: 28 Сентябрь 2009, 17:56
NewUser
Спасибо, Дед Пахом, за наводки и оперативность - все получилось!