Ver Mensaje Individual
  #3  
Antiguo 29-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Reputación: 20
keyboy Va por buen camino
Mmm. Pero, creo que no se trata de asignar un mismo método (evento) a varios controles sino aplicar el mismo método (validación) a varios controles.

Puede optar por hacerlo a pie:

Código Delphi [-]
Validar(MaskEdit1.Text);
Validar(MaskEdit2.Text);
Validar(MaskEdit3.Text);
...

o tratar de usar un ciclo:

Código Delphi [-]
for I := 0 to High(MaskEditList) do
  Validar(MaskEditList[i].Text);

donde MaskEditList sería un arreglo de controles TMaskEdit. Este arreglo puede existir de manera "natural", si todos los MaskEdit están en un contenedor y dicho contenedor no contiene nada más, pues se usa el arreglo Controls del contenedor. O bien se crea artificialmente:

Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    MaskEditList: array of TMaskEdit;
  end;

pero de todas formas hay que llenarlo en algún momento:

Código Delphi [-]
SetLength(MaskEditList, N);
MaskEditList[0] := MaskEdit1;
MaskEditList[1] := MaskEdit2;
MaskEditList[2] := MaskEdit3;
...

con lo que regresamos a lo mismo, pero comienza a ser útil si requerimos hacer varias operaciones sobre esa lista de controles.

Finalmente, podría uno estar tentado al FindComponent:

Código Delphi [-]
for I := 1 to N do
  Validar(TMaskEdit(FindComponent('MaskEdit' + IntToStr(I)).Text)

que se ve bien pero no es óptimo ya que FindComponent debe revisar todos los controles en el formulario para buscar uno con el nombre dado, con lo que se tiene en realidad un doble ciclo.

Bye
Responder Con Cita