Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Diferencias entre OnActivate y OnPaint (https://www.clubdelphi.com/foros/showthread.php?t=24802)

FunBit 02-09-2005 16:11:45

Diferencias entre OnActivate y OnPaint
 
En un Formulario tengo las propiedades OnActivate y OnPaint. Cual de las 2 es mas adecuada para poner un codigo dentro y que se ejecute cada vez que el formulario esté listo para usarse?

El motivo es que necesito ejecutar un codigo cada vez que se utiliza o visualiza ese formulario, aunque vengas de otra aplicación, que vengas de otro formulario de la misma aplicacion, ...

Cual de las 2 es mas apropiada?

Espero haberme explicado bien.

Saludos!

jmariano 02-09-2005 16:20:35

Saludos!

Yo te aconsejaría "OnActivate", que se produce cada vez que el formulario recibe el foco, y no "OnPaint" que se ejecutaría cada vez que el formulario necesita ser "repintado" (cosa que puede ocurrir muy a menudo, debido a acciones del usuario, y te ralentizaría mucho la ejecución de la aplicación).

delphi.com.ar 02-09-2005 16:22:51

No se si te comprendí bien, pero:
Si lo pones en OnPaint, tu código se ejecutará cada vez que se redibuje total o parcialmente el formulario. Si la pones en OnActivate y tu aplicación tiene mas de un formulario, el código se disparará cada vez que el formulario reciba el foco.
Si no vas a realizar operaciones visuales, puedes poner tu código en el OnCreate, de no ser posible, una práctica habitual es sobreescribir el método Loaded.

Saludos!

FunBit 02-09-2005 16:29:25

Ok con eso me vale.

delphi.com.ar, no lo puedo poner en el OnCreate porqué si tengo dos formularios abiertos y voy pasando de uno a otro aquí ya no me ejecuta el codigo porque no se vuelve a crear el formulario. El resto de respuestas son correctas. :)

Gracias!!

delphi.com.ar 02-09-2005 16:40:22

Cita:

Empezado por FunBit
...si tengo dos formularios abiertos y voy pasando de uno a otro aquí ya no me ejecuta el codigo porque no se vuelve a crear el formulario...

Eso es lo que no me quedó claro de tu enunciado, porque en algún momento te refieres a:
Cita:

Empezado por FunBit
...que se ejecute cada vez que el formulario esté listo para usarse...

:D

Saludos!


La franja horaria es GMT +2. Ahora son las 14:06:43.

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