Страница 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.
Только вот вопрос остался открытым - как получить числовое значение места нахождения курсора?
Ну подскажите, пожалуйста! :roll:

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
Спасибо, Дед Пахом, за наводки и оперативность - все получилось!