Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Error con Forma heredada (https://www.clubdelphi.com/foros/showthread.php?t=71635)

rhino0nt 30-12-2010 18:44:14

Error con Forma heredada
 
Estoy realizando un proyecto donde para las funciones de control de registros de catálogos he creado una forma Base, esta forma la heredo para generar las pantallas para cada tipo de Registro de manera que en la forma base tengo todas las funciones para le manejo de los registros y desde las formas hijas solamente llamo las funciones dando como referencia el dataset en el que se tiene que trabajar, hasta aqui no tengo problemas, mi problema se presenta con una funcuón de búsqueda. Cada forma tiene un botón para Buscar que manda llamar la forma de Busqueda que corresponda al tipo de registro con el que se está trabajando, mi problema es que paso como parámetro el nombre de la forma de búsqueda, la función de buscar se encuentra en la forma padre, pero al momento de intentar crear la forma me marca una excepción.

Este es el código que debería mandar llamar la forma de búsqueda:
Código:

procedure TfmBaseRegistros.Buscar(pdDatos: TDBQuery; pfFormaBusqueda: TForm);
var
  fmBuscar : TForm;
begin
  try
    fmBuscar := pfFormaBusqueda.Create(nil);
    fmBuscar.ShowModal;
  finally
    fmBuscar.Free;
  end;
end;

Cualquier pista se agradecerá.

Saludos a todos.

rhino0nt 30-12-2010 19:05:13

Error con Forma heredada
 
Me respondo, esta es la forma correcta de hacerlo:

Código:

procedure TfmBaseRegistros.Buscar(pdDatos: TUniQuery; pfFormaBusqueda: TComponentClass);
var
  fmBuscar : TForm;
begin
  // Se valida que el dataset no se encuentre en modo de inserción o edición.
  ValidaEstatus(pdDatos, dsInsert);
  ValidaEstatus(pdDatos, dsEdit);

  try
    Application.CreateForm(pfFormaBusqueda, fmBuscar);
    fmBuscar.ShowModal;
  finally
    fmBuscar.Free;
  end;
end;

De esta manera se crea correctamente la forma.

Saludos a todos.


La franja horaria es GMT +2. Ahora son las 18:49:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi