Fórum Como passar Parâmetros uma DBGrid para outro Form??? #155138

15/04/2003

0

Alguém sabe como se pode passar parâmetros de um registro selecionado em uma DBGrid para um novo Form???

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

A24

Responder

Posts

15/04/2003

Marconi

Voce pode criar um form padrao para abri-lo quando desejar.

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..


Responder

Gostei + 0

15/04/2003

A24

Voce pode criar um form padrao para abri-lo quando desejar. 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..



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???


Responder

Gostei + 0

16/04/2003

Adisson

Caro Amigo
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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar