powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как узнать координаты формы? (+)
7 сообщений из 7, страница 1 из 1
как узнать координаты формы? (+)
    #32074573
ICBa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сабж. Средствами аксесса? Как это сделать через WinAPI я знаю, интересно как сделать средствами аксесса?

Проблем такой:

Запоминаю в базе размеры открытых форм:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
For Each frm In Forms
    wRec.AddNew
    wRec![NAME] = frm.NAME
    temp = GetWindowRect(frm.hwnd, rct)
    If temp <>  0  Then
      wRec![PX] = rct.Left
      wRec![PY] = rct.Top
      wRec![Width] = rct.Right - rct.Left
      wRec![Height] = rct.Bottom - rct.Top
    End If
    wRec.Update
Next


Восстанавливаю координаты формы:
Код: plaintext
temp = MoveWindow(frm.hwnd, wRec![PX], wRec![PY], wRec![Width], wRec![Height],  1 )


Так вот, запоминаются координаты для "всплывающих" и "не всплывающих" окон одинаково а вот при восстановлении они отрисовываются по-разному.
"Всплывающие" окна рисуются относительно верхнего левого угла ЭКРАНА, а "не всплывающие" относительно левого верхнего угла рабочей области Аксесса (под всеми верхними меню). В резулльтате получаем смещение окон зависящее от кол-ва строк в верхнем меню аксесса :(

Как сделать чтобы формы восстанавливались одинаково?
...
Рейтинг: 0 / 0
как узнать координаты формы? (+)
    #32074598
alk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
alk
Гость
надо же сам задал ворос - сам же и ответил.

для всплывающих окон делай смещение равное положению исходной формы
...
Рейтинг: 0 / 0
как узнать координаты формы? (+)
    #32074599
Маveric
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно API функцию использовать (ClientToScreen помоему)
...
Рейтинг: 0 / 0
как узнать координаты формы? (+)
    #32074624
ICBa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какое смещение? Вся проблема как раз в том чтобы узнать это смещение.
Окно может быть всплывающим, а может и не быть... Надо чтобы в любом случае внутри аксесса оно в нужные координаты перемещалось.
...
Рейтинг: 0 / 0
как узнать координаты формы? (+)
    #32074629
ICBa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю:
координаты
Код: plaintext
temp = GetWindowRect(frm.hwnd, rct)
берутся правильно, а вот при перемещении формы в эти координаты "всплывающее" окно и "не всплывающее" формы оказываются со смещением. "Не всплывающие" сдвигаются вниз на высоту верхнего меню.
...
Рейтинг: 0 / 0
как узнать координаты формы? (+)
    #32074756
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если неахота искать причину загани проблемму в глубь:
1)Запомни координаты
2)отрисуй по ним форму
3)Снова прочитай координаты и сравни с сохраненными
если смещение то отрисуй по сохраненным-смещение
...
Рейтинг: 0 / 0
как узнать координаты формы? (+)
    #32074775
ICBa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, хорошая идея :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как узнать координаты формы? (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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