Элемент управления "Полоса прокрутки" в диалоге

Автор dndn, 15 июля 2014, 20:28

0 Пользователи и 1 гость просматривают эту тему.

dndn

Доброго времени суток!  :)

Ума не приложу для чего его можно использовать?

А ведь если он есть, значит не только можно, но в некоторых случаях и нужно?

А вдруг именно у меня именно такой случай?

rami

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

dndn

Есть такое расширение для Calc - DataForm.

Ставил его ради интереса. Там по-моему с помощью него производится переход в диалоге по строкам на листе?  ???
Не могли бы глянуть на досуге?

Теперь что касается применения, то я его по-моему уже частично вижу.

Например, попытаться реализовать виртуальный субдиалог. Т.е. выстроить в один ряд несколько списков и через этот элемент синхронно прокручивать элементы у всех списков?

В свойствах списков нет такого, которое бы указывало на индекс верхнего видимого элемента, или как-то его вычислить через другие?

dndn

И тогда еще один интересный вопрос. Можно ли, и если да, то как - получить доступ к прокрутке самого списка?

rami

Цитата: dndn от 16 июля 2014, 00:13В свойствах списков нет такого, которое бы указывало на индекс верхнего видимого элемента, или как-то его вычислить через другие?
Это можно сделать с помощью кода:
oDialog1.getControl("ListBox1").makeVisible(position) position — это номер элемента в списке (начиная с нуля).
ЦитироватьИ тогда еще один интересный вопрос. Можно ли, и если да, то как - получить доступ к прокрутке самого списка?
Полоса прокрутки возникает автоматически , если количество элементов не вмещается в видимую часть списка.
Расширение посмотрю.
ЦитироватьНапример, попытаться реализовать виртуальный субдиалог. Т.е. выстроить в один ряд несколько списков и через этот элемент синхронно прокручивать элементы у всех списков?
Ниасилил ???

dndn

Цитата: rami от 16 июля 2014, 00:41Ниасилил
Ну, в субформе все поля прокручиваются синхронно, а это нечто подобное через списки в диалоге.

dndn

Цитата: rami от 16 июля 2014, 00:41Полоса прокрутки возникает автоматически , если количество элементов не вмещается в видимую часть списка.
Расширение посмотрю.
Ну списки можно частично перекрыть, чтобы полоса прокрутки у каждого спряталась под следующий список и стала невидимой, а значит и недоступной. Пользователь даже не заметит отсутствия встроенной и ему ничего не останется, как использовать только мою :)

rami

Цитата: dndn от 16 июля 2014, 00:45Ну, в субформе все поля прокручиваются синхронно, а это нечто подобное через списки в диалоге.
Цитата: dndn от 16 июля 2014, 00:55Ну списки можно частично перекрыть, чтобы полоса прокрутки у каждого спряталась под следующий список и стала невидимой, а значит и недоступной. Пользователь даже не заметит отсутствия встроенной и ему ничего не останется, как использовать только мою
Не понятен хитрый замысел 8-) Список можно прокручивать и без полосы.

dndn

#8
Цитата: rami от 16 июля 2014, 01:05Список можно прокручивать и без полосы.
Так я ж этого и добиваюсь. Как?

dndn

#9
Цитата: rami от 16 июля 2014, 01:05Не понятен хитрый замысел
Ну как бы это объяснить на пальцах?
Адресная книга в режиме просмотра и редактирования. В режиме просмотра синхронно в свернутом, табличном виде прокручиваются ФИО, адрес, телефон и т.д. Затем остановившись на ком-либо, пользователь переключается в режим редактирования абонента, где все поля уже развернуты и разбросаны по отдельности и предоставляется дополнительный сервис - выбор из раскрывающихся списков, поле даты из календаря и т.д. После редактирования снова возвращается в режим просмотра и в компактном виде прокручивает дальше.
Вроде пример показательный, не? ;)

rami

Если элементов в списке мало, то не прокручивается, а если много, то прокручивается за сам список мышкой.
Расширение  DataForm. не смог установить , древнее оно очень.
А насчёт формы может быть нужно это?

dndn

#11
Не, мне адресная книга не нужна, это я просто пример привел, как оно должно работать. И не в Calc'е это.
У меня база данных, искусственно разделенная, в которой главная форма вынесена в отдельный документ Writer'а, туда же вынесен весь код, чтобы пользователь мог скачивать обновления интерфейса в файле *.odt, не затрагивая базу с внесенными данными в *.odb.




rami

Я в базах мало разбираюсь, могу помочь с Calc и Basic и может быть с Writer

dndn

#13
Так вы мне подскажите как прокручивать список без полосы в диалоге Basic, дальше я сам все придумаю...

dndn

#14
Корявый план имеется. Выделить тот элемент, при котором список прокрутится и затем снять выделение.
Может поэлегантней имеется?

ЗЫ. Хотя выделенный может находиться и вне видимой зоны... :(