Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу ListButton смещён вправо в панели инструментов
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию ListButton смещён вправо в панели инструментов - 23.12.2019, 20:14

Visual Prolog 802 CE.
При добавлении ListButton в ToolBar неправильно размещается ListButton. Он сдвигается вправо примерно на 40 пикселей относительно того места, где он должен быть, перекрывая другие инструменты. Хотя в редакторе ToolBar отображение верное.
Пришлось расположить ListButton самым правым элементом, чтобы он не перекрывал другие инструменты
listbutton.jpg
Поиск бага в vpiToolbar.pro ничего не дал. Может это моя ошибка?
Кто-нить использовал ListButton в ToolBar? Примерно так, как это сделано с выбором разрядности 32/64 в IDE Visual Prolog?
Ответить с цитированием
  (#2 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 723
Сказал(а) спасибо: 17
Поблагодарили 62 раз(а) в 59 сообщениях
Регистрация: 28.03.2012
По умолчанию 24.12.2019, 14:14

в VIP 9 это не воспроизводится.
Ответить с цитированием
  (#3 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 24.12.2019, 22:29

Локализовал непонятное (мне) поведение в файле VpiToolBar.pro. Добавил свой код, демонстрирующий координаты контрола ListButton до его создания:
LBW = vpi::winCreateControl(wc_LBoxButton, rct(L, T, R, B), "", TbWin, [], convert(ctlId, Id)),
и координаты этого контрола после создания:
RCT = vpi::winGetOuterRect(LBW),
Вот скрин этого предиката, красным обведён мой "диагностический" код:
code.jpg
Вот результат:
coord.jpg
Видно, что контрол сдвинут вправо примерно на то количество пикселей, которое можно наблюдать на экране (скрин в первом сообщении).

Кстати этот проект (Машина Тьюринга) был сделан сто лет назад в VIP7.x.
Потом перекомпилирован в VIP 802.
А позавчера я добавил в ToolBar новый контрол и начались пляски с бубном. Может причина заключается в переходе с 7 на 8?
p.s. Папку OBJ я чистил и выполнил ReBuild.
Ответить с цитированием
  (#4 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 24.12.2019, 22:36

Да, забыл написать, что эта проблема решается легко (прижим контрола влево после создания панели инструментов).
Просто сейчас у меня есть время и я его потратил на ковыряние в своём и чужом коде
Ответить с цитированием
  (#5 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 26.01.2020, 18:26

Мягкое исправление бага в SDI-проекте.

Панель инструментов была:
before.jpg
Я нашёл таблетку без побочных действий:
tablet.jpg
Сейчас панель инструментов отображается правильно:
after.jpg

Интересно, что листбокс сдвигался вправо или влево, в зависимости от того, где он размещался в редакторе панели инструментов. Когда он был в левой части, то смещался влево, перекрывая своих соседей слева. Когда я его располагал ближе к правому краю панели, то он смещался вправо, перекрывая своих соседей справа.

Последний раз редактировалось Винитарх; 26.01.2020 в 18:32
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 723
Сказал(а) спасибо: 17
Поблагодарили 62 раз(а) в 59 сообщениях
Регистрация: 28.03.2012
По умолчанию 29.01.2020, 21:12

Томас исправил в текущей версии
Ответить с цитированием
  (#7 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 30.01.2020, 00:37

Да, спасибо, я уже видел это добавление. Хотя у себя внёс сам С одной стороны приятно, с другой - бОязно досаждать глупостями занятых людей.

Однако, пользуясь случаем рискну здесь отметить некоторые вопросы, которые у меня периодически возникают к разработчикам. Хотя, дабы лишний раз не сердить их и не отвлекать от дел я терплю и молчу по многу лет.

Возьмём, к примеру, всё тот же create_listcontrols из файла vpiToolbar.pro:
Visual Prolog Код:
create_listcontrols(TbWin) :-
        lbut(TbWin, Id, rct(L, T0, R, _), SList, Enabled, Pos),
        T = T0 + 1,
        B = T + toolbar_listbutton_height,
        LBW = vpi::winCreateControl(wc_LBoxButton, rct(L, T, R, B), "", TbWin, [wsf_Visible], convert(ctlId, Id)),
        vpi::lboxSuspend(LBW),
        vpi::lboxAdd(LBW, -1, SList),
        vpi::lboxSetSel(LBW, Pos, b_true),
        vpi::lboxResume(LBW),
        get_Flag(Enabled, FLAG),
        vpi::winSetState(LBW, [FLAG]),
            vpi::winMove(LBW,rct(L, T, R, B)), % <- it is tablet
        fail.
1) Зачем в нём используется список строк Slist для листбокса, если ввод элементов этого списка в диалоге Listbutton attributes не предусмотрен? Более того, этот пустой список строк Slist зачем-то добавляется предикатом lboxAdd в листбокс и в нём выделяется несуществующий элемент в нулевой позиции Pos?
Конечно, задумка великолепная, но кто-то "забыл" добавить в диалог Listbutton attributes элемент ввода списка строк и элемент ввода позиции для выделения элемента этого списка
А было-бы реально удобно сразу ввести список Slist при добавлении листбокса на панель инструментов

2) Для конторолов integerControl не работает свойство alignment. В окне свойств конструктора формы конечно можно установить нужное значение (мне надо было Left), но на самом деле выравнивание не работает пока не установишь это свойсто программно, например, так :
Visual Prolog Код:
new(Parent) :-
        formWindow::new(Parent),
        generatedInitialize(),
        позиция_ctl:setAlignment(alignLeft),
        счётчик_ctl:setAlignment(alignLeft).

3) Кнопь Execute(Ctrl+F5) в IDE Visual Prolog срабатывает редко. Запускать прогу приходится через меню

Конечно, такая фигня случается только у меня и моих студентов, правда на разных компьютерах и операционных системах и в разных учебных аудиториях
Но как бы то ни было, ёжик плакал, но продолжал есть кактус.
Всё-таки плюсы перевешивают.
Ответить с цитированием
  (#8 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 723
Сказал(а) спасибо: 17
Поблагодарили 62 раз(а) в 59 сообщениях
Регистрация: 28.03.2012
По умолчанию 30.01.2020, 09:54

1 и 2 посмотрим. про Ctrl+F5 никто не жаловался, я регулярно нажимаю.
Ответить с цитированием
  (#9 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 723
Сказал(а) спасибо: 17
Поблагодарили 62 раз(а) в 59 сообщениях
Регистрация: 28.03.2012
По умолчанию 30.01.2020, 09:59

Если какая-то кнопка не работает в IDE, то хорошо бы прислать протокол. Он находится в меню\Help\Send Bug Report...\Show Details
Ответить с цитированием
  (#10 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 723
Сказал(а) спасибо: 17
Поблагодарили 62 раз(а) в 59 сообщениях
Регистрация: 28.03.2012
По умолчанию 30.01.2020, 17:56

п.2 подправили.
Ответить с цитированием
  (#11 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 30.01.2020, 21:05

Цитата:
Сообщение от SergeMukhin78 Посмотреть сообщение
про Ctrl+F5 никто не жаловался
Я может двусмысленно написал. Прошу прощения. Комбинация Ctrl+F5 работает всегда. А вот нажатие кнопки "Execute" на панели инструментов не срабатывает.
Например сейчас специально открыл первый попавшийся проект и изменил цвет одного пикселя в bmp-файле кнопки панели инструментов. После этого действия кнопка "Execute" перестала работать. Однако её можно оживить, запустив проект через меню или комбинацией Ctrl+F5. Протокол выслал, но не вижу, как по нему можно что-то диагностировать.
Ответить с цитированием
  (#12 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 30.01.2020, 21:26

Есть ещё четвёртая "жалоба"
Она касается перевода редактора кода VIP на sciLexer. До указанного перехода проблем не было, а потом появилась следующая особенность: при выделении мышкой некоторого целого числа бывает, что выделяется не только само число, но и фрагмент кода выше, до такого же числа. Если этого не заметить (у меня было несколько случаев по-первости), то можно легко потерять выделенный фрагмент кода.
Скриншот показывает, что когда я выделял единицу (в красном овале), то sciLexer-редактор вместе с ней выделил фрагмент кода вплоть до другой единицы.
selection.jpg
Эта фигня бывает только при выделении целых чисел и примерно один раз из десяти. В остальных случаях все видимые в окне редактора числа, совпадающие с выделяемым, подмаргивают (выделение появляется и через долю секунды само снимается). Это было на моём старом компе в Win 7. Это продолжается и в новом компе с Win 10.

Последний раз редактировалось Винитарх; 30.01.2020 в 21:31
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 30.01.2020, 21:37

Сейчас поэкспериментировал и выяснил, что вышеописанное поведение бывает, когда выделение мышкой производится несколько медленно.
Такое поведение относится не только к целым числам, но и к именам.
Ответить с цитированием
  (#14 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 8,133
Сказал(а) спасибо: 5
Поблагодарили 336 раз(а) в 335 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 30.01.2020, 21:56

"Жалоба №3".
В результате экспериментов обнаружилось следующее.
Кнопка "Execution" перестаёт работать после редактирования ресурсов: пунктов меню, кнопок панели инструментов, bmp-файлов. Всегда. Причём не обязательно сохранять новый ресурс. Достаточно просто выйти из редактора без сохранения.
Лечение кнопки "Execution" выполняется запуском проги через меню или комбинацией Ctrl+F5. Кнопка "Execution" излечивается до следующего редактирования ресурсов.
Ответить с цитированием
  (#15 (permalink)) Старый
SergeMukhin78 SergeMukhin78 вне форума
Member
 
Сообщений: 723
Сказал(а) спасибо: 17
Поблагодарили 62 раз(а) в 59 сообщениях
Регистрация: 28.03.2012
По умолчанию 31.01.2020, 14:56

Цитата:
Сообщение от Винитарх Посмотреть сообщение
Протокол выслал,
протокол не получил
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как врубить устройство в панели инструментов звук S_Lucifer Звук и акустические системы 1 27.12.2010 19:57
Как вернуть стрелку возврата на панели инструментов? svetiks Любые вопросы от новичков 3 16.06.2008 17:42
Не корректное отображение на панели инструментов. Graph-nv Софт и программы 1 07.06.2008 13:55
Как удалить NOD32 из панели инструментов? kochegar Техническая поддержка 9 28.02.2008 22:57
Не отображаются открытые окна на панели инструментов. dctdkjv Любые вопросы от новичков 5 05.09.2007 15:21
Создание панели инструментов для IE kusarik Visual C++ 2 26.06.2007 16:30
Создание панели инструментов Sasyk Delphi 1 10.05.2007 17:40
Позиционирование в ряд панели инструментов CToolBar SYBEX Visual C++ 2 17.01.2006 18:15
Битмэпы панели инструментов The Lich WinAPI 10 31.12.2004 02:23
Как создать выпадающее меню на панели инструментов в Exel? Homini Visual Basic 0 15.09.2004 02:17
Как написать редактор панели инструментов Юля Visual C++ 0 23.04.2004 15:04
Создание Customizera и претаскивание кнопок на панели инструментов Anonymous Visual C++ 1 07.10.2003 12:05



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов