Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Re... .... corriendo los objetos (https://www.clubdelphi.com/foros/showthread.php?t=6122)

Anubys 18-12-2003 21:03:32

Re... .... corriendo los objetos
 
Hola que tal ... el tema de este hilo es facil.
Nesecito recorrer todos los objetos de un TForm, una vez que este se a creado. Para esto me hice una funcion 'Recorre(pantalla: Tform);' que lo hace. El problema se presenta en el cuando llamar a esta funcion, puesto que nesecito recorrer los elementos antes de que se pueda hacer cualquier otra cosa con ellos.... :confused: :confused:

Suena sencillo, pero no encuentro el evento preciso....
Que opinan.

roman 18-12-2003 21:30:52

Supongo que puedes usar el evento OnCreate. Este se lanza cuando las componentes del formulario ya están creadas pero antes de mostrarse de manera que no se puede interactuar con éstas.

// Saludos

delphi.com.ar 18-12-2003 21:32:49

La verdad que mucho no te entiendo... prueba sobreescribiendo el método Loaded.

Saludos!

Anubys 18-12-2003 21:46:09

He probado el evento OnCreate y OnShow pero no me sirven, puesto que una de las cosas que hace la funcion, es cabiar el text de las etiquetas al encontrar una condicion dada en su objeto asociado, y estos eventos no me han dejado modificarlas.
Tambien probe con el OnActivate, pero no quiero que se recorran todos los objetos cada vez que me paro en la pantalla (por que más encima es Mdi), y con el OnPaint idem.
El metodo Loaded no lo he probado aun... aunque no se como me podria ayudar.

marcoszorrilla 18-12-2003 21:52:54

Si te funciona con el evento OnActivate, no tienes más que poner una variable que haga de semáforo, para que solamente se ejecute una vez la función que recorre los objetos.

También puedes utilizar la propiedad Tag del formulario e incrementarla en 1 cada vez que se active de tal forma que la función se ejecutaría por ejemplo siempre que MiForm.Tag < 2.

Un Saludo.

Anubys 18-12-2003 21:55:42

Si tienes razon con lo de los semaforos, eso puede funcionar...
Les estoy comunicando. :)

roman 18-12-2003 21:57:03

Cita:

Anubys comentó:
El metodo Loaded no lo he probado aun... aunque no se como me podria ayudar.
El método Loaded se llama una vez que las propiedades de las componentes ya han sido actualizadas de manera que los cambios que haga tu función ya deberán trabajar correctamente.

Para usarlo declara:

Código:

TForm1 = class(TForm)
protected
  procedure Loaded; override;
end;

implementation

procedure TForm1.Loaded;
begin
  inherited;

  { Aquí tu código }
end;

// Saludos

Anubys 19-12-2003 18:53:09

Gracias a todos los que aportaron en este tema.... la solucion gue bien simple y precisa ocupando semaforos...


La franja horaria es GMT +2. Ahora son las 15:32:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi