Passando uma classe como Parâmetro

Delphi

22/10/2005

Dalê Povo!!! Bleza???

Tenho uma dúvida e queria saber se é possível tal situação. Gostaria de fazer uma função e essa função receberia como [b:d27ff39a21]parâmetro uma classe[/b:d27ff39a21], não importando qual o tipo da classe ou melhor ainda gostaria de [b:d27ff39a21]passar a classe de um form como parametro [/b:d27ff39a21]tipo assim:

function SeiLaCriaForm(var pForm: TControl; const pClasse: <declaracao de classe>): Boolean;

algo dessa grandeza gente. Será que funciona? :shock:

Valeu!!! T+.


Edvilson.chaves

Edvilson.chaves

Curtidas 0

Respostas

_rodfaria_

_rodfaria_

22/10/2005

https://sourceforge.net/projects/freeboleto/
http://www.ericksasse.com.br/?p=364

Sugiro que você dê uma olhada nos fontes do FreeBoleto. Acho que tem o que você precisa. Veja um trecho extraído de uFreeBoleto.pas

  TFreeClasseBanco = class;
...
  TFreeClasseBancoClass = class of TFreeClasseBanco;
...
procedure TFreeBoleto.Preparar;
var
  ClasseBanco: TFreeClasseBancoClass;
begin
  ClasseBanco := TFreeClasseBancoClass(GetClass(´TFreeBanco´ + Padl(FCedente.CodigoBanco, 3, ´0´))); //É isso que você quer ?
  if ClasseBanco <> nil then
  begin
    FBanco := ClasseBanco.Create;
    try
    ...

E nas outras units:
  TFreeBanco104 = class(TFreeClasseBanco)
  ...
  TFreeBanco033 = class(TFreeClasseBanco)
  ...
  TFreeBanco151 = class(TFreeClasseBanco)
  ...



GOSTEI 0
Edvilson.chaves

Edvilson.chaves

22/10/2005

https://sourceforge.net/projects/freeboleto/ http://www.ericksasse.com.br/?p=364 Sugiro que você dê uma olhada nos fontes do FreeBoleto. Acho que tem o que você precisa. Veja um trecho extraído de uFreeBoleto.pas
  TFreeClasseBanco = class;
...
  TFreeClasseBancoClass = class of TFreeClasseBanco;
...
procedure TFreeBoleto.Preparar;
var
  ClasseBanco: TFreeClasseBancoClass;
begin
  ClasseBanco := TFreeClasseBancoClass(GetClass(´TFreeBanco´ + Padl(FCedente.CodigoBanco, 3, ´0´))); //É isso que você quer ?
  if ClasseBanco <> nil then
  begin
    FBanco := ClasseBanco.Create;
    try
    ...
E nas outras units:
  TFreeBanco104 = class(TFreeClasseBanco)
  ...
  TFreeBanco033 = class(TFreeClasseBanco)
  ...
  TFreeBanco151 = class(TFreeClasseBanco)
  ...


....bah acho que não me expressei bem vou dar um outro exemplo. Digamos que tenho duas classes que cedendem de TFORMS.

- TFORM_CADASTRO

- TFORM_CONSULTA

as duas com definições diferentes de formato de tela componentes, etc... o que quero eh fazer uma especie de função criadora de forms mas passando a classe do form como parametro. entende...éh mais ou menos isso.

Valeu obrigado pela força!!! até +.


GOSTEI 0
Massuda

Massuda

22/10/2005

Talvez [url=http://forum.clubedelphi.net/viewtopic.php?t=68054]este tópico[/url] com diferentes formas de criar um form seja útil para você.


GOSTEI 0
POSTAR