Array
(
)

onexit, foco, etc..etc..

Fernando_ramos
   - 02 fev 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!!


José Henrique
   - 02 fev 2006

Fernando,
No form1 chame o form2 (que contém o stringgrid)
#Código


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];

//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:
#Código

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!