Fórum Retorno de Valores em Forms #293814
31/08/2005
0
Crio dinamicamente apartir de um form -> cadastro
e mostro em ´modal´
um form -> consulta.
(frm_consulta.showmodal)
no form -> consulta tem
um grid,
um edit,
um button localizar,
um button fechar.
no caso vou fazer um select no campo -> nome
com o valor informado no -> edit
quando clicado em -> localizar
na query, digamos que retorne ´N´ registros
com os respectivos campos
-> nome
-> chave.
O usuario teria que selecionar no grid
um determinado -> nome,
e neste momento eu pegaria -> a chave
Não sei como trazer para o
form -> cadastro (que chamou)
o form -> consulta
o valor da -> chave (uma string)
quando o usuário clicar no botão fechar.
eu teria que testar se retornou -> sem conteudo
(não achou dados ou o usuário não selecionou)
ou se retornou alguma -> chave
(achou e o usuario selecionou no grid)
para pesquisar se for o caso -> a chave
para mostrar todos os dados (campos)
no form -> cadastro
para edição, exclusão, etc.
utilizo delphi 7, dbexpress, firebird.
grato se puderem me dar um exemplo.
User-BA
Userba
Curtir tópico
+ 0Posts
31/08/2005
Kenio_c
De uma olhada no comando Locate, ele funciona assim
vc seleciona a chave primaria e passa como um parametro a qual ele vai setar, no seu caso onde a pesso clicar no seu grid, depois no close do formulario passa esse comando que no seu outro form estara as informacoes setadas.
Gostei + 0
31/08/2005
Userba
Deixe-me tentar explicar melhor...
no form da consulta vou utilizar um ex:
sqlquery1 para executar uma SQL.
mas eu preciso que uma ´variável´ me retorne
a chave selecionada ou um valor ´´ (em branco)
caso não localize registros.
Porque no form que chamou o da consulta
eu vou ter fazer um outro SQL (mais complexo)
em outra sqlquery2
com base no valor de tal variável
(que seria a -> chave, caso ela tenha retorno <> de branco ´´).
essa chave é do tipo string.
Será que eu tenho que criar uma varíavel ´global´
para assumir o valor da ´chave´ ou em ´branco´...
(resulta de sqlquery1)
de forma que eu possa enchergar este ´valor´
no form que chamou?
Fico pensando se tem como chamar um form passando um parametro.
no caso a variavel que retornaria o resultado da consulta :
s_resultado_consulta (a chave ou em branco)
he he he..
algo parecedido com:
frm_consulta.showmodal(s_resultado_consulta);
e quando o form da consulta fosse fechado
eu tivesse como retorno
a variavel s_resultado_consulta já preenchida
(com a chave ou em branco).
normalmente chamo meus forms assim:
procedure Tfrm_principal.mnu_usuariosClick(Sender: TObject);
var
frm_usuarios : Tfrm_usuarios;
begin
frm_usuarios := Tfrm_usuarios.Create(Application);
frm_usuarios.ShowModal;
frm_usuarios.Free;
end;
utilizo delphi7, dbexpress, firebird.
Gostei + 0
31/08/2005
Rjun
Gostei + 0
31/08/2005
José Henrique
Esta dica pode complementar o que você está procurando: você pode usar o retorno do método .ShowModal para saber que tecla o usuário apertou no frm_usuarios
if frm_usuarios.ShowModal = idOk then //apertou o botão OK else //apertou Cancelar (ou outro ou fechou); frm_usuarios.Free
No frm_usuarios você tem que acertar a propriedade ´ShowModal´ dos botões conforme o desejado (mrOk, mrCancel etc.) ou atribuir via código antes de fechar o form:
ModalResult := mrOK;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)