5 строк кода

Как писать приложения на MS Access

Как сменить стандартную иконку

Комментариев нет

Что бы поменять стандартную иконку MS Access на что-нибудь свое необходимо открыть окно параметры запуска приложения и указывать там путь к изображению. Заодно можно поменять его руками. Естественно этот параметр можно задавать программно см. имена и значения коллекции CurrentDb.Parametrs.

Для изменения параметров из коллекций типа CurrentDb.Parametrs я написал функцию VC_PropertyChange(), которая располагается в модуле mc_objects.

Dim stAppTitle as String
dim stPathToIco as String

'-- изменить название приложения
Call mc_objects.VC_PropertyChange(CurrentDb, "AppTitle", dbText, stAppTitle)
'-- изменить иконку по умолчанию
Call mc_objects.VC_PropertyChange(CurrentDb, "AppIcon", dbText, stPathToIco)
Call mc_objects.VC_PropertyChange(CurrentDb, "UseAppIconForFrmRpt", dbBoolean, True)
'-- отобразить изменения
Application.RefreshTitleBar

Также в модуле mc_objects располагается еще одна полезная функция VC_PropertyValue(), которая читает значения параметра:

Dim stMenu As String
'-- получить меню по умолчанию
stMenu = VC_PropertyValue(CurrentDb, "StartUpMenuBar")

Текст функций:

Public Sub CM_PropertyChange(ByRef obj As Object _
                                , ByVal imProperty As String _
                                , ByVal vPropertyType As Variant _
                                , ByVal vPropertyValue As Variant)
' 2007-03-17 Скоков С.А.
' Изменить свойства (Properties) объекта. Если свойства нет, то оно добавляется.
On Error GoTo Err_
    Dim prp As DAO.Property
    Const c_ErrorPropNotFound = 3270

    obj.Properties(imProperty) = vPropertyValue
    CM_PropertyChange = True

Exit_:
    Exit Sub

Err_:
    If Err.Number = c_ErrorPropNotFound Then     '-- Property not found.
        Set prp = obj.CreateProperty(imProperty, vPropertyType, vPropertyValue)
        obj.Properties.Append prp
        Resume Next
    Else '-- Unknown error.
	Err.Raise vbObjectError + 1, "CM_PropertyChange()->" & Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
    End If
End Sub

Public Function CM_PropertyValue(ByRef obj As Object _
                                , ByVal imProperty As String) As Variant
' 2007-03-17 Скоков С.А.
' Изменить свойства (Properties) объекта. Если свойства нет, то оно добавляется.
On Error GoTo Err_
    Dim prp As DAO.Property
    Const c_ErrorPropNotFound = 3270

    Set prp = obj.Properties(imProperty)
    
    CM_PropertyValue = prp.Value

Exit_:
    Exit Function

Err_:
    If Err.Number = c_ErrorPropNotFound Then     '-- Property not found.
    Else '-- Unknown error.
        Err.Raise vbObjectError + 1, "CM_PropertyValue()->" & Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
    End If
End Function

До встречи!

(с) Скоков Сергей

Подписаться на: RSS или e-mail рассылку или добавить в ЖЖ друзья.

Written by Сергей Скоков

Январь 14th, 2012 at 10:15 пп

Leave a Reply