se vc quer só criar as querys, pode usar uma factory:

TQueryFactory = class
     class function CreateQry(ConnType: ???): TDataSet;
end;

implementation

class function TQueryFactory.CreateQry(ConnType: ??): TDataSet;
begin
     if ConnType = ctBDE then
         Result := TQuery.Create(nil)
     else if FConnType = ctUniDac then
         Result := TUniQuery.Create(nil);
end;

ai vc constroi as classes usando a factory:

     q := TQueryFactory.CreateQry(FConnType);

mas dentro da factory, como disse o Márico, vc vai ter que ter um "if" 
ou "case" pra checar qual o tipo de conexão....

o/



Em 09/08/2010 15:25, NTS INFORMÁTICA escreveu:
>
> Eric,
> Na verdade, muitos metodos são comuns as 3 ou mais classes que eu 
> fosse trabalhar, para a conexao com meu dicionario de dados., tenho 
> que fazer isso para compatibilidade de conexões com BDE.
>
> Então eu aproveitaria muita linha de codigo no meu dicionario de dados.
>
> q.DataBaseName // Metodo Somente na Tquery ( Derivado da TDataBase )
>
> q.Connection // Metodo Somente na TUniQuery ( Derivado da TUniConnection )
>
> q.Connection // Metodo Somente na TAdoiQuery ( Derivado da 
> TAdoConnection )
>
> // todos os demais metodos são iguais
> q.SQL
> q.Open
> q.Close
>
> ----- Original Message -----
> From: eric_developer
> To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
> Sent: Sunday, August 08, 2010 9:18 PM
> Subject: [delphi-br] Re: Como Associar 2 Classe a uma variavel
>
> Marcio,
>
> não vejo sentido lógico no pedido, o IF será necessário mesmo que 
> tivesse chamando somente uma classe, ainda teria que testar FConnType.
>
> Eric Developer Systems
>
> --- Em delphi-br@yahoogrupos.com.br 
> <mailto:delphi-br%40yahoogrupos.com.br>, NTS INFORMÁTICA <ntsi...@...> 
> escreveu
> >
> > Amigos, existe alguma forma ou maneira para associar classes 
> diferentes a uma variavel, pois
> > muito metodos sao comuns as 2 classes, e outro não, isso seria muito 
> bom para evitar IFs
> >
> > Exemplo Abaixo ?
> >
> > l
> > var
> > q : TComponent;
> > i : Integer;
> > begin
> >
> > if FConnType = ctBDE then q := TQuery.Create(nil);
> > if FConnType = ctUniDac then q := TUniQuery.Create(nil);
> >
> >
> > Márcio
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>



[As partes desta mensagem que não continham texto foram removidas]

Responder a