Ver Mensaje Individual
  #14  
Antiguo 31-10-2006
Epachsoft Epachsoft is offline
Miembro
 
Registrado: abr 2005
Posts: 167
Reputación: 22
Epachsoft Va por buen camino
"Es que, de hecho, difícilmente verás ningún evento utilizado internamente, no es exclusivo de estos eventos, simplemente porque éstos, los eventos en general, están pensados para el programador final, la VCL sólo los pone disponibles."

Incorrecto, en gran parte de la VCL se usa por herencia los metodos OnCreate, OnChange, OnKeyDown, etc, seria mas bien extrano decir que se puso ese evento unicamente para el usuario final.

El VCL no es simplemente una cosa bonita que Borland puso ahi, es un claro ejemplo de la forma correcta de desarrollar codigo usando Object Pascal, desde su sintaxis, best "coding practices", comentarios y estandarizacion de presentacion de codigo.

Es un ejemplo en vivo de como implementar todo tipo de soluciones, e.g. una caja de dialogo donde se despliega un mensaje (MessageDlg), un wrapper de Activex, etc, codigo que usaremos muchas veces en situaciones de nuestra vida diaria. Solo examinen la implementacion de los DBAware components y noten como gracias a toda esa base de clases, metodos y con gran uso de herencia y polimorfismo logran implementar esos increibles componentes.

Danny Thorpe, antiguo chief scientist de Borland y la persona a cargo del compilador de Delphi escribio el maximo manual de como escribir componentes, dialogs, etc en Delphi, utilizando como ejemplo el mismo VCL y la mayoria de sus metodos. Es una gran lectura, y un libro considerado como clasico.

----

Ahora bien por el otro lado, repito, no utilicen el OnShow event para inicializar variables. Si estan haciendo aplicaciones pequenas para la casita, con par de formas y que solo ustedes van a hacer perfecto, pero si es para aplicaciones serias donde se utiliza mucha herencia, formas MDI y Frames, poner eventos en el OnShow o en el OnActivate SOLO les va a traer problemas y dolores de cabeza. Inicializacion !!NO!! en ese evento. Usen Oncreate, o pongan un metodo execute. (Noten como la mayoria de Dialogos en Delphi (revisen tambien los componentes JEDI) tienen un metodo Execute y pocas veces codigo en OnShow.

Muchas gracias.
__________________
Esteban Pacheco
A delphi programming blog
Responder Con Cita