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 

Aspecto de un GroupBox y similares

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Aspecto de un GroupBox y similares Responder citando

Hace algún tiempo preguntaba si se podía desactivar los elementos de un RadioGroup de forma individual; Leo me facilitó un codigo ue me funciona a las mil maravillas.

Ahora voy a dar otra vuelta de tornillo: ¿Es posi ble cambiar el aspecto de un GroupBox o un RadioGroup, de foma que por ejemplo el caption esté en negrillla y los items no?

He estado probando con Controls[...], pero no sé si pondré bien la estructura:
Código:
RadioGroup1->Controls[0]->Font->Style = TFontStyles() << fsBold;

Con esto en teoría cambiaría el aspecto del primer elemento de un RadioGroup.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

En un TGroupBox si no quieres que el cambio de la fuente o color afecte a los controles que contiene solo tienes que desactivar en cada uno de estos propiedades como ParentFont o ParentColor.

En el TRadioGroup es mas o menos lo mismo, pero como no lo puedes hacer en tiempo de diseño tienes que hacerlo en tiempo de ejecución modificando las propiedades de los RadioButtons que contiene usando ..Controls[]..

Cita:
RadioGroup1->Controls[0]->Font->Style = TFontStyles() << fsBold;

Esta bien, solo te falto moldear el tipo, ya que lo que te devuelve es un TControl, que es la clase base común a todos los controles y tiene prácticamente todas sus propiedades protegidas, o sea:
Código:
TRadioButton* rb = static_cast<TRadioButton*>(RadioGroup1->Controls[0]);
rb->Font->Style = TFontStyles() << fsBold;
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

A ver si te he entendido Leo: Yo tengo definido un DBRadioGroup en el que he puesto la fuente en negrita para que el título sea vea resaltado, pero claro también salen en el mismo tipo de letra los ítems definidos. Si utilizo el código que me has puesto, ¿Sería algo así como esto?
Código:
TRadioButton *rb = static_cast<TRadioButton*>(RadioGroup1->Controls[0]);
rb->ParentFont= false;

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Puesto que inicialmente has puesto la fuente del RadioGroup en negrita los items del mismo estarán también con el mismo atributo, así que una vez se haya aplicado el código perfecto de _Leo lo que hay que hacer es volver a cambiar los atributos de los items a su estado normal, algo así como:

Código:

    TRadioButton *rb = static_cast<TRadioButton*>(RadioGroup1->Controls[0]);
    rb->ParentFont= false;
    rb->Font->Style.Clear(); //despejamos atributos...
    rb->Font->Style = rb->Font->Style>>fsBold;  //si tiene negrita se la quitamos...
    rb->Font->Size = 20;   //y podemos seguir con tamaño, color, etc...


Todo esto para cada uno de los items, o al menos así me ha funcionado a mí. Siempre con el permiso de _Leo Wink . Saludos y encantado de volver a verte por aquí Angel.
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¡Como una seda! Sois unos hachas. Es exactamente lo que me hacía falta. El código ha quedado así:
Código:
     for (int nItem = 0; nItem < DBRadioGroup1->Items->Count; nItem ++)
     {
          TRadioButton *rb = static_cast<TRadioButton*>(DBRadioGroup1->Controls[nItem]);
          rb->ParentFont   = false;
          rb->Font->Style.Clear(); //despejamos atributos...
          rb->Font->Style  = rb->Font->Style >> fsBold;  //si tiene negrita se la quitamos...
     }

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
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.