Ver Mensaje Individual
  #2  
Antiguo 30-12-2003
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Buen día a todos!

Setry2:

Dependiendo de las tareas que realice el método EjecutaBusqueda, pudiera ser conveniente que el componente conociera cuál es su forma "cliente" (para la cual trabaja), y de esta manera que llamase el método EjecutaBusqueda.

De ser el código de este método una simple llamada al método Locate del conjunto de datos (o algo similar), podría ser suficiente que el componente conociera el conjunto de datos para el cual trabaja y no tanto la forma donde se encuentran los controles de datos asociados.

Sin embargo, pensando más orientado a objetos. Podrías crear una clase de forma plantilla para todas las formas que implementen el método EjecutaBusqueda. Este sería un método virtual. En la plantilla sólo tendría una llamada al método Locate (por ejemplo) del conjunto de datos, o bien estaría sin código (virtual abstracto). A partir de esa plantilla derivarías las formas finales como Clientes, Productos, Proveedores, etc., en las cuales la implementación redefinida (override) del método EjecutaBusqueda sería particular de cada una de esas clases de formas. Entonces cuando el componente llame al método EjecutaBusqueda, se ejecutaría la búsqueda según la forma "cliente" para la cual esté trabajando en ese momento.

Puedes definir una plantilla de forma con todos los elementos comunes y luego crear las formas descendientes con sus elementos particulares adicionales.
Código:
TPlanFormCata
  TFormClie
  TFormProv
  TFormProd
Finalmente, recuerda que hay mil formas de programar, por lo que la anterior sugerencia de un servidor es sólo una de muchas maneras de implementar el mecanismo que nos planteas.

Espero esto sea de utilidad. Seguimos en contacto.

Al González .
Responder Con Cita