Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Контролы


Митя   (14.02.21 15:55

Не реагируют на колесо мыши форма, пайнтбокс и ещё некоторые
Это так задумано?
Плохо срабатывает событие CenterOnCurrent - не всегда центрует с первой попытки, особенно драгНдропом и изменением размеров горячими клавишами или из процедур - это когда в скролбоксе пытаюсь отцентровать пайнтбокс.
И ещё скроллбокс не реагирует на попытку изменить в нём позицию пайнтбокса при включенных параметрах привязки его к сторонам формы, но если в него добавить ещё один пайнтбокс то изменение положений пантбоксов в нём становится доступным


Vladimir Kladov ©   (17.02.21 19:58[1]

Давайте по порядку. На KOL непосредственно  давно не пишу, хотя помню, что колесо там вполне себе работало. Зато KOL поддерживается как выходная платформа для AL-IV, для которого я сделал визуальную библиотеку, и колесо там так же рабочее.

Когда вы приводите кучу тезисов, не приводя код, вы хотя бы поясняли, что вы использовали (MCK/руками), назначали событие OnMouseWheel/обрабатывали сообщение в OnMessage или еще как-то. Или просто надеетесь, что "оно само" все сделает? Нет, так это не работает.


Митя   (18.02.21 22:14[2]

Событие OnMouseWheel не работет.
Пишу только на kol&mck - на чистом kol пока нет большого опыта.
На форму кидаю скроллбокс, привязываю его стороны к сторонам формы(чтобы его размер изменялся с изменением размера формы), далее - кидаю на скроллбокс два пайнтбокса(если кидаю один то его невозможно центровать в скроллбоксе с привязанными сторонами к сторонам формы), один пайнтбокс для отрисовки изображения и для отцентровки; В итоге при использовании горячих клавиш изменения размера при уменьшении в исходное происходит цетровка по оси х, т.е. надо повторить нажатие горячих клавиш а то и не один раз чтобы задействовать и ось у. Ну и тоже касается драгндропа(все процедуры центровки прописаны и на драгндропе и на нажатии горячих клавишь).


Vladimir Kladov ©   (19.02.21 08:31[3]

Давайте разберемся с OnMouseWheel.
Как вы поняли, что событие не работает? Вы ставили точку останова в обработчике и она не сработала? Выводили что-то в лог, и вывода не было? Или вы решили, что ваш код (который вы не привели), который что-то (что, кстати?) должен был что-то сделать, не привел к видимому результату? А может, не должен был. Вы ведь даже не сказали, что должно происходить.

Судя по вашему сумбуру, я не понял, где связь между OnMouseWheel и каким-то горячими клавишами? Что за клавиши, как вы их назначаете, где обрабатываете.

П.С. Поймите уже с центровкой в скроллбоксе: нельзя в нем центровать 1 контрол. Размер скроллбокса определяется его содержимым. Если содержимое = 1 контрол, то центровка его внутри этого скроллбокса - это бессмыслица.


Rouse_ ©   (19.02.21 13:01[4]


> Митя   (18.02.21 22:14) [2]

Сделай минимально воспроизводимое демоприложение, выложи его на любой файловый обменник и дай здесь ссылку. Это будет на порядок быстрее.


Митя   (20.02.21 06:57[5]

https://disk.yandex.ru/d/DdfNxrnHwRTJmg
Вот, посмотрите - мож я что не так делаю.


Vladimir Kladov ©   (20.02.21 09:11[6]

Так остались какие-то вопросы? Колесо работает (правда, не знаю, что должно делать), картинка центрируется при открытии. Меню выглядит странно Ctrl+Oть (но может, так и задумано).
(в проекте при выкладывании надо было не забыть файл .dof, в нем хранятся символы условной компиляции, нужен как минимум KOL_MCK).


Митя   (20.02.21 09:34[7]

Откройте бмп файл размерот от 200х200, попробуйте нажать сперва клавишу 3 , затем 1 и увидите результат.
На событии колеса этот проект работает - подозреваю что дело в эксперте создания проекта, у меня установлен и старый и новый


Митя   (20.02.21 09:37[8]

Ещё забыл - расширте окно побольше или на весь экран и поэксперементируйте с изменением размера картинки


Vladimir Kladov ©   (20.02.21 16:48[9]

Про центровку я уже написал. Это очень простая функция, и она делает то, что написано, согласно формуле. Если нужно центрировать, делайте размер паинтбокса по размеру скроллбокса, если размер картинки меньше клиентского размера сколлбокса - по каждой координате отдельно, и центрируйте рисованием. Или попробуйте обойтись без скроллбокса.


Митя   (20.02.21 22:59[10]

Пробовал уже свой код, тот же результат но чаще - думал есть более изящное решение.
Спасибо за ответы и за совет обойтись без скроллбокса - попробую


Митя   (20.02.21 23:03[11]

Ещё вопрос, почему обязательно наличие второго пайнтбокса?


Vladimir Kladov ©   (21.02.21 06:14[12]

Читайте мой второй ответ. Бессмысленно центрировать в скроллбоксе 1 контрол.


Митя   (21.02.21 08:18[13]

Я хотел сделать просмотрщик как на виндовс, там ведь центровка скроллбокса с содержимым происходит, или я ошибаюсь?


Vladimir Kladov ©   (21.02.21 10:50[14]

В Windows, которой я пользуюсь, №7, нет в стандартном просмотрщике линеек прокрутки. Да если в каком-то и есть, не думаю, что они используют Delphi, KOL и скроллбокс из KOL.


Митя   (22.02.21 09:09[15]

Точно - в виндовс7 нету, я перепутал с каким то пайнтом


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо