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]