OberonCore https://forum.oberoncore.ru/ |
|
#041 Поправка в HostMechanisms https://forum.oberoncore.ru/viewtopic.php?f=134&t=6684 |
Страница 1 из 1 |
Автор: | adimetrius [ Четверг, 26 Ноябрь, 2020 13:50 ] |
Заголовок сообщения: | #041 Поправка в HostMechanisms |
Коллеги, если в (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; то при перетаскивании мышью в контейнерах вместо получится Предлагаю внести поправку. |
Автор: | Иван Денисов [ Четверг, 26 Ноябрь, 2020 16:47 ] |
Заголовок сообщения: | Re: Поправка в HostMechanisms |
Нет возражений. |
Автор: | Иван Денисов [ Среда, 02 Декабрь, 2020 19:15 ] |
Заголовок сообщения: | Re: #041 Поправка в HostMechanisms |
Немного доработал, чтобы после show всегда был hide, и закоммитил. Заодно другим коммитом поправил положение главного окна. А то в Mint оно открывалось посередине, было неудобно. |
Автор: | adimetrius [ Четверг, 03 Февраль, 2022 19:21 ] |
Заголовок сообщения: | Re: #041 Поправка в HostMechanisms |
Поправка к поправке: надо вот так, чтобы исключить использование неопределенного значения 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; |
Автор: | Иван Денисов [ Воскресенье, 13 Февраль, 2022 21:17 ] |
Заголовок сообщения: | Re: #041 Поправка в HostMechanisms |
Спасибо, Антон, это исправло существенный недочёт при редактировании диалогов, когда появлялся серый фон. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |