Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создать фон
 
 автор: clerkus   (14.03.2012 в 21:40)   личное сообщение
 
 

Всем доброго времени ....
Вообщем вопрос такой ( может уже ибыло конечно, но поиск мну ничего не сказал) можно ле сделать фон базы из картинки? А то формы маленькие и выпрыгивают на стандартном синем фоне (как-то скучно это)

  Ответить  
 
 автор: Lukas   (14.03.2012 в 22:43)   личное сообщение
 
 

В А2003 можно. Исходник на lebans.com
В А2007 эта метода не работает.
Почему не знаю.

  Ответить  
 
 автор: Дядя Федор   (15.03.2012 в 07:58)   личное сообщение
 
 

Знаю как поменять цвет.

  Ответить  
 
 автор: V.Kim   (09.04.2012 в 14:45)   личное сообщение
 
 

Сделать форму с рисунком и менять ее размеры в зависимости от размеров окна базы.

  Ответить  
 
 автор: Волшебник   (10.04.2012 в 07:56)   личное сообщение
 
 

У формы же свойство рисунок есть.

  Ответить  
 
 автор: час   (10.04.2012 в 09:20)   личное сообщение
 
 

для Волшебник
фон - рисунок(за формами фон не серый сделать, а рисунок)

  Ответить  
 
 автор: Волшебник   (10.04.2012 в 15:32)   личное сообщение
 
 

Можно так попробовать.


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

Немного поразмыслив, я подумал, а что если брать стартовую (первую открывающуюся) форму и растягивать ее на весь экран? Отлично, имея форму и весь присущий ей богатый функционал, мы можем разместить на ней любые компоненты, а используя события, эффективно управлять этими компонентами...

Тут же возникли проблемы. Если мы раскрываем хоть одну форму на весь экран, будьте уверены, остальные формы тотчас последуют ее примеру :). Это стандарт MDI (многодокументного интерфейса). Поэтому пользоваться DoCmd.Maximize приходится с большой оглядкой.... Но даже если Вас съели, все равно есть выход ;).

Я нашел простой способ:

Dim lngFormHeight As Long
Dim lngFormWidth As Long


DoCmd.Echo False ' отключаем прорисовку, чтобы не отображать дергания экрана
DoCmd.Maximize ' развернем форму на весь экран
lngFormWidth = Me.InsideWidth 'сохраним ширину на данный момент
lngFormHeight = Me.InsideHeight 'сохраним высоту на данный момент
DoCmd.Restore 'восстановим
DoCmd.MoveSize 0, 0, lngFormWidth, lngFormHeight 'разместим по полученным координатам
DoCmd.Echo True 'включаем прорисовку

Все! теперь стартовая форма покрывает всю доступную область экрана, но не развернута на весь экран - это важно. Конечно, тип границы у нее должен отсутствовать, и все полосы прокрутки отключены...

небольшие дополнения, можно сказать штрихи...

Я всегда убираю панели инструментов с экрана. Все панели инструментов простым циклом отключать нельзя (да и дольше), при скрытии некоторых Access (ХР, 2003) просто вылетает с ошибкой. Поэтому просто скрываем стандартные панели и строку меню:

DoCmd.ShowToolbar ("Menu Bar"), acToolbarNo
DoCmd.ShowToolbar ("Database"), acToolbarNo
DoCmd.ShowToolbar ("Web"), acToolbarNo
DoCmd.ShowToolbar ("Formatting (Form/Report)"), acToolbarNo
DoCmd.ShowToolbar ("Form View"), acToolbarNo


также выполняю некоторые настройки среды Access:

Application.SetOption "ShowWindowsInTaskbar", False ' отключаем окна в панели задач
Application.SetOption "Show Status Bar", False ' отключаем строку состояния


Понятно, что код сокрытия панелей и строки состояния должен вызываться раньше разворота стартовой формы на весь экран, иначе останутся полосы от скрытых панелей меню или строки состояния.

  Ответить  
 
 автор: Волшебник   (24.06.2012 в 00:43)   личное сообщение
89 Кб.
 
 

Где то нашел вот это - ...

  Ответить  
 
 автор: Волшебник   (24.06.2012 в 00:45)   личное сообщение
24 Кб.
 
 

Это рисунки .
Они должны быть рядом с базой.

  Ответить  
 
 автор: Дядя Федор   (04.07.2012 в 14:27)   личное сообщение
 
 

Вот смена цвета окна:

Option Compare Database
Option Explicit



Private Type RECT
   Left As Long
   Top As Long
   Right As Long
   Bottom As Long
End Type
Const MatrasH = 0&
Const MatrasV = 1&
Const Solid = 2&


Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Private Declare Function CreateHatchBrush Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function InvalidateRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function SetBkColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
Private Declare Function SetTextColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long



Public Function SetStatusBackGround(Optional ByVal lBackColor As Long = -1, Optional lTextColor As Long = -1) As Boolean
   Dim lRet As Long, rc As RECT
   Dim hDC As Long, hWndStatus As Long
   hWndStatus = FindWindowEx(Application.hWndAccessApp, 0&, "OStatbar", vbNullString)
   lRet = GetWindowRect(hWndStatus, rc)
   With rc
       .Bottom = .Bottom - .Top
       .Top = 0
       .Right = .Right - .Left
       .Left = 0
   End With
   hDC = GetDC(hWndStatus)
   If lBackColor <> -1 Then lRet = SetBkColor(hDC, lBackColor)
   If lTextColor <> -1 Then lRet = SetTextColor(hDC, lTextColor)

   lRet = ReleaseDC(hWndStatus, hDC)

   Call InvalidateRect(hWndStatus, rc, 1&)
End Function



Public Function DrawBackground(lColor As Long, Optional drawStyle As Long = Solid)
   Dim rc As RECT, lRet As Long, hWndMDI As Long, hBrush As Long
   If drawStyle = MatrasH Then
       hBrush = CreateHatchBrush(0&, lColor)
   ElseIf drawStyle = MatrasV Then
       hBrush = CreateHatchBrush(1&, lColor)
   ElseIf drawStyle = Solid Then
       hBrush = CreateSolidBrush(lColor)
   Else
       Exit Function
   End If
   hWndMDI = FindWindowEx(Application.hWndAccessApp, 0&, "MDIClient", vbNullString)
   lRet = GetWindowRect(hWndMDI, rc)
   With rc
       .Bottom = .Bottom - .Top
       .Top = 0
       .Right = .Right - .Left
       .Left = 0
   End With
   lRet = SetClassLong(hWndMDI, (-10), hBrush)
   Call InvalidateRect(hWndMDI, rc, 1&)
End Function


'Применение: можно в стартовой форме или отдельно запускать через autoexec
'Для стартовой формы:
'Private Sub Form_Load()
'DrawBackground 14927790 ' изменяет цвет окна Access
'SetStatusBackGround , 255 ' изменяет цвет текста строки состояния
'End Sub

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList