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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Про Ribbons
 
 автор: ddi   (13.06.2011 в 10:36)   личное сообщение
 
 

Люди хачу создать меню точнее создал такой вапрос как измить картинку на сваю и как при открытии по умалчанию поставить сваю UI и можно ли отключить кнопку меню офиса ? access 2007

  Ответить  
 
 автор: ddi   (15.06.2011 в 08:33)   личное сообщение
 
 

Как я понимаю никто не знает

  Ответить  
 
 автор: osmor   (15.06.2011 в 09:19)   личное сообщение
 
 

загрузить совсем свою картинку довольно сложно
вот примеры
http://www.accessribbon.de/en/?Downloads

  Ответить  
 
 автор: ddi   (15.06.2011 в 09:42)   личное сообщение
 
 

osmar спасибо я уже всё зделал книгу прочёл про риббонс ...
пс кто хочет магу помоч!

  Ответить  
 
 автор: osmor   (15.06.2011 в 09:47)   личное сообщение
 
 

Если есть время и желание набросайте статейку, положим на сайте.

  Ответить  
 
 автор: ddi   (15.06.2011 в 10:18)   личное сообщение
 
 

Osmar толко про картинки ?

  Ответить  
 
 автор: osmor   (15.06.2011 в 10:39)   личное сообщение
 
 

да про что захотите.
Можно целый цикл про ленты.
типа step-by-step

  Ответить  
 
 автор: ddi   (15.06.2011 в 10:42)   личное сообщение
 
 

  Ответить  
 
 автор: ddi   (15.06.2011 в 10:56)   личное сообщение
9 Кб.
 
 

Интро: чтобы всё работало надо потклучить библиатеку Microsoft Office 12.0 Object Library
Сушестоет несколко методов созданиее ленты можно создать тоблицу какою хотите и програмно добовить его как ленту но это потом
1.1 создаём таблицу UsysRibbons в режиме конструктора (акссес програмно видит это таблицу )но слово Usys означает что ваша таблица системная после создание она исчеснит чтобы увидить его надо в навигацонном панеле в свойствах см картинка 1 добавит птички в "показать скритые обекты" и "показать системные обекты"
1.2 в свойствах UsysRibbons создаём три поля
имя поля тип поля тип даных
ID Шочик Long Integer
RibbonName Текст 255
RibbonXml Memo
Где ID это понятно
RibbonName имя рибона это тоже понятно
RibbonXml Xml код где всё непонатно

  Ответить  
 
 автор: ddi   (15.06.2011 в 11:09)   личное сообщение
41 Кб.
 
 

1.3 После создание тоблицы UsysRibbons в поле RibbonName пишем имя например "UI" шфпуется как юзер итервес
потом в настройках аксеса надо вклучить (у меня в акссесе стоит англиский язык так что далше без перевода ) увидамление про ошибки интерфейса см рисунок 2 и собствено назначить сваю UI на старте см картинка 3

  Ответить  
 
 автор: ddi   (15.06.2011 в 11:26)   личное сообщение
37 Кб.
 
 

картинка 3

  Ответить  
 
 автор: ddi   (15.06.2011 в 11:37)   личное сообщение
 
 

после назносения собтвенова UI на старте добавлаем код в поле RibbonXml
это мой код мне лен писать новый так что примером будит этот
ПС моя програма написона для комуналных платежей так что все имена кнопык будут про платежи
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load" loadImage="pic">
<ribbon startFromScratch="true">
<officeMenu>
<button idMso="FileCloseDatabase" visible="false"/>
<button idMso="FileDatabaseProperties" visible="false"/>
<button idMso="FileOpenDatabase" visible="false"/>
<button idMso="FileNewDatabase" visible="false"/>
<splitButton idMso="FileSaveAsMenuAccess" visible="false" />
</officeMenu>
<tabs>
<tab id="kom" label="комуналные платежи">
<group id="kom0" label="комуналные платежи">
<button id="en" label="Електроенергия" onAction="rib" size="large"
image="1.ico"/>
<button id="gb" label="Газ"
imageMso="ViewsReportView" size="large" onAction="rib"/>
<button id="gh" label="Газ организация"
imageMso="ViewsReportView" size="large" onAction="rib"/>
<button id="j" label="вода"
imageMso="ViewsReportView" size="large" onAction="rib"/>
</group>
</tab>
</tabs> </ribbon>
</customUI>

  Ответить  
 
 автор: ddi   (15.06.2011 в 11:45)   личное сообщение
 
 

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" > это обизателное поле
<ribbon startFromScratch="true"> если вписат false то меню небудет работат вклучица стандартное меню
<officeMenu> манипулации с кнопкой офиса
<button idMso="FileCloseDatabase" visible="false"/>
<button idMso="FileDatabaseProperties" visible="false"/>
<button idMso="FileOpenDatabase" visible="false"/>
<button idMso="FileNewDatabase" visible="false"/>
<splitButton idMso="FileSaveAsMenuAccess" visible="false" />
</officeMenu>
где button кнопка id имя если idMso значет стандартная кнопка Mso переводица как микрасоф офис патом вылжу имена всех стандартных кнопык visible="false думаю это понятно
<tabs> вкладки
<tab id="kom" label="комуналные платежи"> новая вкладка где id это id вкладки label имя вкладкаи
<group id="kom0" label="комуналные платежи"> група в вкладке в групе находеца кнопки
<button id="en" label="Електроенергия" onAction="rib" size="large" button это и есть кнопка
image="1.ico"/>
<button id="gb" label="Газ"
imageMso="ViewsReportView" size="large" onAction="rib"/> imageMSo это изабоажение но стандартное вложоное в офисс
<button id="gh" label="Газ организация"
imageMso="ViewsReportView" size="large" onAction="rib"/>
<button id="j" label="вода"
imageMso="ViewsReportView" size="large" onAction="rib"/>
</group>
</tab>

  Ответить  
 
 автор: ddi   (15.06.2011 в 11:57)   личное сообщение
 
 

чтобы кликноув в кнопку что-то было надо в <button id="gb" label="Газ"
imageMso="ViewsReportView" size="large" onAction=""/> приписать макрос!
так как макрос х***** надо зделать так чтобы там была працедура (функция) чтобы аксесс понял какая кнопка нажата и что после этого зделать (пс не путайте с простой кнопкой невазожно в писать працедуру при нажатии и т.д.) что бы всё работало надо при начале написать такой маинкий хмл код onLoad="Load" (функция называетца Load )
палучица так
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load">

  Ответить  
 
 автор: osmor   (15.06.2011 в 13:05)   личное сообщение
 
 

ой-ой-ой
А можно это все вместе и мне мылом?

  Ответить  
 
 автор: ddi   (15.06.2011 в 13:29)   личное сообщение
 
 

osmar дакончу и отправлю

  Ответить  
 
 автор: ddi   (15.06.2011 в 13:48)   личное сообщение
 
 

создаём модуль в модуле
Option Compare Database
Option Explicit
Public gobjRibbon As IRibbonUI
Public lngDropDownValue As Long

Public Sub Load(ribbon As IRibbonUI) ' control callback
lngDropDownValue = 2
Set gobjRibbon = ribbon
End Sub
и
Public Sub rib(control As IRibbonControl) ' menu
On Error Resume Next
Select Case control.id
Case "en"
DoCmd.OpenForm "en"
********************************
End Select
End Sub
Функция rib оприделает что делать при нажатии на канкретную кнопку Case "здесь имя кнопки точнее ID"
а патом что надо делать

  Ответить  
 
 автор: ddi   (15.06.2011 в 13:51)   личное сообщение
 
 

Палучитца так
customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load">
<ribbon startFromScratch="true">
************************
<button id="en" label="Електроенергия"
imageMso="ViewsReportView" size="large" onAction="rib"/>
************************

  Ответить  
 
 автор: ddi   (15.06.2011 в 13:57)   личное сообщение
 
 

1.4 как добавить собствиную картинку дапустим (у меня так) картинка лежит в папке temp а эта папка рядом с програмой
саздаём Модуль в ней пишем
Public Function getAppPath() As String
getAppPath = Left(CurrentDb.name, Len(CurrentDb.name) _
- Len(dir(CurrentDb.name))) ' априделаем место нашей програмы
End Function
и
Sub pic(imageID As String, ByRef image) 'image callback
Set image = LoadPicture(getAppPath & "temp\" & imageID) ' и дабавлаем картинку
End Sub
но можно дабавть только .BMP .GIF .JPG но так не красиво и собствено отредактируем код
Sub pic(imageID As String, ByRef image) 'image callback
Set image = LoadPictureGDIP(getAppPath & "temp\" & imageID)
End Sub
и дабавлаем

  Ответить  
 
 автор: ddi   (15.06.2011 в 13:57)   личное сообщение
 
 

вот такой мальенки код

Option Compare Database
Option Explicit
Public Const GUID_IPicture = "{7BF80980-BF32-101A-8BBB-00AA00300CAB}"    'IPicture
Public Enum PicFileType
    pictypeBMP = 1
    pictypeGIF = 2
    pictypePNG = 3
    pictypeJPG = 4
End Enum
Public Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(7) As Byte
End Type
Public Type TSize
    x As Double
    y As Double
End Type
Public Type RECT
    Bottom As Long
    Left As Long
    Right As Long
    Top As Long
End Type
Private Type PICTDESC
    cbSizeOfStruct As Long
    PicType As Long
    hImage As Long
    xExt As Long
    yExt As Long
End Type
Private Type GDIPStartupInput
    GdiplusVersion As Long
    DebugEventCallback As Long
    SuppressBackgroundThread As Long
    SuppressExternalCodecs As Long
End Type
Private Type EncoderParameter
    UUID As GUID
    NumberOfValues As Long
    type As Long
    Value As Long
End Type
Private Type EncoderParameters
    count As Long
    Parameter As EncoderParameter
End Type
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (lpPictDesc As PICTDESC, riid As GUID, ByVal fPictureOwnsHandle As Long, IPic As Object) As Long
Private Declare Function CLSIDFromString Lib "ole32" (ByVal lpsz As Any, pCLSID As GUID) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal uFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalSize Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByRef Source As Byte, ByVal Length As Long)
Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetModuleHandle Lib "kernel32.dll" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function CreateStreamOnHGlobal Lib "ole32" (ByVal hGlobal As Long, ByVal fDeleteOnRelease As Long, ByRef ppstm As Any) As Long
Private Declare Function GetHGlobalFromStream Lib "ole32.dll" (ByVal pstm As Any, ByRef phglobal As Long) As Long
Private Declare Function GdiplusStartup Lib "ogl" (token As Long, inputbuf As GDIPStartupInput, Optional ByVal outputbuf As Long = 0) As Long
Private Declare Function GdiplusShutdown Lib "ogl" (ByVal token As Long) As Long
Private Declare Function GdipCreateBitmapFromFile Lib "ogl" (ByVal FileName As Long, bitmap As Long) As Long
Private Declare Function GdipCreateFromHDC Lib "ogl" (ByVal hdc As Long, GpGraphics As Long) As Long
Private Declare Function GdipDeleteGraphics Lib "ogl" (ByVal Graphics As Long) As Long
Private Declare Function GdipDrawImageRect Lib "ogl" (ByVal Graphics As Long, ByVal image As Long, ByVal x As Single, ByVal y As Single, ByVal Width As Single, ByVal Height As Single) As Long
Private Declare Function GdipDisposeImage Lib "ogl" (ByVal image As Long) As Long
Private Declare Function GdipCreateHBITMAPFromBitmap Lib "ogl" (ByVal bitmap As Long, hbmReturn As Long, ByVal background As Long) As Long
Public Declare Function GdipCreateHICONFromBitmap Lib "gdiplus" (ByVal bitmap As Long, hbmReturn As Long) As Long
Private Declare Function GdipGetImageThumbnail Lib "ogl" (ByVal image As Long, ByVal thumbWidth As Long, ByVal thumbHeight As Long, thumbImage As Long, Optional ByVal callback As Long = 0, Optional ByVal callbackData As Long = 0) As Long
Private Declare Function GdipCreateBitmapFromHBITMAP Lib "ogl" (ByVal hbm As Long, ByVal hpal As Long, bitmap As Long) As Long
Private Declare Function GdipCreateBitmapFromHICON Lib "gdiplus" (ByVal hicon As Long, bitmap As Long) As Long
Private Declare Function GdipGetImageWidth Lib "ogl" (ByVal image As Long, Width As Long) As Long
Private Declare Function GdipGetImageHeight Lib "ogl" (ByVal image As Long, Height As Long) As Long
Private Declare Function GdipSaveImageToFile Lib "ogl" (ByVal image As Long, ByVal FileName As Long, clsidEncoder As GUID, encoderParams As Any) As Long
Private Declare Function GdipSaveImageToStream Lib "ogl" (ByVal image As Long, ByVal stream As IUnknown, clsidEncoder As GUID, encoderParams As Any) As Long
Private Declare Function GdipLoadImageFromStream Lib "ogl" (ByVal stream As IUnknown, image As Long) As Long
Private lGDIP As Long
Function InitGDIP() As Boolean
    Dim TGDP As GDIPStartupInput
    Dim hMod As Long
    If lGDIP = 0 Then
        If IsNull(TempVars("GDIPlusHandle")) Then
            TGDP.GdiplusVersion = 1
            hMod = GetModuleHandle("ogl.dll")
            If hMod = 0 Then
                hMod = LoadLibrary(Environ$("CommonProgramFiles") & "\Microsoft Shared\Office12\ogl.dll")
            End If
            GdiplusStartup lGDIP, TGDP
            TempVars("GDIPlusHandle") = lGDIP
        Else
            lGDIP = TempVars("GDIPlusHandle")
        End If
    End If
    InitGDIP = (lGDIP > 0)
    AutoShutDown
End Function
Sub ShutDownGDIP()
    If lGDIP <> 0 Then
        GdiplusShutdown lGDIP
        lGDIP = 0
        TempVars("GDIPlusHandle") = Null
    End If
End Sub
Private Sub AutoShutDown()
    If lGDIP <> 0 Then
        SetTimer 0&, 0&, 5000, AddressOf TimerProc
    End If
End Sub
Private Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
    Debug.Print "GDI+ AutoShutDown"
    KillTimer 0&, idEvent
    ShutDownGDIP
End Sub
Function LoadPictureGDIP(sFileName As String) As StdPicture
    Dim hBmp As Long
    Dim hPic As Long

    If Not InitGDIP Then Exit Function
    If GdipCreateBitmapFromFile(StrPtr(sFileName), hPic) = 0 Then
        GdipCreateHBITMAPFromBitmap hPic, hBmp, 0&
        If hBmp <> 0 Then
            Set LoadPictureGDIP = BitmapToPicture(hBmp)
            GdipDisposeImage hPic
        End If
    End If

End Function
Function ResampleGDIP(ByVal image As StdPicture, ByVal Width As Long, ByVal Height As Long, _
                      Optional bSharpen As Boolean = True) As StdPicture
    Dim lRes As Long
    Dim lBitmap As Long
    If Not InitGDIP Then Exit Function
    If image.type = 1 Then
        lRes = GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap)
    Else
        lRes = GdipCreateBitmapFromHICON(image.Handle, lBitmap)
    End If
    If lRes = 0 Then
        Dim lThumb As Long
        Dim hBitmap As Long
        lRes = GdipGetImageThumbnail(lBitmap, Width, Height, lThumb, 0, 0)
        If lRes = 0 Then
            If image.type = 3 Then
                lRes = GdipCreateHICONFromBitmap(lThumb, hBitmap)
                Set ResampleGDIP = BitmapToPicture(hBitmap, True)
            Else
                lRes = GdipCreateHBITMAPFromBitmap(lThumb, hBitmap, 0)
                Set ResampleGDIP = BitmapToPicture(hBitmap)
            End If
            
            GdipDisposeImage lThumb
        End If
        GdipDisposeImage lBitmap
    End If
End Function
Function GetDimensionsGDIP(ByVal image As StdPicture) As TSize
    Dim lRes As Long
    Dim lBitmap As Long
    Dim x As Long, y As Long

    If Not InitGDIP Then Exit Function
    If image Is Nothing Then Exit Function
    lRes = GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap)
    If lRes = 0 Then
        GdipGetImageHeight lBitmap, y
        GdipGetImageWidth lBitmap, x
        GetDimensionsGDIP.x = CDbl(x)
        GetDimensionsGDIP.y = CDbl(y)
        GdipDisposeImage lBitmap
    End If
End Function
Function SavePicGDIPlus(ByVal image As StdPicture, sFile As String, _
                        PicType As PicFileType, Optional Quality As Long = 80) As Boolean
    Dim lBitmap As Long
    Dim TEncoder As GUID
    Dim ret As Long
    Dim TParams As EncoderParameters
    Dim sType As String
    If Not InitGDIP Then Exit Function
    If GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap) = 0 Then
        Select Case PicType
        Case pictypeBMP: sType = "{557CF400-1A04-11D3-9A73-0000F81EF32E}"
        Case pictypeGIF: sType = "{557CF402-1A04-11D3-9A73-0000F81EF32E}"
        Case pictypePNG: sType = "{557CF406-1A04-11D3-9A73-0000F81EF32E}"
        Case pictypeJPG: sType = "{557CF401-1A04-11D3-9A73-0000F81EF32E}"
        End Select
        CLSIDFromString StrPtr(sType), TEncoder
        If PicType = pictypeJPG Then
            TParams.count = 1
            With TParams.Parameter
                CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .UUID
                .NumberOfValues = 1
                .type = 4
                .Value = VarPtr(CLng(Quality))
            End With
        Else
            If (PicType = pictypeGIF) Then TParams.count = 1 Else TParams.count = 0
        End If
        ret = GdipSaveImageToFile(lBitmap, StrPtr(sFile), TEncoder, TParams)
        GdipDisposeImage lBitmap
        DoEvents
        SavePicGDIPlus = (dir(sFile) <> "")
    End If
End Function
Function ArrayFromPicture(ByVal image As Object, PicType As PicFileType, Optional Quality As Long = 80) As Byte()
    Dim lBitmap As Long
    Dim TEncoder As GUID
    Dim ret As Long
    Dim TParams As EncoderParameters
    Dim sType As String
    Dim IStm As IUnknown
    If Not InitGDIP Then Exit Function
    If GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap) = 0 Then
        Select Case PicType
        Case pictypeBMP: sType = "{557CF400-1A04-11D3-9A73-0000F81EF32E}"
        Case pictypeGIF: sType = "{557CF402-1A04-11D3-9A73-0000F81EF32E}"
        Case pictypePNG: sType = "{557CF406-1A04-11D3-9A73-0000F81EF32E}"
        Case pictypeJPG: sType = "{557CF401-1A04-11D3-9A73-0000F81EF32E}"
        End Select
        CLSIDFromString StrPtr(sType), TEncoder
        If PicType = pictypeJPG Then
            TParams.count = 1
            With TParams.Parameter
                CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .UUID
                .NumberOfValues = 1
                .type = 4
                .Value = VarPtr(CLng(Quality))
            End With
        Else
            If (PicType = pictypeGIF) Then TParams.count = 1 Else TParams.count = 0
        End If
        ret = CreateStreamOnHGlobal(0&, 1, IStm)
        ret = GdipSaveImageToStream(lBitmap, IStm, TEncoder, TParams)
        If ret = 0 Then
            Dim hMem As Long, LSize As Long, lpMem As Long
            Dim abData() As Byte

            ret = GetHGlobalFromStream(IStm, hMem)
            If ret = 0 Then
                LSize = GlobalSize(hMem)
                lpMem = GlobalLock(hMem)
                ReDim abData(LSize - 1)
                CopyMemory abData(0), ByVal lpMem, LSize
                GlobalUnlock hMem
                ArrayFromPicture = abData
            End If

            Set IStm = Nothing
        End If

        GdipDisposeImage lBitmap
    End If
End Function
Public Function AttachmentToPicture(strTable As String, strAttachmentField As String, strImage As String) As StdPicture
    Dim strSQL As String
    Dim bin() As Byte
    Dim nOffset As Long
    Dim nSize As Long
    strSQL = "SELECT " & strTable & "." & strAttachmentField & ".FileData AS data " & _
             "FROM " & strTable & _
             " WHERE " & strTable & "." & strAttachmentField & ".FileName='" & strImage & "'"
    On Error Resume Next
    bin = DBEngine(0)(0).OpenRecordset(strSQL, dbOpenSnapshot)(0)
    If Err.Number = 0 Then
        Dim bin2() As Byte
        nOffset = bin(0)
        nSize = UBound(bin)
        ReDim bin2(nSize - nOffset)
        CopyMemory bin2(0), bin(nOffset), nSize - nOffset
        Set AttachmentToPicture = ArrayToPicture(bin2)
        Erase bin2
        Erase bin
    End If
End Function
Public Function ArrayToPicture(ByRef PicBin() As Byte) As StdPicture
    Dim IStm As IUnknown
    Dim lBitmap As Long
    Dim hBmp As Long
    Dim ret As Long
    If Not InitGDIP Then Exit Function
    ret = CreateStreamOnHGlobal(VarPtr(PicBin(0)), 0, IStm)
    If ret = 0 Then
        ret = GdipLoadImageFromStream(IStm, lBitmap)
        If ret = 0 Then
            GdipCreateHBITMAPFromBitmap lBitmap, hBmp, 0&
            If hBmp <> 0 Then
                Set ArrayToPicture = BitmapToPicture(hBmp)
            End If
        End If
        GdipDisposeImage lBitmap
    End If
End Function
Function BitmapToPicture(ByVal hBmp As Long, Optional bIsIcon As Boolean = False) As StdPicture
    Dim TPicConv As PICTDESC, UID As GUID
    With TPicConv
        If bIsIcon Then
            .cbSizeOfStruct = 16
            .PicType = 3
        Else
            .cbSizeOfStruct = Len(TPicConv)
            .PicType = 1
        End If
        .hImage = hBmp
    End With
    CLSIDFromString StrPtr(GUID_IPicture), UID
    OleCreatePictureIndirect TPicConv, UID, True, BitmapToPicture
End Function

  Ответить  
 
 автор: ddi   (15.06.2011 в 14:04)   личное сообщение
 
 

и сотвествино в ХМЛ пишем такой код
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load" loadImage="pic">
******************************
<button id="en" label"Электроенергия" onAction="rib" size="large"
image="1.ico"/>
*****************************
image="1.ico" здес сотвествино имя икуонки
как в понели примушество этого кода в том что в можыте добавить иконку если кто-то незнает в разницу между иконкой и JPG то разница в нашум случии в том что не будет белый фон

  Ответить  
 
 автор: ddi   (15.06.2011 в 14:08)   личное сообщение
 
 

Эсть ещё много способов работы с лентой
Прграмно добавить, удалить, работа с их видемостью, изменить имя, и т.д. при желании всё остальное напишу

  Ответить  
 
 автор: AlexSyr   (15.06.2011 в 19:27)   личное сообщение
 
 

Есть же хорошие книжки
Martin R., Puls K., Hennig T. RibbonX. Customizing the Office 2007 Ribbon (2008)

  Ответить  
 
 автор: час   (16.06.2011 в 08:16)   личное сообщение
 
 

Как удобно - я офигиваю ваще.............
Чтобыкартинку поменять - надо прогу написать.
Неужели нет кнопочки обзор... для поиска нужной картинки, для задания нужной каутинки?
Слова нету только чувства

  Ответить  
 
 автор: ddi   (16.06.2011 в 08:20)   личное сообщение
 
 


ник: час
Как удобно - я офигиваю ваще.............
Чтобыкартинку поменять - надо прогу написать.
Неужели нет кнопочки обзор... для поиска нужной картинки, для задания нужной каутинки?
Слова нету только чувства


нету только этот способ

  Ответить  
 
 автор: ddi   (16.06.2011 в 08:19)   личное сообщение
 
 


ник: AlexSyr
Есть же хорошие книжки
Martin R., Puls K., Hennig T. RibbonX. Customizing the Office 2007 Ribbon (2008)


а ты прочти эту книгу и скажи где там написано как изминит картинку кнопки на иконку ок?
Или скрыт меню офиса

  Ответить  
 
 автор: AlexSyr   (16.06.2011 в 12:49)   личное сообщение
 
 

