Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Не срабатывавет изменение размеров элементов по onResize  [new]
Anton Klyauzov
Member

Откуда:
Сообщений: 585
Есть такая штука: разрабатываю базу для одной фирмы. Кто-то из клиентов любит окно на полный экран, а кто-то этого не приемлет. При этом у всех разное разрешение. Я сделал обработку события onResize, по которому меняю размеры элементов на форме. Но как-то криво все работает.
Например:
1. При развороте формы по DoCmd.Maximize срабатывает нормально (вроде)
2. При восстановлении после Maximize высота набора вкладок и ListView остается прежней, ширина обрабатывается некорректно (почему-то получается чуть шире размеров окна
3. При изменении размеров окна (мышью тяну за угол) ширина элементов по ResizeElements меняется с артефактами из п.3, а высота - не меняется.
Access 2003
Public Sub ResizeElements() ' установлена на событие onFormResize
On Error Resume Next

Dim lv As Control, lvSpace As Integer
Set lv = Forms!main_form!main_list_view
'lv - это listView control 6 на форме. находится на наборе вкладок main_tabs

DoCmd.Echo False

Forms!main_form!main_tabs.Width = Forms!main_form.WindowWidth - 100 - Forms!main_form!main_tabs.Left * 2
lv.Width = Forms!main_form.WindowWidth - lv.Left
Forms!main_form!main_tabs.Height = Forms!main_form.WindowHeight - lvSpace * 2 - Forms!main_form!main_tabs.Top * 3
lv.Height = Forms!main_form!main_tabs.Height - 320

DoCmd.Echo True 

End Sub

P.S. Умножение в вычислениях уже от безнадежности прикручивал - не знаю, как повлиять еще...
17 окт 05, 10:18    [1973970]     Ответить | Цитировать Сообщить модератору
 Re: Не срабатывавет изменение размеров элементов по onResize  [new]
Anton Klyauzov
Member

Откуда:
Сообщений: 585
Ага, разобрался. Был неверный порядок действий - сначала изменял размер набора вкладок, а потом - ListView.
Надо было наоборот.

Только вот проблема: onResize ловится при DoCmd.Maximize, DoCmd.Restore, а вот при нажатии оконных кнопок (Развернуть, восстановить) мышью - не срабатывает.
Как перехватить эти события?
17 окт 05, 12:07    [1974443]     Ответить | Цитировать Сообщить модератору
 Re: Не срабатывавет изменение размеров элементов по onResize  [new]
Anton Klyauzov
Member

Откуда:
Сообщений: 585
Уточнение:
1. По нажатию кнопки [развернуть] не изменяется размер ListView
2. По нажатию кнопки [восстановить] не изменяется размер набора вкладок

Странно.

Как будто нужно делать всё в определенном порядке: при уменьшении размера формы нужно сначала уменьшать внутренниие элементы и от них двигаться к внешним, а при увеличении - наоборот.

По идее, это правильно. Да вот только как отловить, уменьшается или увеличивается?
17 окт 05, 12:13    [1974475]     Ответить | Цитировать Сообщить модератору
 Re: Не срабатывавет изменение размеров элементов по onResize  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10938
Anton Klyauzov
По идее, это правильно. Да вот только как отловить, уменьшается или увеличивается?


сохранять предыдущий размер в приватных переменных уровня модуля формы
17 окт 05, 12:16    [1974492]     Ответить | Цитировать Сообщить модератору
 Re: Не срабатывавет изменение размеров элементов по onResize  [new]
Anton Klyauzov
Member

Откуда:
Сообщений: 585
MsDatabaseru
сохранять предыдущий размер в приватных переменных уровня модуля формы

Это в каких? Public переменные для формы?
Тут еще штука - процедура изменения размеров вынесена в другой модуль, то есть у меня получатся переменные глобаные для все программы.
17 окт 05, 13:49    [1975008]     Ответить | Цитировать Сообщить модератору
 Re: Не срабатывавет изменение размеров элементов по onResize  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10938
лучше приватные а передавай как аргумент функции
17 окт 05, 14:49    [1975341]     Ответить | Цитировать Сообщить модератору
 Re: Не срабатывавет изменение размеров элементов по onResize  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10938
не помню точно сделаны там вкладки или нет
посмотри :

взял с MSaccess.ru пока он был жив

http://www.msdatabase.ru/index.php?uncommented.htm
17 окт 05, 15:03    [1975437]     Ответить | Цитировать Сообщить модератору
 Re: Не срабатывавет изменение размеров элементов по onResize  [new]
Anton Klyauzov
Member

Откуда:
Сообщений: 585
Уж больно громоздко.
Я по своему сделаю
25 окт 05, 09:24    [2000983]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить