Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программное перемещение панелей инструментов по вертикали / 23 сообщений из 23, страница 1 из 1
29.10.2015, 18:34
    #39090444
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Здравствуйте!

Есть пользовательское меню и две панели инструментов.
Меню закреплено сверху.
Под ним – последовательно первая и вторая панели инструментов.
Возник вопрос: возможно ли программно поменять местами эти панели, если да, то как?

Присвоение новых значений свойствам CommandBar.Top результата не дает –
ошибки не возникает, но и значения не меняются.

Тогда пробую так (код под спойлером).
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
 Dim CmdBar01 As CommandBar, _
     CmdBar02 As CommandBar
 Set CmdBar01 = CommandBars("Tools_T1")
 Set CmdBar02 = CommandBars("Tools_T2")
 
' Начальное состояние пользовательского меню
 CommandBars("Menu_M").Protection = msoBarNoChangeDock
 CommandBars("Menu_M").Position = msoBarTop
 
' Начальное состояние первой панели инструментов
 CmdBar01.Protection = msoBarNoProtection
 CmdBar01.Position = msoBarTop
 
' Начальное состояние второй панели инструментов
 CmdBar02.Protection = msoBarNoProtection
 CmdBar02.Position = msoBarTop
 
' Начальные положения панелей инструментов по вертикали
 Top1 = CmdBar01.Top
 Top2 = CmdBar02.Top
 
' Открепляем панели инструментов
 CmdBar01.Position = msoBarFloating
 CmdBar02.Position = msoBarFloating
 
' Панели инструментов меняются между собой положением по вертикали
 CmdBar01.Top = Top2
 CmdBar02.Top = Top1
 
' Вторую панель инструментов переводим вверх. Встает, как и планировалось, сразу под меню.
 CmdBar02.Position = msoBarTop
 
' Первую панель инструментов переводим вверх. ОЖИДАЛОСЬ, ЧТО ВСТАНЕТ ПОД ВТОРОЙ, НО НЕТ.
' Вытесняет вторую ниже и встает на первоначальное место, сразу под меню.
 CmdBar01.Position = msoBarTop

Смотрю последовательно по шагам – все идет, как надо, но последний шаг перечеркивает все достижения.

Можно ли как-то это выполнить?
Именно программно. Иные способы мне известны, но пока интересует этот.
...
Рейтинг: 0 / 0
29.10.2015, 19:09
    #39090468
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
__Michelle,

ой... может я и не прав... попробуйте, когда играете в наперстки использовать третий стаканчик...
махлевать шариком с двумя скакашками проблематично...
CmdBar01.Top = Top2
CmdBar02.Top = Top1
...
Рейтинг: 0 / 0
29.10.2015, 19:24
    #39090480
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
vmag CmdBar01.Top = Top2
CmdBar02.Top = Top1
В этот момент позиции свободны, поскольку было предварительно
CmdBar01.Position = msoBarFloating
CmdBar02.Position = msoBarFloating,
в результате чего обе панели съежились и отскочили в сторону.
...
Рейтинг: 0 / 0
29.10.2015, 19:36
    #39090489
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
__Michelle,

и то что тут
' Вторую панель инструментов переводим вверх. Встает, как и планировалось, сразу под меню.
CmdBar02.Position = msoBarTop


' Первую панель инструментов переводим вверх. ОЖИДАЛОСЬ, ЧТО ВСТАНЕТ ПОД ВТОРОЙ, НО НЕТ.
' Вытесняет вторую ниже и встает на первоначальное место, сразу под меню.
CmdBar01.Position = msoBarTop

msoBarTop - одинаково тоже ничё?
...
Рейтинг: 0 / 0
29.10.2015, 19:43
    #39090494
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
vmag__Michelle,

и то что тут
' Вторую панель инструментов переводим вверх. Встает, как и планировалось, сразу под меню.
CmdBar02.Position = msoBarTop


' Первую панель инструментов переводим вверх. ОЖИДАЛОСЬ, ЧТО ВСТАНЕТ ПОД ВТОРОЙ, НО НЕТ.
' Вытесняет вторую ниже и встает на первоначальное место, сразу под меню.
CmdBar01.Position = msoBarTop

msoBarTop - одинаково тоже ничё?Естественно.
Это указание места размещения - сверху.
Посмотрели бы возможные константы и таких вопросов бы не задавали, я думаю.
...
Рейтинг: 0 / 0
29.10.2015, 19:56
    #39090500
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
__Michelle,

ну как бы там нибыло, получается, что вверху будет всегда тот, кто последним урвал msoBarTop
...
Рейтинг: 0 / 0
29.10.2015, 19:58
    #39090501
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
RowIndex
...
Рейтинг: 0 / 0
29.10.2015, 20:00
    #39090505
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
__Michelle,

попробуйте две последних строки кода поменять местами - что будет ?
...
Рейтинг: 0 / 0
29.10.2015, 20:00
    #39090506
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
vmag__Michelle,

ну как бы там нибыло, получается, что вверху будет всегда тот, кто последним урвал msoBarTop Нет. Проверено.
Зачем гадаете?
...
Рейтинг: 0 / 0
29.10.2015, 20:02
    #39090509
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
__MichelleЗачем гадаете?

Затем, что нет примера под рукой, больше не буду...
...
Рейтинг: 0 / 0
29.10.2015, 20:03
    #39090510
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Predeclared,

А вот это, похоже, то, что надо!
У меня именно на Вас была надежда!
Спасибо!

Вообще, надо бы и самой научиться список свойств до конца долистывать.
Но, увы...
...
Рейтинг: 0 / 0
29.10.2015, 20:10
    #39090517
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Predeclared,

Да, все получается.
Только Left у нижней надо будет обнулить, а то в хвост верхней пристраивается.
Еще надо будет попробовать на реальных длинных панелях, эти взяла пробные короткие.

СПАСИБО!!!
...
Рейтинг: 0 / 0
29.10.2015, 20:24
    #39090524
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Не на чем.

Можно значение RowIndex для убираемой вниз взять "с запасом",
что бы не менять Left.
...
Рейтинг: 0 / 0
29.10.2015, 20:30
    #39090530
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Predeclared,

Нет, запас не помог (сделала +2), так же встает.
...
Рейтинг: 0 / 0
29.10.2015, 21:03
    #39090549
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Проверила на реальных данных.
Все прекрасно.
И совмещение в одной горизонтали получается и прочее...

Спасибо!!!
Ведь второй день жонглирую.)))
...
Рейтинг: 0 / 0
29.10.2015, 21:07
    #39090551
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
__MichelleНет, запас не помог (сделала +2), так же встает.
?
...
Рейтинг: 0 / 0
29.10.2015, 21:12
    #39090555
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Predeclared,

Сделайте, пожалуйста, в 2000-м.(((
...
Рейтинг: 0 / 0
29.10.2015, 21:24
    #39090561
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Predeclared,

Привет... давно не было...
Я как доктор Ватсон могу только спросить - "Да,... но чёрт возьми... КАК ???"

Я панели не юзаю, но признаюсь не нашел как по кнопке вызывается код из модуля,
до панелей добрался включаю / выключаю... если плавающую закинуть на верх ко всем - тоже весело...
...
Рейтинг: 0 / 0
29.10.2015, 21:30
    #39090565
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Predeclared,

Фух... разобрался... просто и гениально...
...
Рейтинг: 0 / 0
29.10.2015, 22:56
    #39090610
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
в 2000:
...
Рейтинг: 0 / 0
29.10.2015, 22:58
    #39090612
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
vmag... если плавающую закинуть на верх ко всем - тоже весело...
Привет.

Ага, я тоже поигрался с этим.
...
Рейтинг: 0 / 0
30.10.2015, 00:28
    #39090649
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
Predeclared,

Спасибо. Что-то отвлеклась.
Но у меня все равно так же, влево нижняя сама не прижимается, Left помогает.

Вот оба варианта.
Ваш сверху, я там панель Temp тоже вверх перенесла,
думала, она тоже будет участвовать в перемещениях, но она просто всегда переходит в первую строку.
Мой вариант на рисунке внизу.
...
Рейтинг: 0 / 0
30.10.2015, 00:43
    #39090655
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное перемещение панелей инструментов по вертикали
А сейчас и в Вашей, и в моей даже без "запаса" все само выравнивается.
Ну, дела...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программное перемещение панелей инструментов по вертикали / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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