passagem de parâmetros entre forms

Delphi

09/08/2010

Boas,
O meu problema ‚ é o seguinte, estou gravando um registro no banco e dependendo do tipo
desse registro eu tenho que duplicá-lo, mudando o conteúdo de
alguns poucos campos (uma contra-partida).
Eu devo apresentar uma janela com todos os campos da janela de origem já  com os campos que sofrem alteraçoes devidamente alterados. Eu estava querendo passar um dataset e um clientdataset como parâmetros para essa janela para manipular melhor esses campos, existe essa possibilidade?

Agradeço a atenção

_osw

_osw

Curtidas 0

Respostas

Eriley Barbosa

Eriley Barbosa

09/08/2010

Antes de fazer o insert você pode guardar os valores em variaveis globais e depois duplicar o valor destas variaveis e salvar no seu Dataset. Ai é só mostrar a janela com o ultimo registro inserido.   Atenciosamente   Eriley
GOSTEI 0
Marco Salles

Marco Salles

09/08/2010

Boas,
O meu problema ‚ é o seguinte, estou gravando um registro no banco e dependendo do tipo
desse registro eu tenho que duplicá-lo, mudando o conteúdo de
alguns poucos campos (uma contra-partida).
Eu devo apresentar uma janela com todos os campos da janela de origem já  com os campos que sofrem alteraçoes devidamente alterados. Eu estava querendo passar um dataset e um clientdataset como parâmetros para essa janela para manipular melhor esses campos, existe essa possibilidade?

Agradeço a atenção

Maneira mais Orientada a Objetos é usar o Oncreate do Formulario ..   Pouco utilizado recurso pela comunidade mas muito útil na passagem de parametros   Exemplo da passagem de um DataSet;  
  private
    { Private declarations }
    FCds:TClientDataSet;
  public
    { Public declarations }
    constructor create(AOwner:TComponent;pCds:TDataSet);reintroduce;
 
constructor TSeuFormulario.create(AOwner:TComponent;pCds:TDataSet);
begin
  inherited Create(AOwner);
  FCds:=(Pcds as TClientDataSet);
end;
  No Formulario que vc quer passar o DataSet vc  Simplesmente Faz  
var
form:TForm;
begin
Form:=TSeFormulario.create(nil,ClientDataSet1); //Passando um ClientDataSet
try
  form.ShowModal;
finally
  form.Release;
  form:=nil;
end;
GOSTEI 0
_osw

_osw

09/08/2010

obrigado pelo apoio.Vou testar as duas implementações.
Um abraço
GOSTEI 0
_osw

_osw

09/08/2010

No caso da passagem do ClientDataset, no form de contra-partida (aquele que vai receber o dataset) como será o tratamento desse clientdataset? Poderei usar o append, applyupdates, etc...
GOSTEI 0
Marco Salles

Marco Salles

09/08/2010

No caso da passagem do ClientDataset, no form de contra-partida (aquele que vai receber o dataset) como será o tratamento desse clientdataset? Poderei usar o append, applyupdates, etc...
...   A regra é clara   FPai:= FFilho  ( Pode se Atribuir um Objeto Filho qnd se espera um Objeto Pai )     FFilho:=FPai  ( Errado ) Não se pode atribuir a um Objeto filho um Objeto Pai   Neste caso se Faz um Type Cast   No seu caso   FFilho:TClientDataSet  >> Aquele que sera recebido   FPai : TDataSet  >>> aquele que sera enviado   No Oncreate Vc Faz  ..... Veja meu primeiro Post   FFilho:= (FPai as TClientDataSet) ;   Como FFilho foi definido como TClientDataSet , ele herdara as propriedades do TClientDataSet e poderá trabalhar com ele normalmente    
GOSTEI 0
_osw

_osw

09/08/2010

+ 1 vez
Obrigado pelo apoio !!

GOSTEI 0
POSTAR