Adriano, eu fiz um programinha modelo para trabalhar com forms MDI e funcionou, 
porém tive que fazer algumas coisas:

Para abrir o form estou utilizando assim:

procedure TFPrincipal.ToolButton1Click(Sender: TObject);
var
  MDIAtividade: TFAtividade;
begin
  MDIAtividade := TFAtividade.Create(Application);
  // coloquei o contador de forms MDI mas vou implementar uma
  // rotina de verificacao e contagem de form. Creio que 2 ou 3 forms
  // iguais abertos sejam mais que suficiente.
  MDIAtividade.Caption := 'Cadastro de Atividades '+IntToStr(MDIChildCount+1);
  // seto o tamanho das janelas, pois elas não obedecem ao design do delphi 
(tem vida própria... rsrsrs)
  MDIAtividade.Width := 383;
  MDIAtividade.Height := 283;
  MDIAtividade.Show;
end;

Coloquei um DataSet e um DataSource no form dos cadastros básicos, pois senão, 
sempre que abria uma nova janela e movimentava os registros nelas, as 
alterações se refletiam nos outros dbgrids das janelas abertas.

Consegui abrir as janelas normalmente, porém sempre que troco de uma janela 
para outra o "pointer" do dbgrid é movido para o primeiro registro selecionado.
Para minhas consultas básicas isto é suficiente, porém gostaria de guardar a 
posição do "pointer" e restaurá-la sempre que selecionar novamente o form, 
porém não sei em quais eventos colocar, seria algo assim:

Sempre que o dbgrid for movido, atualiza uma variavel com 
registro := dataset.recno;
e sempre que for retornar para a janela em questão, 
dataset.recno := registro;

porém não sei onde mecher.

Se alguém puder me dar uma luz.

Obrigado.

Eduardo Moraes


--- Em delphi-br@yahoogrupos.com.br, Adriano Barbosa <adriano.barb...@...> 
escreveu
>
> Também estou com o mesmo problema, estou fazendo uns testes aqui se der certo 
> posto a resposta aqui.
> 
> ________________________________
> De: pastoreantenas <pastoreante...@...>
> Para: delphi-br@yahoogrupos.com.br
> Enviadas: Domingo, 20 de Setembro de 2009 15:34:05
> Assunto: [delphi-br] Dúvidas iniciais
> 
>   
> 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.
> 

Responder a