Estou iniciando a migração de um sistema de FlagShip para Delphi e
consequentemente aprendendo algumas coisas (muitas coisas).
Estou com algumas dúvidas:
1a. Como passar um DataSet como parâmetro? Tenho alguns cadastros
básicos que utilizam o mesmo form e quase sempre a mesma lógica de
programação, então gostaria de fazer um form padrão e depois herdar as
propriedades deste form para outros cadastros, porém estou usando um
DataModule para os DataSet e DataSource. Gostaria de informar assim
DataSetConsulta := DataSetCadastro mas não sei como passar um dataset
como parâmetro, nem sei se é possível.

2a. Quero que meu sistema permita a abertura do mesmo cadastro (form)
diversas vezes, por exemplo:
Estou lançando um pedido e o cliente gostaria de saber o que comprou
nas últimas 3 vezes. Vou abrir uma nova consulta de pedidos.
Ele ainda gostaria de saber o que está devendo. Vou abrir uma consulta
de Contas a Receber.
Eu abro os form´s assim:

 Try
    FAtividade := TFAtividade.Create(Application);
    FAtividade.ShowModal;
  Finally
    FAtividade.Free;
  End;

Tenho que fazer algum controle para verificar se o form já está
carregado na memória e então abrí-lo com outro nome (FAtividade2, 3, 4
e etc)... E abrindo assim, o que seria melhor, concentrar os DataSets
e DataSource no DataModule ou no Form, já que ele seria instanciado
diversas vezes?
E quanto às consultas SQL, se instanciá-las pelo DataSet (um único dataset no 
Data Module, quando abrir uma outra consulta igual (mesmo form) ela iria 
automaticamente ser sobreposta, então deveria prover um recurso nos eventos 
create e destroy do form para salvar a consulta anterior e depois restaurá-la 
posteriormente, correto?
Mesmo recebendo o dataset como parâmetro precisaria fazer desta maneira?

Desde já, obrigado 

Responder a