OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 15 Март, 2024 08:10

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: #041 Поправка в HostMechanisms
СообщениеДобавлено: Четверг, 26 Ноябрь, 2020 13:50 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 660
Коллеги, если в (Linux)HostMechanisms.TrackToDrop вместо
Код:
      VAR m: SET;x1, y1: INTEGER; isDown: BOOLEAN;
   BEGIN
      REPEAT
         host.Input(x1, y1, m, isDown);
         host.MarkRect(x1-rx, y1-ry, x1-rx+w, y1-ry+h, 0, Ports.dim50, Ports.show);      
         host.MarkRect(x1-rx, y1-ry, x1-rx+w, y1-ry+h, 0, Ports.dim50, Ports.hide);
      UNTIL ~isDown;

сделать

Цитата:
VAR m: SET;x1, y1: INTEGER; isDown: BOOLEAN;
b, old: RECORD l, t, r, b: INTEGER END;
BEGIN
REPEAT
host.Input(x1, y1, m, isDown);
b.l := x1-rx; b.t := y1-ry; b.r := x1-rx+w; b.b := y1-ry+h;
IF (b.l # old.l) OR (b.t # old.t) OR (b.r # old.r) OR (b.b # old.b) THEN
host.MarkRect(old.l, old.t, old.r, old.b, 0, Ports.dim50, Ports.hide);
host.MarkRect(b.l, b.t, b.r, b.b, 0, Ports.dim50, Ports.show);
old := b
END

UNTIL ~isDown;


то при перетаскивании мышью в контейнерах вместо Изображение получится Изображение

Предлагаю внести поправку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поправка в HostMechanisms
СообщениеДобавлено: Четверг, 26 Ноябрь, 2020 16:47 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Нет возражений.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: #041 Поправка в HostMechanisms
СообщениеДобавлено: Среда, 02 Декабрь, 2020 19:15 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Немного доработал, чтобы после show всегда был hide, и закоммитил.

Заодно другим коммитом поправил положение главного окна. А то в Mint оно открывалось посередине, было неудобно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: #041 Поправка в HostMechanisms
СообщениеДобавлено: Четверг, 03 Февраль, 2022 19:21 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 660
Поправка к поправке: надо вот так, чтобы исключить использование неопределенного значения old:
Код:
      shown := FALSE;
      REPEAT
         host.Input(x1, y1, m, isDown);
         b.l := x1 - rx; b.t := y1 - ry; b.r := x1 - rx + w; b.b := y1 - ry + h;
         moved := shown & ((b.l # old.l) OR (b.t # old.t) OR (b.r # old.r) OR (b.b # old.b));
         IF shown THEN host.MarkRect(old.l, old.t, old.r, old.b, 0, Ports.dim50, Ports.hide) END;
         IF isDown THEN host.MarkRect(b.l, b.t, b.r, b.b, 0, Ports.dim50, Ports.show);
            old := b; shown := TRUE
         END
      UNTIL ~isDown;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: #041 Поправка в HostMechanisms
СообщениеДобавлено: Воскресенье, 13 Февраль, 2022 21:17 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Спасибо, Антон, это исправло существенный недочёт при редактировании диалогов, когда появлялся серый фон.


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

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


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

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


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

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