Ver Mensaje Individual
  #1  
Antiguo 24-10-2012
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Reputación: 16
Caminante Va camino a la fama
Oldcreateorder y herencia visual

Buenas tardes a todos dudaba si publicar este hilo pero es algo que me deja varias dudas.

Estaba trabajando en mejorar un sistema de hace años. Cree un formulario generico para busquedas (TFrmBusqueda) del cual derive otros mas para las busquedas concretas. Hasta ahi bien. El problema vino cuando en uno de los forms derivados defini un nuevo constructor para poder pasarle una variable que usaria en el evento oncreate:

Código Delphi [-]
Constructor Createdlg(AOwner:tcomponent;Tipo:integer);

Al ejecutar la aplicacion daba la impresion de que no se asignaba ningun valor en el constructor. Ejecutando paso a paso me di cuenta que si se daba el valor pero el evento oncreate se ejecutaba antes del constructor. Viendo eso revise la propiedad oldcreateorder y estaba como true. Revise la clase base y en esta estaba false.
Finalmente probe creando una aplicacion nueva simple de dos formularios y en el evento oncreate del form heredado puse lo siguiente

Código Delphi [-]
procedure TForm2.FormCreate(Sender: TObject);
begin
  inherited;
  showmessage(booltostr(OldCreateOrder,true ))
end;


Y me mando "true" en el mensaje.

Mi pregunta es si ese es un comportamiento normal ya que en mi clase base esta propiedad esta definida como false y en la derivada igualmente pero al ejecutarse cambia a true.

Espero que se haya entendido sino por favor avisen

Gracias
Responder Con Cita