Cinta Ribbon personalizada con imágenes propias

Ya cree un menu ribbon personalizado con código XML, pero para agregar imágenes a los botones solo se hacerlo con las imágenes prediseñadas de window. Alguien sabe como se puede hacer para agregar imágenes propias

Respuesta
1

Es bastante sencillo, sólo tienes que cambiar la parte del código xml del botón (o elemento que sea) que dice "imageMso=" por esto otro "getImage="OnGetImages" ", y luego añadir en un módulo independiente la función pública OnGetImages, que es donde le indicarás, para cada botón la ruta de la imagen.

Por ejemplo, un botón guardar, con la imagen de microsoft, podría tener este código:

<button id="btnGuardar" size="large" label="Guardar" screentip="Guardar"
supertip="Guarda los cambios realizados en el registro"
imageMso="RecordsSaveRecord" onAction="OnActionButton" getEnabled="GetEnabled" />

Con una imagen personalizada, sería así:

<button id="btnGuardar" size="large" label="Guardar" screentip="Guardar"
supertip="Guarda los cambios realizados en el registro"
getImage="OnGetImages" onAction="OnActionButton" getEnabled="GetEnabled" />

Y el código de la función OnGetImages, si las imágenes están en el mismo directorio de tu BD, dentro de una carpeta llamada Imagenes, sería:

Function OnGetImages(control As IRibbonControl, ByRef image)
Select Case control.ID
Case "btnGuardar"
Set image = LoadPicture(CurrentProject.Path & "\Imagenes\Guardar.jpg")

Case ...

End Select

End Function

Este código sería único para todos tus botones, sólo tendrías que añadir tantos Cases como necesitases, que es la opción que yo uso. Otra forma sería hacer una función para cada botón, pero la idea es la misma, con "Set image=LoadPicture()" le asignas la ruta y extensión de la imagen que quieras usar.

Añadir que esto sirve para imagenens jpg y bmp, con otros formatos, ya no estoy seguro 100%, pero si miras en la web del experto Neckkito, verás que tiene un manual de ribbon en el que te explican cómo has de hacerlo si esto no te funciona.

Hola! muchas gracias por tu atención!, te comento que lo puse a prueba como me dijiste, y me apareció un cartel que me dice que "no puede ejecutar la macro o la función de devolución de llamada "OnGetImages", asegurese que la macro o función exista y que use los parametro correctos.

Los pasos que hice fueron:

-Como tenia el archivo access y una carpeta con iconos que elegí en diferentes partes del escritorio de mi compu, copie estos dos archivos en una carpeta nueva

-Luego cree el módulo con la siguiente estructura:

Option Compare Database

Function OnGetImages(control As IRibbonControl, ByRef image)
Select Case control.Id
Case "btn1"
Set image = LoadPicture("C:\Users\moren_000\Desktop\Software Extintores\iconos\cliente.bmp")
End Select

End Function

- Luego agregue referencia a la función XML de la siguiente forma:

<button id="btn1"
size="large"
label="Clientes"
screentip="Clientes"
supertip="Agregar o modificar clientes"
getImage="OnGetImages"
onAction="menuRibbon.cliente"/>

No puedo encontrar cual es el error, pero por lo que lei del cartel de aviso es que escribi mal la función publica OnGetImages.

No le veo nada raro a tu código, lo único que se me ocurre es que compruebes que tienes registrada esta librería:

“Microsoft Office xx Objetc Library” (donde xx representa la versión de Office que tengas instalada)

Para registrar una referencia debes ir, en el editor de VB, a Menú → Herramientas → Referencias... Se te abrirá una ventana mostrando todas las referencias disponibles. Buscas la que te comento, y si no está marcada la marcas.

Ya me dirás

No estaba tildada como registrada, la tilde y me sigue apareciendo el mismo cartel, ya no se que hacer... cual podría ser el problema??

Pues no sé, como te decía antes, no le veo nada raro ni a la función VBA ni al XML del botón...

Te adjunto una BD que hice, con un ribbon muy sencillito con imágenes personalizadas (van incluídas en el rar), para que, en primer lugar compruebes si te funciona o no (debiera, porque nadie me reportó problemas al colgarla en la web) y luego compruebes las referencias y las sintaxis, por si tienes algún espacio fuera de lugar en el XML (es bastante quisquilloso con la sintaxis), o algo que se me escapa...

Si no lo consigues, y quieres, pásame una copia de tu BD con la imagen, y le echo un vistazo-

Ah!, se me olvidadaba! Para abrir la BD y poder ver los códigos y la tabla del ribbon, mantén pulsada la techa SHIFT mientras la abres.

Hola buen dia, estuve mirando el programita que me mandaste y tampoco me funciona, le pasa lo mismo que al mio, no encuentra las imagenes, no se si será algun problema de mi access, es la versión 2013

Yo tengo access 2013 y me funciona perfectamente.

La que te mandé yo, la carpeta de las imágenes tiene que estar en la misma carpeta que tienes la BD.

Prueba esta otra alternativa (pagina 9 y siguientes) a ver si te funciona mejor..

No sé que más decirte que pruebes...

Al final me anduvo bien la aplicación que me mandaste, sigo viendo cual es el problema en el mio, y sigo sin encontrarlo. Igual muchísimas gracias por tu ayuda

Pásame si quieres una copia de tu bd (no hace falta que tenga datos), con las imágenes, y miro a ver si encuentro yo el problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas