| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Mar 17 Feb, 2009 10:22 am Asunto: Imagen en un TMainMeu |
|
|
hola estoy intentando colocar una imagen cuando un submenu del componente MainMenu está deshabilitado con esto:
| Código: | this->MainMenu->Items->Items[0]->Items[3]->Enabled = false;
this->MainMenu->Items->Items[0]->Items[3]->ImageIndex = 3; |
pero la imagen, aunque esté ligado a un ImagenList, aparece como una silueta gris pero no se ve la imagen. Me gustaría que fuera como en los botones que cuando está deshabilitado tienes la opción de poner otra imagen distinta que cuando está habilitado.
¿Que estoy haciendo mal?
gracias. |
|
| Volver arriba |
|
 |
mns Lt

Registrado: 15 Oct 2008Mensajes: 95
|
Publicado: Mar 17 Feb, 2009 11:52 am Asunto: |
|
|
acabo de probarlo con tu mismo codigo sin cambiar absolutamente nada
y a mi me funciona bien , simplemente sale la imagen cambiada sin color , ya que esta deshabilitado, pero hasta es todo normal , no se bien que error
puedas tener
prueba de cambiar el orden de las lineas , pero dudo que sea eso |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 17 Feb, 2009 12:07 pm Asunto: |
|
|
Si lo que quieres es que cuando se deshabilita una opción del menú no se le aplique el efecto del color deshabilitado... puedes usar su propiedad "Bimap" y asignar ahí la imagen (cuando se usa esta propiedad "ImageIndex" debe estar en "-1").
Por ejemplo, para asignar una imagen cuando deshabilitas el menú: | Código: | // Asignar una imagen cuando deshabilitamos una
// opción del menú, pero sin el efecto de desactivado
TMenuItem* mi = MainMenu->Items->Items[0]->Items[3];
mi->Enabled = false;
mi->ImageIndex = -1;
MainMenu->Images->GetBitmap(3 /*nº.imagen*/, mi->Bitmap); |
cuando lo habilitas de nuevo: | Código: | // Al habilitar la opción del menú podemos usar ImageIndex de manera normal
TMenuItem* mi = MainMenu->Items->Items[0]->Items[3];
mi->Enabled = true;
mi->ImageIndex = 2;
mi->Bitmap = 0; |
|
|
| Volver arriba |
|
 |
mns Lt

Registrado: 15 Oct 2008Mensajes: 95
|
Publicado: Mar 17 Feb, 2009 12:12 pm Asunto: |
|
|
| jod** , uno no para de aprender cosas aqui , buenisimo |
|
| Volver arriba |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Mar 17 Feb, 2009 4:05 pm Asunto: |
|
|
Gracias a los dos! Va perfecto.
Otra cosa que me he dado cuenta, cuando en el MainMenu en los Captions de los menus y submenus escribes por ejemplo:
&Archivo debería aparecer el guión que da la opción de tecla rápida para poder utilizar en la aplicación no?
Cuando lo edito, es decir en la ventana del componente MainMenu dicho guión aparece, pero en la aplicación no y por lo tanto no puedo usar teclas rápidas. No se si me he explicado... no sé si necesitaría habilitar otra propiedad... |
|
| Volver arriba |
|
 |
mns Lt

Registrado: 15 Oct 2008Mensajes: 95
|
Publicado: Mar 17 Feb, 2009 7:09 pm Asunto: |
|
|
en la aplicacion no sale de primeras , tienes que darle a Alt + tecla
se abrira el menu y luego le das a la primera tecla para que se ejecute el codigo que tengas en el item en cuestion
por ejemplo &archivo y como subitem &nuevo
primero Alt + a y abre archivo con sus subitems y luego presionas n y ya esta |
|
| Volver arriba |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Jue 19 Feb, 2009 9:44 am Asunto: |
|
|
| mns escribió: | por ejemplo &archivo y como subitem &nuevo
primero Alt + a y abre archivo con sus subitems y luego presionas n y ya esta |
Esto te refieres cuando ejecuto la aplicación y que para llegar al submenu debo primero entrar primero en el menu correspondiente verdad?
Mi problema es antes de ello, ya que aunque tenga en el componente MainMenu con la propiedad caption con el formato &archivo, en mi aplicación, no aparece tal guión debajo de la letra "a" de archivo y por lo tanto no puedo utilizar "alt+a". Y preguntaba si tengo que hacer algo más para poder "habilitarlo".
Un saludo. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 19 Feb, 2009 10:12 am Asunto: |
|
|
| Cuando mantienes la tecla ALT pulsada deberían aparecerte los subrayados en los menús principales. Esto es cosa de Windows y no de C++Builder, se cambia en las opciones de apariencia del sistema. Fíjate si en otras aplicaciones aparecen... |
|
| Volver arriba |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Jue 19 Feb, 2009 10:25 am Asunto: |
|
|
Hola _Leo.
| _Leo escribió: | | se cambia en las opciones de apariencia del sistema. Fíjate si en otras aplicaciones aparecen... |
En otras aplicaciones, te refieres por ejemplo con el propido builder? o cualquier aplicación que ejecute desde Windows? Si es así, si que aparecen. Pero en mi aplicación no.
He probado a poner en los SpeedButton que tengo y sí que aparece el "guion" pero pruebo luego en tiempo de ejecución y tengo que darle varias veces a "alt + tecla" para que simule el click del ratón. No va a la primera y no se si eso tiene alguna solución o es que es asi.
Un saludo. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 19 Feb, 2009 10:52 pm Asunto: |
|
|
| zankiu escribió: | | En otras aplicaciones, te refieres por ejemplo con el propido builder? |
Algún programa que utilice un menú estándar, el builder no utiliza un menú estándar, sino una barra de botones para emular el menú. Por ejemplo prueba con el WordPad... Es que esto no es algo de C++Builder, como decía mas arriba es algo propio de Windows, en las versiones anteriores a XP (no recuerdo si también el 2000) siempre aparecían los subrayados, pero en esas versiones no aparece sino justo en el momento que mantienes pulsada la tecla ALT. Este comportamiento se puede cambiar en las opciones de apariencia de Windows.
| zankiu escribió: | | He probado a poner en los SpeedButton que tengo y sí que aparece el "guion" pero pruebo luego en tiempo de ejecución y tengo que darle varias veces a "alt + tecla" para que simule el click del ratón. No va a la primera y no se si eso tiene alguna solución o es que es asi. |
A mi me va siempre a la primera, haz pruebas en un proyecto vacio para asegurarte que no es un problema de tu proyecto y asegúrate de tener todos los parches que hayan para la versión de C++Builder que utilices. Imagínate si esto fallase en algo tan básico la fama que tendría.. |
|
| Volver arriba |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Vie 20 Feb, 2009 10:26 am Asunto: |
|
|
Lo miraré con más calma. Si, a mi también me extraña que no funcione.
Gracias. |
|
| Volver arriba |
|
 |
|