PDA

Ver la Versión Completa : Diferencias entre OnActivate y OnPaint


FunBit
02-09-2005, 16:11:45
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
...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:...que se ejecute cada vez que el formulario esté listo para usarse...
:D

Saludos!