Forma de Insertar un Logotipo diferente en función de la aplicación instalada

Dispongo de una aplicación en la que esta instalada en diferentes equipos y en función de la instalación donde este ha de salir un logotipo diferente en la pantalla inicial del programa.

No puedo prefijar a cada equipo una imagen porque cuando he realizar alguna modificación en el Programa después he de ir de equipo en equipo acoplando el Logotipo correspondiente.

¿Hay alguna manera de crear imágenes diferentes y en función de donde este instalado que se coja el archivo correspondiente de forma automática?.

Tengo un configurador donde guardo los parámetros independientes a cada instalación y me falta el logotipo que no se como hacerlo.

Respuesta
3

Ya han dado varias respuestas muy muy idóneas grandes expertos, pero aunque ya tendrás resuelto el tema te indico cómo resolví yo ese mismo problema y hasta la fecha me va funcionando perfectamente y lo uso en muchísimas aplicaciones.

Así es como resolví personalizar los logotipos y nombres de empresas, departamentos y oficinas en aplicaciones para que se puedan personalizar según donde se instale y lo mejor es que al paso del tiempo no quede obsoleta porque el cliente (usuarios de la aplicación) pueden reconfigurar los datos, sus logos, firmas, nombres de oficinas, responasbles, etc.

*** *** *** ***
Tabla "configuracion"
Se crea una tabla con los campos:
Logotipo_ grande ( objeto Ole) en el que se introducirá un logotipo grandote ... usado en pantalla de inicio o portada de documentos y memorandums. En mi caso uso tamaños 656x69 y formato bmp
Logotipo_mediano (objeto Ole) en el que se introducirá un logotipo mediano para todos los formularios de navegacion interna de la aplicación, pantallas de consultas, listados, etc. en mi caso uso imagenes tamaño 435x71 formato bmp
Empresa ( campo texto 255 caracteres) para introducir el nombre de la empresa donde se instale la aplciación
Departamento_gestor ( campo texto 255 caracteres) para personalizar el nombre de la oficina usado en pantallas listados informes etc.
Oficina_gestora (campo texto 255 caracteres) para personalizar la suboficina y que aparezca este nombre donde se necesite.

Nota: Los campos que se quiera se pueden dejar en blanco para que no sean capturados por los subformularios en caso de no necesitarse.

Responsable_firma1 (campo texto 50)
Cargo_responsable_firma1 (campo texto 50)
Responasble_firma2 (campo texto 50)
Cargo_responsable_firma2 (campo texto 50)
Direccion_empresa ( campo texto 255 caracteres) para pies de informes, listados, etc.
*** *** *** ***
FORMULARIO DE CONFIGURACION y SUBFORMULARIOS ( Subform_cabecera1) - (Subform_cabecera2) - (Subform_firma) - (Subform_pie)

Se crea un botón de comando en el Menú principal de la aplicación denominado CONFIGURACIÓN DE LA APLICACIÓN. Este botón en el procedimiento de evento onclick llama a un formulario de mantenimiento de esa tabla anteriormente creada (TABLA "CONFIGURACION"). Al llenar los campos de ese formulario con los valores que vayamos introduciendo y las imagenes que vayamos cargando en los campos OLE de la tabla de configuración, no hacemos otra cosa que personalizar la aplicación. ¿Cómo queda personalizada?.

En la aplicación, en todas las pantallas (form), en todos los informes (report) y en todos sitios, utilizo subformularios dentro de los formularios: Subformulario cabecera, subformulario pie, subformulario firma, etc. Estos subformularios se nutren de los campos de la tabla configuración y por lo tanto según los valores y las imagenes que existan en esa tabla, los subformularios cargan esos logotipos y esos nombres de departamentos y quedan personalizados. Toda pantalla, todo documento, absolutamente todo en la aplicación (hasta las firmas), quedan personalizadas en cada empresa e incluso si cambia el nombre de la empresa o de la oficina donde se está ejecutando la aplicación, solo hay que pulsar el botón "Configuración de la aplicación" y cambiar los datos por los nuevos. Así la aplicación no queda obsoleta en el tiempo si cambia algun valor o la propia dirección de la empresa que debe salir en los informes o las firmas y cargos de los responsables .

Espero que la idea sea de utilidad para quien lo necesite, a mi me da excelentes resultados ya que es el propio personal de las empresas el que configura los logotipos a usar, los nombres y todos los datos que se necesitan totalmente personalizados. Ah, también pongo un botón de ayuda para la configuración que abre una ventana con las instrucciones, tamaños de imagenes, etc. para personalizar su aplicación, por eso lo de poner el famoso botoncito de "configurar la aplicación" en el menú principal, para que si alguna vez (al pasar el tiempo) lo necesitan y sean ellos mismos los que puedan cambiar los datos de la empresa.

