FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
C++ Valor de String como nombre de Variable o Objeto
Saludos
Sucede que tengo un código horriblemente repetitivo, tego varios labels y según el usuario da click en cada uno de ellos le cambio el color para que sepa en cual esta detenido. para esto en cada label tengo que escribir el código asignándole la nueva fuente al seleccionado y la común a todos los demas porque no se si ha seleccionado otro antes. Lo que quisiera tratar de hacer es que una variable obtenga el nombre del label y a la vez me permita usar sus propiedades para poder cambiar el color de la fuente. Loq ue tengo es esto: Código:
Label20->Font->Color = clBlack; Label22->Font->Color = clBlack; Label26->Font->Color = clBlack; Label28->Font->Color = clBlack; Label24->Font->Color = clBlack; Label30->Font->Color = clBlack; Label40->Font->Color = clBlue; Label42->Font->Color = clBlack; Label44->Font->Color = clBlack; Label21->Font->Color = clBlack; Label23->Font->Color = clBlack; Label25->Font->Color = clBlack; Label29->Font->Color = clBlack; Label25->Font->Color = clBlack; Label31->Font->Color = clBlack; Label39->Font->Color = clBlue; Label41->Font->Color = clBlack; Label43->Font->Color = clBlack; Label46->Font->Color = clBlack; Label48->Font->Color = clBlack; Label49->Font->Color = clBlack; Label50->Font->Color = clBlack; Label51->Font->Color = clBlack; Label52->Font->Color = clBlack; Label65->Font->Color = clBlack; Label66->Font->Color = clBlack; Label53->Font->Color = clBlack; Label58->Font->Color = clBlack; Label54->Font->Color = clBlack; Label57->Font->Color = clBlack; Label55->Font->Color = clBlack; Label56->Font->Color = clBlack; Label67->Font->Color = clBlack; Label68->Font->Color = clBlack; Label61->Font->Color = clBlack; Label64->Font->Color = clBlack; Label60->Font->Color = clBlack; Label63->Font->Color = clBlack; Label59->Font->Color = clBlack; Label62->Font->Color = clBlack; Label69->Font->Color = clBlack; Label70->Font->Color = clBlack; Label74->Font->Color = clBlack; Label75->Font->Color = clBlack; Lo que necesito hacer seria algo como hacer una clase que al pasarle el nombre del seleccionado me ponga los demas en color negro y al seleccionado me lo ponga en azul. De forma que solo tenga que llamarla en el OnClick del Label y pasarle ese valor. De paso NO SE COMO HACER EL ARRAY !!! Nunca antes he tenido que hacerlo y por ende no se como hacerlo, asi que me fue imposible probar la idea que dieron en el foro si alguien me pudiera ayudar seria excelente
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
#2
|
||||
|
||||
Hola Impadron.
Cita:
Código:
... TLabel *PrevLabel; void __fastcall TForm1::FormCreate(TObject *Sender) { PrevLabel = Label1; // primer Label } /* asignar a los eventos OnClick de todos los Labels */ void __fastcall TForm1::LabelClick(TObject *Sender) { PrevLabel->Font->Color = clBlack; PrevLabel = static_cast<TLabel*>(Sender); PrevLabel->Font->Color = clBlue; }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 27-09-2012 a las 19:51:50. Razón: agregar comentarios |
#3
|
||||
|
||||
Otra solución puede ser usar FindComponent:
Código:
TLabel* Label; for(int n=0; n<ComponentCount; n++){ Label = static_cast<TLabel*>(FindComponent("Label"+IntToStr(n))); if(Label){ if(n == 39 || n == 40) Label->Font->Color = clBlue; else Label->Font->Color = clBlack; } } |
#4
|
||||
|
||||
Gracias por su ayuda amigos !!!
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
asignar valor a variable por medio de nombre | ocram | Varios | 4 | 14-07-2011 18:32:03 |
Variable String cambia de valor a '' | oscarac | Varios | 3 | 30-05-2011 07:28:39 |
Concatenar variable a nombre de objeto | cslbcn | OOP | 5 | 08-06-2010 14:55:08 |
como acceder a un objeto si el nombre es pasado como un string | marcelinux | Varios | 4 | 08-11-2007 00:20:39 |
el valor de una variable como nombre de un boton | carlosmoralesm | OOP | 5 | 26-05-2004 06:57:53 |
|