LEADERSOFT.ru Разработка на заказ программ и сайтов
ЕСЛИ БАЗА ВАМ НУЖНА В ЛИДЕРСОФТ ЗАЙДИ СПЕРВА!
Все примеры Microsoft Access - VBA


















































03. Первая часть - при загрузке формы скрывается ее заголовок. Средствами Access можно убрать строку меню и границу, но тогда форма не имеет четко выраженной границы. Вторая часть - рисование полилиний разного цвета. При построении графиков для наглядности удобно представлять данные разными цветами в зависимости от уровня стандартные средства этого почему-то не поддерживают. Третья часть - пример использования регионов.

Все примеры Microsoft Access
'константы для функции пересчета твипов
'значения 88 и 90 могут отличаться!
Public Const LOGPIXELSX = 88
Public Const LOGPIXELSY = 90

'константы для функции скрытия заголовка
Public Const STYLE = (-16)
Public Const CAPTION = &HC00000
Public Const BORDER = &H800000
Public Const NOMOVE = &H2
Public Const NOSIZE = &H1
Public Const NOZODER = &H4
Public Const ShowWindow = &H40
Public Const NOACTIVE = &H10
Public Const FRAMECHANGED = &H20

'вычисление коэффициента пересчета Twip в Pixel
Public Function TwipToPixel(i As LongAs Long
    Dim hDc As Long
    'получение идентификатора контеста устройства
    hDc = GetDC(0)
    Select Case i
    Case 1
    TwipToPixel = 1440 / GetDeviceCaps(hDc, LOGPIXELSX)
    Case 2
    TwipToPixel = 1440 / GetDeviceCaps(hDc, LOGPIXELSY)
    End Select
    'освобождение идентификатора
    ReleaseDC 0, hDc

End Function

'--
'GetDC возвращает контекст устройства (DC) окна
Public Declare Function GetDC Lib "user32" (ByVal hw As LongAs Long
'ReleaseDC освобождает ресурсы,которые были заняты
'при использовании GetDC для получения контекста устройства
Public Declare Function ReleaseDC Lib "user32" (ByVal hw As LongByVal hDc As LongAs Long

'получение характеристик дисплея
Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDc As Long, _
   ByVal iCapability As LongAs Long

'функция позволяет получить используемый стиль окна
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
 (ByVal hwnd As LongByVal nIndex As LongAs Long

'функция позволяет установить новый стиль окна
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
 (ByVal hwnd As LongByVal nIndex As LongByVal dwNewLong As LongAs Long
 
'функция отображает окно в указанном месте
Public Declare Function SetWindowPos Lib "user32.dll" _
(ByVal hwnd As LongByVal hWndInsertAfter As LongByVal As Long, _
ByVal As LongByVal cx As LongByVal cy As LongByVal _
wFlags As LongAs Long

' Функция используется для поиска окна
 Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
  (ByVal hWndParent As Long, _
   ByVal hWndChildAfter As Long, _
   ByVal lpClassname As String, _
   ByVal lpWindowName As StringAs Long

' Функция рисует ломаную с помощью выбранного "пера"
Public Declare Function Polygon Lib "gdi32" (ByVal hDc As Long, _
     lpPoint As POINTAPI, ByVal nCount As LongAs Long

' Функция рисует ломаную с помощью выбранного "пера"
Public Declare Function Polyline Lib "gdi32" (ByVal hDc As Long, _
     lpPoint As POINTAPI, _
     ByVal nCount As LongAs Long



' Структура координаты точки
Public Type POINTAPI
    x As Long
    Y As Long
End Type


'функция выбирает устройство для рисования
Public Declare Function SelectObject Lib "gdi32.dll" (ByVal hDc _
As LongByVal hObject As LongAs Long

'функция удаляет созданный объект для освобождения ресурсов
Public Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject _
As LongAs Long

'функция создает новое "перо"
Public Declare Function CreatePen Lib "gdi32.dll" (ByVal fnPenStyle _
As LongByVal nWidth As LongByVal crColor As LongAs Long

'функция создает новую "кисть"
Public Declare Function CreateSolidBrush Lib "gdi32.dll" (ByVal _
crColor As LongAs Long

'функция создает прямоугольный регион
Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As LongByVal X2 As LongByVal Y2 As LongAs Long

'функция создает комбинацию из двух регионов
Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As _
LongByVal hSrcRgn1 As LongByVal hSrcRgn2 As LongByVal _
nCombineMode As LongAs Long

'функция отображает регион на окно
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As _
LongByVal hRgn As LongByVal bRedraw As BooleanAs Long

'функция позволяет получить размеры и положение окна
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As _
Long, lpRect As Rect) As Long

'структура для данных, получаемых GetWindowRect
 Public Type Rect
  left As Long
  top As Long
  right As Long
  bottom As Long
End Type

'функция управляет "показом" окна
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As _
LongByVal nCmdShow As LongAs Long
'--



Public Function Скрыть_Заголовок(frm As Form, IndexX As Long, IndexY As Long)
    Dim OldStyle As Long, NewStyle As Long
    Dim As Long, Y As Long
    
    'получение текушего стиля окна
    OldStyle = GetWindowLong&(frm.hwnd, STYLE)
    
    'определение и установка нового стиля окна
    NewStyle = (OldStyle And Not CAPTION) Or BORDER
    SetWindowLong frm.hwnd, STYLE%, NewStyle&
    
    'настройка размеров окна
    x = frm.Width \ IndexX
    Y = frm.Section(acDetail).Height \ IndexY
    
    'отображение окна с новыми свойствами
    SetWindowPos frm.hwnd, 0, 0, 0, x, Y, NOMOVE Or NOZODER Or FRAMECHANGED

End Function