Ver Mensaje Individual
  #1  
Antiguo 05-04-2007
Byfed Byfed is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Reputación: 0
Byfed Va por buen camino
recorrer lista de controles hijos.

Hola a todos,

Tengo una duda. Habitualmente, cuando diseño una aplicación (suelen ser todas más o menos parecidas, de gestión, consultas a bases de datos y cosas así, no demasiado rebuscadas), suelo poner el formulario principal maximizado, y después ir construyendo las distintas secciones del programa en distintos frames.

Cuando se selecciona una opción del menú se esconden todos los frames y despues se hace visible el que corresponda. Esto me obliga a que en todos mis programas tengo que hacer una rutina de esconder_frames que es una pesadez:

frame1.hide;
frame2.hide;
.....
frame95.hide;

Cuando selecciono una opción del menu, hago:
escodertodos;
frameN.init;

y en el frameN he definido el procedimiento init, donde hago un self.show;
A parte, en ese procedimiento de inicio, que utilizo para cargar datos, si hacen falta, cargar opciones de combos, cosas así, suelo incluir también una rutina de limpiar_campos, donde tengo que recorrer todos los controles del frame haciendo:
Edit1.text := '';
Edit2.text := '';
...
Edit99.text := '';

Es muy repetitivo y una pesadez. Me preguntaba si no habrá alguna forma de otorgar un valor a una propiedad de un conjunto de controles del mismo tipo.En realidad me bastaría con saber como recorrer una lista de controles hijos.. así para hacer el esconder todos, podría ir recorriendo la lista desde el formularioprincipal y hacer

if tipocontrol(control)=Tframe then
control.hide

o en el init de cada frame, poder hacer

if tipocontrol(control)=Tedit then
control.text := '';

Espero haberme explicado bien. En realidad se puede resumir todo esto en que me gustaría saber si existe una forma de poder ir recorriendo todos los controles que están dentro de un formulario, un frame, o un groupbox.. sin tener que recurrir al nombre de cada control.

Gracias y un saludo.
Responder Con Cita