Bueno, mas que una duda necesito que me tiren ideas para la solucion optima de un problema. El tema es el siguiente. En mi proyecto manejo una clase por tabla de BD por correspondencia de operaciones con los de la BD.Los metodos son por lo gral. "overright" heredados de una clase base para aprovecharlos en la herencia visual.
Supongamos el metodo InsertarRegistro override ;
La idea es aprovechar al maximo el polimorfismo de las clases en la herencia visual, para ello hago lo siguiente: (a modo de ej. resumido)
Formulario Base :
Código Delphi
[-]
procedure TfNuevoGenerico.btnGrabarClick(Sender: TObject);
Begin
try
ComenzarTransaccion;
Registrio.InsertarRegistro; CerrarTransaccion;
except
Rollback
End;
End;
FORMULARIOS DESCENDIENTES
procedure TfNuevoHijo.btnGrabarClick(Sender: TObject);
Begin
THijo (Registro).GetDatos ( chkActivo.Checked, edDescripcion.Text , etc.) ;
inherited;
End;
Hasta ahi todo magnifico, pero que hago cuando por ej tengo que
recorrer una grilla e ir insertando registros. Por ej.
procedure TfNuevoGenerico.btnGrabarClick(Sender: TObject);
var N: Integer ;
Begin
try
ComenzarTransaccion;
For N:= 1 to Grilla.RowCount -1 do
Begin
Registro.InsertarRegistro ;
End;
CerrarTransaccion;
except
Rollback;
End;
End;
GetDatos es puntual para cada clase y no lo puedo meter
adentro del For generico.
El problema es que recien hay es donde se los valores que le tengo que pasar a la funcion GetDatos dado que depende de lo cargado por el usuario en la grilla. Como solucion estoy desaprovechando la potencia del polimorfismo y estoy replicado codigo cada vez que me encuentro con una grilla. Espero no haber sido demasiado confuso en mi explicacion, pero es un problema muy puntual.
Ustedes como resolverian esto??
Muchas gracias por su tiempo.