Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать обрамление формы ? / 10 сообщений из 10, страница 1 из 1
17.02.2004, 13:57:51
    #32411926
Rafa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
Понадобилось обрамление для формы без заголовка - сделал прямоугольник по периметру формы, потом два один приподнятый другой утопленный - чуть меньше по размерам, вроде неплохо, но жутко неудобно при изменении дизайна формы - прямоугольники на форме мешаются.....
нашел пример для VB http://www.vbnet.ru/faq/showtopic.asp?id=62
но адаптировать для Accessa не могу, как ни пытался.....:(
Вопрос к зубрам - помогите, хоть намек дайте......

Private Sub Form_Open(Cancel As Integer)
Dim lngWidth As Long
Dim lngHeight As Long

Call GetScreenDPI
frmDimensions = FormDimensions(Me) ' запрос размеров формы ME

' тут надо позиционировать два прямоугольника по периметру формы
Me.recTop.Left = 30
Me.recTop.Top = 30

Me.recTop.Width = frmDimensions.Width * (TWIPSPERINCH / m_ScreenXdpi) - 30
Me.recTop.Height = frmDimensions.Height * (TWIPSPERINCH / m_ScreenYdpi) - 30

Me.Width = Me.recTop.Width + 50
Me.InsideHeight = Me.recTop.Height + 50

End Sub

Private Function FormDimensions(frm As Form) As Dimensions
Dim frmRect As RECT
GetWindowRect frm.hWnd, frmRect
' возвращает значение в пикселях - надо перевести их в твипы
FormDimensions.Width = frmRect.Right - frmRect.Left
FormDimensions.Height = frmRect.Bottom - frmRect.Top
End Function

Private Sub GetScreenDPI()
Dim lngDC As Long
Dim lngPixelsPerInch As Long
Const nTwipsPerInch = 1440

lngDC = GetDC(0)

'Horizontal
m_ScreenXdpi = apiGetDeviceCaps(lngDC, LOGPIXELSX)
'Vertical
m_ScreenYdpi = apiGetDeviceCaps(lngDC, LOGPIXELSY)

lngDC = ReleaseDC(0, lngDC)
End Sub

объявления стандартные ;) дальше пройти не могу - не хватает шестеренок ;)
...
Рейтинг: 0 / 0
17.02.2004, 14:13:27
    #32411975
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
Очень много раз обсуждалось. Попробуй поиском .
...
Рейтинг: 0 / 0
17.02.2004, 16:12:21
    #32412281
Rafa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
Спасибо за ответ, а точнее нельзя .......?
...
Рейтинг: 0 / 0
17.02.2004, 16:50:22
    #32412401
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
А почему бы не сделать проще: разместить прямоугольники где угодно, уменьшить их размеры до минимума, а на открытие формы присваивать нужные размеры?
...
Рейтинг: 0 / 0
17.02.2004, 23:22:42
    #32412743
Rafa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
Я пробовал так делать, но....... корректно можно определить и позиционировать (средствами VBA) только .Top и Left а ширину и высоту формы как определить ??? Просто не получается. Вот в апишниках и определил, но застрял с преобразованием в твипы... и прошу совета у гуру....
...
Рейтинг: 0 / 0
17.02.2004, 23:24:20
    #32412744
Rafa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
Можно из этого сделать неплохой сабж по дизайну форм ;).........
...
Рейтинг: 0 / 0
18.02.2004, 06:33:35
    #32412803
Msmaster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
Посмотри
http://hiprog.com/access/article.asp?idd=13
...
Рейтинг: 0 / 0
18.02.2004, 10:19:23
    #32412992
Serafim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
Используйте совет IgorM
и свойства формы
.InsideHeight
.InsideWidth
.Section(i).Height
А дальше - примерно так (общая идея управления высотой)

Код: plaintext
1.
2.
3.
4.
Private Sub Form_Resize()
Me.RRR.Height = Me.InsideHeight - Me.Section( 2 ).Height
или
Me.RRR.Height = Me.InsideHeight - Me.Section( 1 ).Height - Me.Section( 2 ).Height - Me.RRR.Top
End Sub


Удачи
...
Рейтинг: 0 / 0
23.12.2004, 02:59:53
    #32840561
Rafa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать обрамление формы ?
http://access.boom.ru/Library/Forms/FormsBorder.htm вот тему дожал ;)))
может кому интересно будет.
...
Рейтинг: 0 / 0
23.12.2004, 09:03:42
    #32840698
Как сделать обрамление формы ?
Интересно.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать обрамление формы ? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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