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