Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Imagen en un TMainMeu

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Imagen en un TMainMeu Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

jod** , uno no para de aprender cosas aqui , buenisimo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Lo miraré con más calma. Si, a mi también me extraña que no funcione.

Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.