Una ayuda muy buena la que me has dado.

Muchas gracias por esta especial y desinteresada explicación y muy detallada que me has prestado.

Un saludo

Solo una pregunta más si no te importa. ¿El cuadro de texto que ha de mostrar la imagen recogida del configurador como ha de ser?, porque me salen códigos raros y no me imprime la imagen insertada del tipo ole en la tabla.

Gracias. Un saludo

Perdona que no contestara antes pero he estado fuera el fin de semana y hoy lunes ahora mismo acabo de ver tu pregunta.

La imagen no la muestro en un campo de cuadro de texto, se muestra en un campo "Marco de Objeto Dependiente".

En las propiedades le indicas que como "Origen del control" le pones el nombre del campo Ole. También en las propiedades se le indica el tamaño, yo le pongo el mismo tamaño de la imagen... Ancho y Alto. Luego también en propiedades del Marco dependiente le indico que "Modo de cambiar tamaño": Recortar

Espero haber entendido bien la pregunta, si no es así aclaramelo. Es que ando muy muy liado en estos momentos y tengo abiertos un monton de frentes ahora mismo.

No dudes en preguntarme por si puedo ayudar en algo.

2 respuestas más de otros expertos

Respuesta
1

José: Entre otras formas se me ocurre la que te cito a continuación, que en principio va orientado a diferenciar por ejemplo una Imagen de fondo según el Nombre del usuario.

Se pueden capturar los datos de la máquina y hacerlo por cada una.

Supongamos que tienes una Carpeta colgando del Directorio de tu aplicación o en otro sitio al cual se acceda al arrancar la Aplicación.

Dentro de esa carpeta van a estar las Imágenes del 1 al N, por no fabricar muchos Nombres.

El Nombre de esa carpeta lo voy a llamar ImgsArranque

En el Evento Load (Al cargar) del Formulario de arranque haces una llamada a un Procedimiento que te pongo a continuación y que voy a llamar CargaImgAdecuada

Por tanto has de Poner.

Call CargaImgAdecuada

Sub CargaImgAdecuada()
Dim ElUsuario As String, RutaImagen As String
ElUsuario = Environ("UserName")
RutaImagen = CurrentProject.Path & "\ImgsArranque\"
Select Case ElUsuario
    Case "Jose"
       Me.Picture = RutaImagen & "Imagen1.jpg"
    Case "Ernesto"
       Me.Picture = RutaImagen & "Imagen2.jpg
    .........
    ......
End Select
End Sub

Espero te ayude. Saludos >> Jacinto

Respuesta
1

Otra idea:

Crea un tabla con los distintos nombres de equipo y los logos asociados a cada uno, por ejemplo con esta estructura: ID (autonumérico), NombreEquipo(texto), Logo(texto)

Luego, al cargar el formulario, compruebas el nombre del equipo [con Environ("ComputerName")] y cargas el logo.

Incluso podrías meter en la tabla el logo, como adjunto, objeto OLE... y cargarlo. De esta forma no tienes que llevar los adjuntos junto a la aplicación, los llevas dentro de ella.

Un saludo.


Exactamente es para una aplicación que he de instalar a varios clientes y cada uno de ellos es una empresa diferente, por eso el motivo de que necesito un sistema para no tener que modificar cada vez el formulario de inicio donde esta el logotipo de la Empresa.

Si inserto un Archivo Ole y lo trato a través de un código de Cliente para acceder a el como me aconsejas, puedo de alguna forma darle las dimensiones de impresión por cada uno de los archivos insertados en la tabla de Logos por si este es de diferente tamaño unos de otros o siempre han de tener el mismo formato en la zona reservada para el archivo.

Si, por código puedes modificar las dimensiones del control del formulario/informe donde lo vayas a mostrar, por medio de las propiedades Widht y Height del mismo.

otra idea en este ejemplo de Neckkito: http://siliconproject.com.ar/neckkito/index.php/component/content/article/96-ejemplos-explicados/ejemplos-de-controles/320-ole-con-datos-binarios 

Guardas los logos en tu tabla, lo descargas a la carpeta que quieras (sin pedir la intervención del usuario), que puedes indicar para cada equipo en la propia tabla, y luego cargas el archivo desde esa ruta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas