sitrico
30-09-2004, 23:11:52
Buenas,
Ultimamente he tenido que modifificar el constructor de los formularios de mi aplicación para agregar uno o más parámetros que me permiten "personalizar" en tiempo de ejecución los formularios de mi aplicación.
Algo tan simple como cambiar el caption, ocultar componentes, seleccionar las tablas a usar y eso.
Normalmente uso un código así:
f := TfActComprasOrd.Create(Self, IdFormulario, TComponent(Sender).tag, CampoClave);
If f <> nil Then
Begin
Try
f.ShowModal;
Finally
f.Free;
End;
End;
Donde:
IdFormulario me dice el archivo a usar
TComponent(Sender).tag es el tag de los botones incluir/modificar/Borrar y
CampoClave es el valor del campo clave (index) del registro a usar
Con esa estructura me ahorro programar independientemente una acción para cada una de las funciones disponibles. Asigno un Tag a cada boton y/o Acción y enlazo el OnExecute al código anterior.
Para que todo funcione tengo que sobreescribir el Constructor del formulario generamente algo así:
constructor Create(Owner: TComponent;IdFormulario, IdAccion : Integer;
CampoClave: String); Virtual;
Por supuesto la primera línea del código del metodo es:
inherited create(Owner);
Mi duda es si debo usar Virtual u Overrride (o algún otro modificador) para asegurarme de que la herencia del constructor Create sea la correcta ¿?
Cambio la pregunta:
¿ Esa forma de trabajar es Correcta en OOP ?
Gracias
Ultimamente he tenido que modifificar el constructor de los formularios de mi aplicación para agregar uno o más parámetros que me permiten "personalizar" en tiempo de ejecución los formularios de mi aplicación.
Algo tan simple como cambiar el caption, ocultar componentes, seleccionar las tablas a usar y eso.
Normalmente uso un código así:
f := TfActComprasOrd.Create(Self, IdFormulario, TComponent(Sender).tag, CampoClave);
If f <> nil Then
Begin
Try
f.ShowModal;
Finally
f.Free;
End;
End;
Donde:
IdFormulario me dice el archivo a usar
TComponent(Sender).tag es el tag de los botones incluir/modificar/Borrar y
CampoClave es el valor del campo clave (index) del registro a usar
Con esa estructura me ahorro programar independientemente una acción para cada una de las funciones disponibles. Asigno un Tag a cada boton y/o Acción y enlazo el OnExecute al código anterior.
Para que todo funcione tengo que sobreescribir el Constructor del formulario generamente algo así:
constructor Create(Owner: TComponent;IdFormulario, IdAccion : Integer;
CampoClave: String); Virtual;
Por supuesto la primera línea del código del metodo es:
inherited create(Owner);
Mi duda es si debo usar Virtual u Overrride (o algún otro modificador) para asegurarme de que la herencia del constructor Create sea la correcta ¿?
Cambio la pregunta:
¿ Esa forma de trabajar es Correcta en OOP ?
Gracias