PDA

Ver la Versión Completa : como trabajo con tqrlabel


morfeo21
03-03-2004, 16:54:32
Hola a todos. Una consulta amigos tengo un programa que utiliza la visualizacion de uno de sus reportes la impresion de varias etiquetas que deacuerdo a una funcion creada. las habilita o desabilita.

Procedure HabiltaEtiqueta(habilita:Boolean);
Begin
lbl001.Enabled:=habilita; lbl002.Enabled:=habilita; lbl003.Enabled:=habilita; lbl004.Enabled:=habilita;
lbl005.Enabled:=habilita; lbl006.Enabled:=habilita; lbl007.Enabled:=habilita; lbl008.Enabled:=habilita;
lbl009.Enabled:=habilita; lbl010.Enabled:=habilita; lbl011.Enabled:=habilita; lbl012.Enabled:=habilita;
lbl013.Enabled:=habilita; lbl014.Enabled:=habilita;
...
..
..
lbl033.Enabled:=habilita; lbl034.Enabled:=habilita;
End;

El caso que yo quisiera reducir el codigo por algo asi:
for i:= 1 to 34 do
Begin
(tcomponent is Tqrlabel).name('lbl'+i).enabled:=Habilita;
End;

Pero desconosco la forma de hacerlo. No se si alguien pudiera darme una ayuda con respecto a esto...
:D

__cadetill
03-03-2004, 18:40:51
Lo que puedes usar es la función FindComponent


for i:= 1 to 34 do
Tqrlabel(FindComponent('lbl'+FormatFloat('000', i))).enabled := Habilita;


Más o menos, no lo he probado pero por ahy van los tiros

jachguate
03-03-2004, 21:14:16
Como observación al autor...

Creo que el tema de este hilo debio ser algo como "cómo obtengo una referencia a un componente por su nombre" o algo similar..., además de estar en el foro de oop, dado que tanto la pregunta como la solución, aun cuando se trate de componentes para la impresión, no tiene nada que ver con la acción de imprimir.

Esto es una invitación a esforzarse un poco mas, para luego hacer funcionales también las busquedas... alguien con la misma inquietud, pero con TCheckBoxes, no podrá encontrar este tema, con lo que solventaria su necesidad. Y si por casualidad lo encontrará... dificilmente entraria a leerlo, no te parece?

Hasta luego, y adelante en los foros :)