Оглавление:


Chapter 8 Custom Pictures and Galleries .............. 263
...
Adding Custom Pictures to Access Projects ...... 270


Кусок текста:


1. Add a new table and name it USysRibbonImages. (You may use a different name, but this name is used in the following code and examples).
2. Add the following fields to the new table:
- ID (an auto numbering field)
- ImageName (a text field)
- ImageFile (an attachment field)
3. Save and close the table.
4. With the table selected (but still closed), go to Create => Forms => Form and create a new form based on the USysRibbonImages table.


и т.д.

Конечно слишком подробно я данную книжку не читал - так и жизни не хватит, чтобы все книжки читать, но отправная точка для изучения - есть.

  Ответить  
 
 автор: ddi   (16.06.2011 в 13:37)   личное сообщение
 
 

А ты папробуй этим методом иконку ставить сможеш?

  Ответить  
 
 автор: AlexSyr   (16.06.2011 в 14:20)   личное сообщение
40 Кб.
 
 


Вот рабочий пример из книжки ==>>
Почитайте книжечку то - там есть еще способы.

  Ответить  
 
 автор: ddi   (16.06.2011 в 14:37)   личное сообщение
 
 

AlexSyr Я эту книгу прочитал.... а твой пример про BMP я говарю про ICO

  Ответить  
 
 автор: AlexSyr   (16.06.2011 в 16:20)   личное сообщение
 
 

Там же описан способ с использованием GDI+
К сожалению у меня (на MSA2010) он не работает, да и разбираться с этим ради картинки на ленте совершенно не хочется.
На мой взгляд, проще конвертировать картинку в нужный формат, чем городить столько кода, да еще и не известно - будет ли это работать на разных версиях (предполагаю, что не работает из-за разных видео подсистем, а не из-за версий MSA). Кстати, у многих описанный в книге код работает (см. http://stackoverflow.com/questions/5062021/use-png-as-custom-ribbon-icon-in-access-2007).

  Ответить  
 
 автор: ddi   (16.06.2011 в 16:34)   личное сообщение
 
 

Ну и харашо что работает!

  Ответить  
 
 автор: Krusz   (02.09.2011 в 16:58)   личное сообщение
 
 

понятно , что не понятно.
особенно вот это вот
"RibbonXml Xml код где всё непонатно"
я всегда думал, что если чтото изменяется, то это в лучшую сторону как и в плане функциональности так и в плане удобства, но по всей видимости это не про microsoft

  Ответить  
 
 автор: kot_k_k   (02.09.2011 в 23:42)   личное сообщение
 
 

седня нарвался - прислали файл Ексель - у чела 2007-й (гореть ему в аду) - тыр-пыт у офиса истерика неверный формат, неподдерживаемая версия и проч лабуда на экране в конце концов касивые квадратики в 3-строчках.
слил себе офис ХР (да хранит его господь) - без проблем открылось - хохмы ради сохранил в другой файл, вернул - у того открылось, сохранил исходник - вернул (для эксперимента) - не ботл - таже истерика. вопрос о совместимости

на не моем компе резал диск. неро зависла при прожиге болванки - 7-ка "давайте поищем и перезагрузим, перезагрузим, подождем" - начинается перегружение нерки та при перезагрузке пытается диск юзать и виснет, и так по кругу, диск не вынимается (кнокой) т.к. его юзает нерка. диспетчером не снимает т.к. умное -"давайте перезагрузим". через 3 мин. удалось выдрать болванку из диска. долго клял Била.

так что гемор еще тот.

  Ответить  
 
 автор: ddi   (03.09.2011 в 10:44)   личное сообщение
 
 

у меня аксс 2007 супер я доволен думаю про 2010

  Ответить  
 
 автор: krusz   (15.11.2011 в 13:09)   личное сообщение
 
 

по указанному адресу ddi
http://www.ribboncreator.de/en/index.php?Download
нашел программки, котрые помогают сделать свое меню. или покрайней мере набросать его , а потом подправить

  Ответить  
 
 автор: ddi   (17.11.2011 в 14:37)   личное сообщение
 
 

Но оно платное

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