Fórum Como passar Parâmetros uma DBGrid para outro Form??? #155138
15/04/2003
0
Ex:
A DBGrid possui os seguintes campos da Tabela de Clientes:
- Cod_Cliente
- Cod_Dep
- Nome
- Telefone
E possui um Botão!
Quando eu clicar neste botão, deverá abrir um novo Form passando como parâmetros os Campos: ´Cod_Cliente´ e ´Cod_Dep´ do registro selecionado na DBGrid. No novo Form que irá abrir, deverá ter uma Query listando o seguinte:
Query1 = ´SELECT * FROM Departamento WHERE Cod_Dep = ´ Cod_Dep´ ´// que foi passado como parâmetro.
´ AND Cod_Cliente = ´Cod-_liente´ ´ // que foi passado como parâmetro.
Espero uma ajuda.
Valeu!!!
A24
Curtir tópico
+ 0Posts
15/04/2003
Marconi
Nas opções do programa não deixe ele ser criado automaticamente. Ou seja no source do programa principal iniba com // a linha Application.CreateForm(TMeuform, MeuForm);
Em qualquer parte do programa voce pode recria-lo apenas digitando
Application.CreateForm(TMeuform, MeuForm);
MeuForm.ShowModal;
...
...
MeuForm.close;
e limpa-lo da memória com
MeuForm.free;
Se precisar outra cópia aberta ao mesmo tempo.
Mude o nome sem mudar o conteúdo com
Application.CreateForm(TMeuform, OutroForm);
OutroForm.open;
Outroform.show;
...
Outroform.close;
Outroform.free;
Espero ter ajudado..
Gostei + 0
15/04/2003
A24
Mas como eu faço para passar os parâmetros do registro da DBGrid slecionado para este novo Form??? Qual comando eu utilizo no Onclick do Botão para passar estes parâmetros??? E qual a query que eu utilizo para recuperar estes dados???
Gostei + 0
16/04/2003
Adisson
Voce poderia usar o evento o dblclick:
Ou seja escolha o registro e clique duas vezes. Será acionado o seguinte evento:
procedure TFRMCADARREC.DBGrid1DblClick(Sender: TObject);
begin
codcli:=tblclientesco_cliente.value;//atenção codcli e coddep são variaveis globais e devem ser cadastradas no form principal.
coddep:=tblclientescod_dep.value
//o comando abaixo cria o formulario form2 em tempo de execução. Importante por defalt todos os formularios usados são criado automaticamente
para vc mudar isso há duas maneiras
Uma o amigo marconi indicou
´Nas opções do programa não deixe ele ser criado automaticamente. Ou seja no source do programa principal iniba com // a linha Application.CreateForm(TMeuform, MeuForm); ´
outra seria menu=>project>options>guia formu aparecerá uma janela descrevendo todos seus formularios. observe que todos estão no quadro de autocreate
selecione o form2 e clique em >.
application.createform(tform2,form2)
form2.showmodal;
from2.free
Bem agora vamos para o form2 no evento o create do form2
procedure TForm2.FormCreate(Sender: TObject);
begin
datamodule1.query1.parambyname(´cod_cli´).value:=codcli;// variavel global.
datamodule1.query1.parambyname(´cod_cli´).value:=codcli; //variavel global.
datamodule1.query1.open;
importante: datamodule1: observe que o formulario é criado em tempo de execução por isso a query deverá ficar
em um datamodule(o mais indicado) ou no formulario principal. não podendo ficar no form2 senão dará erro.
Um abraço
espero ter ajudado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)