Fórum Passar valor de variável de uma TForm p/ outra TForm? #374692
08/09/2009
0
O contexto é o seguinte, tenho um formulário de cadastro e para preencher alguns dos campos, chamo um formulário de pesquisa onde o usuário pesquisa o valor desejado e ao fechar o TForm de pesquisa alguns dos campos no TForm de cadastro são automáticamente preenchidos.
Acredito que este seja um caso comum para os experientes... Me ajudem, por favor!
Dogu
Curtir tópico
+ 0Posts
08/09/2009
Osocram
Vc por acaso ja pesquisou aqui no forum mesmo antes de postar?
Pois so mes passado teve 2 topicos sobre esse assunto.
Da uma olhada neles primeiro.
Gostei + 0
08/09/2009
Dogu
DEBUG MODE
SQL Error : 1406 Data too long for column ´search_array´ at row 1
INSERT INTO phpbb_search_results (search_id, session_id, search_array) VALUES(590326299, ´871cc57afb7b21b5e182f6c1b6b9d2c0´, ´a:7:{s:14:´search_results´;s:79456:´3, 39, 43, 64, 68, 71, 74, 118, 120, 121, 128, 146, 155, 174, 179, 247, 282, 302, 314, 315, 332, 355, 358, 391, 3
Gostei + 0
08/09/2009
Dogu
Gostei + 0
08/09/2009
Osocram
http://forum.devmedia.com.br/search.php?mode=results
esta aqui o resultado
Gostei + 0
09/09/2009
Dogu
http://forum.devmedia.com.br/viewtopic.php?t=94449&highlight=passar+valor
Gostei + 0
09/09/2009
Osocram
[url]http://forum.devmedia.com.br/viewtopic.php?t=101595&start=0&postdays=0&postorder=asc&[/url]
É sobre como mandar o valor do MenuItem que esta clicando para o form que ele abriu.
Acho que é isso que vc quer.
Veja se resolve.
Gostei + 0
09/09/2009
Dogu
Gostei + 0
09/09/2009
Osocram
Este por exemplo ao meu ver é exatamente o mesmo caso.
Tudo depende de como vc programa, existem milhares de formas, vai depender tbm do seu conhecimento.
Vamos dar nome aos bois FormCadastro e FormPesquisa.
O jeito mais simples de se fazer isso
no FormCadastro
var
resultado :string
FormPesquisa := TFormPesquisa.Create(nil);
try
//so p inicializar a variavel
resultado := ´´;
//importando que no seu form Pesquisa vc use ModalResult para fechar, exemplo ModalResult := mrOK no botão OK e ModalResult := mrOK no botão cancelar;
if formPesquisa.showModal = mrOk then begin
resultado := FormPesquisa.ResultadoDaPesquisa;
end;
finally
FormPesquisa.release;
formPesquisa := nil
end;
Gostei + 0
09/09/2009
Osocram
:?
var resultado :string FormPesquisa := TFormPesquisa.Create(nil); try //so p inicializar a variavel resultado := ´´; //importando que no seu form Pesquisa vc use ModalResult para fechar, exemplo ModalResult := mrOK no botão OK e ModalResult := mrOK no botão cancelar; if formPesquisa.showModal = mrOk then begin resultado := FormPesquisa.ResultadoDaPesquisa; end; finally FormPesquisa.release; formPesquisa := nil end;
Gostei + 0
09/09/2009
Afarias
procedure TFormCadastro.Button1Click(Sender: TObject); begin with TFormPesquisa.Create(Self) do try if ModalResult=mrOK then begin // leia as propriedades/componentes do form // e preencha os campos end; finally Free; end; end;
T+
Gostei + 0
09/09/2009
Dogu
try Application.CreateForm(TFormPeskisaFornecedor,FormPeskisaFornecedor); if FormPeskisaFornecedor.ShowModal = mrOk then begin edtFornecedor.Text := FormPeskisaFornecedor.Nome; DsOutrasContas.DataSet.FieldByName(´FOR_ID´).AsInteger := FormPeskisaFornecedor.idFornecedor; end; Finally FreeAndNil(FormPeskisaFornecedor); End; Try if dbedtNumDoc.canfocus then dbedtNumDoc.SetFocus; except end;
Gostei + 0
09/09/2009
Walterfoliveira
Na secao private do Form ( Pesquisa ) declare assim:
Constructor Criar(Owner : TComponent; Key : Char);
Constructor TfmConsulta.Criar(Owner : TComponent; Key : Char);
begin
inherited create(owner);
If key in ([´a´..´z´, ´A´..´Z´, ´0´..´9´]) Then
edtValor.Text:= Key;
ComandoSQL...
End;
Agora na tela de cadastro
No evento OnKeyPress ( do edit/DbEdit )
var
Consulta : TfmConsulta;
begin
Consulta:= TfmConsulta.Criar(Self, key); //Cidade
if (Consulta.ShowModal = mrOk) then
begin
If (Not ( cdsCliente.State in [dsEdit, dsInsert])) Then
cdsCliente.Edit;
cdsClienteCIDADE.AsString:= Consulta.dscPesquisa.fieldByName(´Nome´).AsString;
cdsConveniadoUF.AsString:= Consulta.dscPesquisa.fieldByName(´Sigla´).AsString;
end;
Key:= #0;
Consulta.Free;
end;
Gostei + 0
10/09/2009
Osocram
Não use FreeAndNil para liberar o Formulario, agora não lembro mto bem o pq, mas FreeAndNil utilize para liberar Objetos normais, sem ser o formulario nem os datamodules.
use assim
finally FormPesquisa.release; formPesquisa := nil end;
try Application.CreateForm(TFormPeskisaFornecedor,FormPeskisaFornecedor); if FormPeskisaFornecedor.ShowModal = mrOk then begin edtFornecedor.Text := FormPeskisaFornecedor.Nome; DsOutrasContas.DataSet.FieldByName(´FOR_ID´).AsInteger := FormPeskisaFornecedor.idFornecedor; end; Finally FreeAndNil(FormPeskisaFornecedor); End; Try if dbedtNumDoc.canfocus then dbedtNumDoc.SetFocus; except end;
Gostei + 0
10/09/2009
Dogu
Gostei + 0
10/09/2009
Dogu
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)