Hola,
no estoy seguro de que se pueda hacer eso de la manera que lo pides ni con Delphi2005 ni con ninguna otra versión.
Pero lo que si puedes hacer es lo siguiente:
- Los formularios de Delphi tienen una propiedad llamada Components. Que es una matriz con todos los componentes que hay en ese formulario.
- Tambien tienes una función llamada FindComponent que te permite buscar un componente en concreto en el formulario
- Por último puedes preguntar a un elemento de la lista de Components si ese objeto pertenece a una clase en concreto y si es así, puedes modificar sus propiedades.
Para muestra un botón:
La siguiente función recorre todos los componentes y para unas determinadas clases de objetos vacia su contenido (sean texto, labels, combos, etc.)
Código Delphi
[-]Var
i:Integer;
begin
With Form do
For i := 0 to ComponentCount - 1 do
If Components[i].Tag in Tags then
If Components[i] is TEdit then TEdit(Components[i]).Clear
Else
If Components[i] is TStaticText then TStaticText(Components[i]).Caption := ''
Else
If Components[i] is TComboBox then TComboBox(Components[i]).ItemIndex := -1
Else
If Components[i] is TListView then TListView(Components[i]).Items.Clear
Else
If Components[i] is TMaskEdit then TMaskEdit(Components[i]).Clear
Else
If Components[i] is TMemo then TMemo(Components[i]).Lines.Clear
ELSE
if Components[i] is TCheckBox then TCheckBox(Components[i]).Checked:=false;
Esta función afecta a todos los componentes del formulario que sean de estas clases.
Si sólo quieres que afecte a los edits del formulario y además a sólo algunos de ellos, puedes usar la función FindComponent.
Otro ejemplo: en el formulario debe haber 7 checkbox como mínimo y deben tener la nomenclatura igual: MiCheck1, MiCheck2, ...
La función busca esos checkbox y los marca.
Código Delphi
[-]var x : Integer;
begin
if chkAll.Checked then
for x := 1 to 7 do (FindComponent('chk' + IntToStr(x)) as TCheckBox).Checked := True;
Bueno después de todo este rollo, espero que te pueda servir algo. Y si me he equivocado en algo, que me corrijan, y si alguien tiene alguna idea mejor...
Saludos