powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в форме поймать событие Scroll?
25 сообщений из 57, страница 2 из 3
Как в форме поймать событие Scroll?
    #39551791
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JavaStudentПодчиненная ленточная форма. 31 квадратик (2 см на 2 см) в строке. 44 строки. 1 колонка, например, наименование стран. Двигаю бегунок.
Наименование стран пропадает. Определяю положение бегунка - двигаю первый столбик. Но таймер очень плохое решение...
Другого, пока нет...
Мелкнула идея, но пример было лень делать, решил поискать по форумам (может такое уже было ?) ... Нашел на соседнем форуме по Access решение уважаемого mobile (правда, чтобы скачать его, надо там зарегистрироваться, но это уж вам решать). Посмотрите, возможно вам это поможет как-то в решении вашей задачи.
http://www.cyberforum.ru/ms-access/thread1347510.html#post7075934
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551801
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport,
там тоже таймер
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551831
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не сделать свой "бегунок"?
Точнее, взять готовый scrollbar из Microsoft Forms 2.0, и описать экшн его событий?
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551838
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PredeclaredА почему бы не сделать свой "бегунок"?
Точнее, взять готовый scrollbar из Microsoft Forms 2.0, и описать экшн его событий?
Уже пару раз, после очередных обновлений винды, получал сообщение "Приложение ... не поддерживает этот элемент ActiveX". Проблема освещалась на форуме. Не критично, в конце концов лечится, но неудобство остается.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551842
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared, бОльшие сложности составят синхронизация в обратном направлении, т.е. изменилось положение формы вследствие какого-то события(смена фокуса, верт.прокрутка мыши, гориз.прокрутка мыши, прокрутка через middle button, ввод в поле, которое частично невидно, смена источника данных), это нужно зафиксировать, обработать и новые значения передать на полосы прокрутки.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551847
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергейверт.прокрутка мыши, гориз.прокрутка мыши, прокрутка через middle button я имею ввиду не клики, левой кнопкой, а работу колесика и средней кнопки.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551848
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вакшуль Сергейguest_rusimport,
там тоже таймер
К сожалению - да, если бы не необходимость синхронизации вертикальных полос прокрутки двух подчиненных форм... у ТС 44 строки - на один экран, боюсь, не поместится... Может сделать кнопки листания экранами, отказавшись от вертикальных полос прокрутки этих двух подчиненных форм?
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551855
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то вы все усложняете.

Проблема задачи ТС в том, что в ленточной форме нет "закрепления столбцов", как в табличной.

Он идет по пути перемещения нужного для видимости поля вслед за скролом.

Я предлагаю другой путь:
Не трогать нужные для видимости поля,
а елозить остальными 30 полями,
пользуя не штатный скрол, а свой "бегунок" (можно даже полностью самому "слепить").

Типа такого (очень сыренько, только показать идею):
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551859
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared,
симпатично :)
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551860
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared,
ну, вот, опять... скачал пример ... получаю сообщение "Отсутствует объект в данном элементе управления"
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551863
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport,

Небось какой новомодный Access?

У мну в 2003 и 2007 все гуд.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551868
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclaredguest_rusimport,

Небось какой новомодный Access?

У мну в 2003 и 2007 все гуд.
Да всё как обычно, я с 2003 -го и не слезал (забыл ты, наверное) ... Win7 64бит, Акс 2003 32 бит
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551869
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Была мысль рисовать свой ползунок. Зная ширину подчиненной формы, зная ширину квадратиков... И выводить квадратики по мере движения своего ползунка. Но я испугался реализации. Учитывая таймер и Hook, возможно это меньшее зло. Есть большие сомнения, что большое кол-во элементов будут двигаться приемлемо для глаз. Еще плюс этого решения, что можно брать не месяц (31 день), а год или три. А на самом бегунке менять надпись при движении январь 2017, февраль 2017, март 2019. При остановке расчет и вывод видимых квадратиков.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551873
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Win7 64бит

"Вот оно как, МихалычЪ" (c)
:)
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551879
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudent... Есть большие сомнения, что большое кол-во элементов будут двигаться приемлемо для глаз. ...

На самом деле, ничего двигать и не нужно.
Если в видимой области формы помещается, например, 16 полей, то их и должно быть ровно 16.
Менять надо только значения ControlSource Property этих 16 полей.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551880
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и заголовки столбцов.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551882
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared>>Win7 64бит

"Вот оно как, МихалычЪ" (c)
:)
Да хрен с ним... Всё это в итоге чинится... Идея твоя и так, без примера, понятна... Я то имел ввиду закрепить нужный столбец в одной подчиненной форме , а в другой подчиненной форме, расположенной притык к первой, выводить остальные столбцы, а вертикально листать эти формы с помощью сделанных кнопок поэкранно, убрав из форм вертикальные линейки прокрутки.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551885
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport,

Помню, была битва за синхронизацию.
Это не мой паттерн, потому даже не вникал в сложности.
Я сложности стараюсь обходить стороной. :)
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551897
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclaredguest_rusimport,
...
Я сложности стараюсь обходить стороной. :)
Аналогично :)
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551898
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudentВопрос как инициировать событие Scroll?есть еще одно направление, если есть желание.
См.вложение. Это не готовое решение.
Просто демонстрация, как можно поймать событие скрола без хуков.

Покликайте, покрутите подформу справа(слева не трогайте). Результат прокрутки(просто смена чисел) будет выведен в поля заголовков подформ.

А вот как же синхронизировать две формы, оставляю вам. Главное, что событие можно сказать, организовано.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551900
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Красным выделил куда нужно смотреть. Цифра изменилась - прокрутка, можно сказать зафиксирована.

В основе - замаскированное вычисляемое поле в форме f1_1. Поле растянуто по всей длине формы на заднем плане. Любой чих вызывает его перевычисление. Собственно, вот оно и событие.

Но тут нужно еще копать и копать.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551901
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudent, да что же ты примеры то не смотришь?
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39551902
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,
поздно, наверно :)

Сколько раз вис Access, пока шла работа? :)
Панург, а что скажете насчет переключения Tab-ом. Во вложении ваш файл. Я только добавил несколько контролов и вертикальную полосу прокрутки, чтобы можно было оценить, где находится целевой контрол. Прокрутка окна, вызванная сменой активного контрола обрабатывается или нет? В код не смотрел, только на результат. Если клацать Tab, то целевой контролл смещается по горизонтали как хочет. Эти сдвиги код ловит?

а accLocation это что?
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39552041
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль СергейСколько раз вис Access, пока шла работа? :)Практически нисколько... Я вкурсе, поэтому не делаю резких движений. Технология отработана и применяется для создания разных элементов управления "на лету" (treeview, listview и прочего).
Вакшуль Сергейчто скажете насчет переключения Tab-ом.Сделал два варианта - ловим через события формы или каждого скрола (см. примеры).

Вакшуль Сергейа accLocation это что?недокументированный метод accLocation - позволяет узнать в пикселях расстояние от края экрана сверху и слева, высоту и ширину контрола, в данном случае текстбокса. Получаю ширину текстбокса в пикселях и в твипах. Таким образом я узнаю сколько твипов на пиксель без API.
...
Рейтинг: 0 / 0
Как в форме поймать событие Scroll?
    #39552048
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергей,
Панургнедокументированный методсуществует множество недокументированных методов. Некоторые использую. Можно получать интересные результаты.
...
Рейтинг: 0 / 0
25 сообщений из 57, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в форме поймать событие Scroll?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]