OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 16 Август, 2018 13:00

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Координаты каретки
СообщениеДобавлено: Четверг, 21 Август, 2014 05:57 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2118
Откуда: Красноярск
Как найти координаты картеки?

Я нашел пока только как взять координаты символа в районе коретки.

Код:
      WITH msg: Controllers.EditMsg DO
         c := TextControllers.Focus();
         v.GetThisLocation(f, c.CaretPos(), loc);
         v.x := loc.x;
         v.y := loc.y;

Но если она переносится на новую строку, то эти координаты не совпадают с положением каретки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Координаты каретки
СообщениеДобавлено: Четверг, 21 Август, 2014 06:14 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2118
Откуда: Красноярск
Вот что значит "утро вечера мудренее", сейчас за пять минут нашел, в чем проблема. Надо было спрашивать каретку отложенно, где она стоит.

Код:
   PROCEDURE (a: Action) Do;
      VAR
         c: TextControllers.Controller;
         carPos: INTEGER;
         loc: TextViews.Location;
   BEGIN
      c := TextControllers.Focus();
      IF (c # NIL) & ~c.HasSelection() THEN
         carPos := c.CaretPos(); (* Запоминаем положение каретки *)
         IF carPos # - 1 THEN
            a.v.GetThisLocation(a.f, c.CaretPos(), loc);
            a.v.x := loc.x;      
            a.v.y := loc.y;
            Views.Update(a.v, Views.rebuildFrames);
         END
      END
   END Do;

   PROCEDURE (v: View) HandleCtrlMsg2 (f: Views.Frame;
      VAR msg: Controllers.Message; VAR focus: Views.View);
      VAR
         c: TextControllers.Controller;
         carPos: INTEGER;
         a: Action;
   BEGIN
      WITH msg: Controllers.EditMsg DO
         NEW(a);
         a.v := v;
         a.f := f;
         Services.DoLater(a, Services.now)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Координаты каретки
СообщениеДобавлено: Четверг, 21 Август, 2014 09:38 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
А-а, наверное, сеттер перестраивается в следующей итерации.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB