onexit, foco, etc..etc..

02/02/2006

amigos,

boa noite.
preciso de uma ajuda que creio ser simples.

vamos lá.

possuo um form, que tem varios campos tedit, no primeiro campo edit, no evento onexit, é executada uma consulta no banco de dados, que ao final preenche o restante dos campos edits do formulario e o foco é passado para o segundo edit do formulario. Até ai tudo bem.

porém possuo um outro form, com uma stringgrid.

agora entra minha duvida.

quero saber como fazer para ao dar um duplo click no stringgrid, seja passado um valor especifico que eu ja sei como recuperar, para o primeiro edit do primeiro form, e ao passar esta informação, o form com a stringgrid seja fechado, e no primeiro form, o primeiro edit após receber os dados vindo do duplo click na stringgrid, execute a consulta que seria realizada no evento onexit do mesmo edit.


resumindo,

como fazer para ao clicar num stringgrid, o form se feche, abre outro e passe um valor da stringgrid para um edit do segundo form, e em seguida execute um codigo no onexit do edit do segundo form.


meio enrolado de explicar....

mas fico no aguardo!!


Fernando_ramos

Respostas

02/02/2006

José Henrique

Fernando,
No form1 chame o form2 (que contém o stringgrid)
 Form2 := TForm2.Create(nil);
  try
    if Form2.ShowModal = idOk then   //só será executado se ModalResult  do Form2 receber o valor mrOK 
    begin
      // pega o valor desejado
      Edit1.Text := Form2.StringGrid1.Cell[0,0&93;;
      
      //Executa o evento on exit do Edit1
      Edit1Exit(Self);

      //Talvez fazer Edit2.SetFocus tb execute o evento
    end;
  finally
    Form2.Release;
  end;


No form2
Coloque o evento do duplo click:
procedure TForm2.StringGrid1(Sender: TObject);
begin
  if tudo ok then
    ModalResult := mrOK  //isto vai fazer o código no if da chamada ser executado.
  else
    ModalResult := mrCancel;
end;



Não testei!


Responder Citar