Clicar 2 vezes em uma celula do Grib e exibir outro form
bom galera tenho uma duvida! trabalho com delphi e firebird e tenho uma tela de pesquisa de produtos, gostaria de fazer que quando clicasse em numa celula mostraria esse registro em outro formulario.
tenho um formulario de busca de produtos e um outro aonde cadastro os produtos! quando fizesse a pesquisa do produto, por exemplo ´anel´ e clicasse 2 vezes mostrasse o regitro no outro formulario que é de cadastro!
espero que tenham me entendido, desde já agradeço! vlw :wink:
tenho um formulario de busca de produtos e um outro aonde cadastro os produtos! quando fizesse a pesquisa do produto, por exemplo ´anel´ e clicasse 2 vezes mostrasse o regitro no outro formulario que é de cadastro!
espero que tenham me entendido, desde já agradeço! vlw :wink:
Thiagoangra2
Curtidas 0
Respostas
Rweberich
14/08/2009
Ola amigo,
com certeza voce deve estar listando esses cadastros em um DBGrid,
caso seja essa sua dificuldade, issu é bem facil de resolver:
vai nos eventos do DBGrid, na opcao ´DblClick´ e coloque o seguinte codigo:
if DBGrid1.Fields[0].Text <> ´´ then
begin
DataModule1.tblprodutos.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey]);
DataModule1.tblprodutos.Edit;
frmCadProdutos.ShowModal; // abre o formulario de cadastro de produtos
end;
Abraco.
com certeza voce deve estar listando esses cadastros em um DBGrid,
caso seja essa sua dificuldade, issu é bem facil de resolver:
vai nos eventos do DBGrid, na opcao ´DblClick´ e coloque o seguinte codigo:
if DBGrid1.Fields[0].Text <> ´´ then
begin
DataModule1.tblprodutos.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey]);
DataModule1.tblprodutos.Edit;
frmCadProdutos.ShowModal; // abre o formulario de cadastro de produtos
end;
Abraco.
GOSTEI 0
Thiagoangra2
14/08/2009
amigo, ta dando um error aki, ve se pode me ajudar! é algo nesse lopartialkey? o que eu to fazendo de errado?
[Error] Ubuscaproduto.pas(94): Undeclared identifier: ´loPartialKey´
[Error] Ubuscaproduto.pas(94): Incompatible types: ´TLocateOption´ and ´Integer´
[Error] Ubuscaproduto.pas(96): Record, object or class type required
desde ja agradeço, abraços
[Error] Ubuscaproduto.pas(94): Undeclared identifier: ´loPartialKey´
[Error] Ubuscaproduto.pas(94): Incompatible types: ´TLocateOption´ and ´Integer´
[Error] Ubuscaproduto.pas(96): Record, object or class type required
desde ja agradeço, abraços
GOSTEI 0
Thiagoangra2
14/08/2009
procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject);
begin
if DBGrid1.Fields[0].Text <> ´´ then
begin
dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey]);
dm.cdspro.Edit;
frmcadpro.ShowModal.ShowModal;
end;
end;
o codigo é esse!
begin
if DBGrid1.Fields[0].Text <> ´´ then
begin
dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey]);
dm.cdspro.Edit;
frmcadpro.ShowModal.ShowModal;
end;
end;
o codigo é esse!
GOSTEI 0
Alanporto
14/08/2009
o último erro provavelmente é por que você colocou ShowModal.ShowModal
quanto ao loPartialKey, nesse caso ele pode ser dispensado, pois sempre vai existir o código passado. Tenta assim:
quanto ao loPartialKey, nesse caso ele pode ser dispensado, pois sempre vai existir o código passado. Tenta assim:
procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject); begin if DBGrid1.Fields[0].AsString <> EmptyStr then begin dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].AsString,[]); dm.cdspro.Edit; frmcadpro.ShowModal; end; end;
GOSTEI 0
Alanporto
14/08/2009
o último erro provavelmente é por que você colocou ShowModal.ShowModal
quanto ao loPartialKey, nesse caso ele pode ser dispensado, pois sempre vai existir o código passado. Tenta assim:
quanto ao loPartialKey, nesse caso ele pode ser dispensado, pois sempre vai existir o código passado. Tenta assim:
procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject); begin if DBGrid1.Fields[0].AsString <> EmptyStr then begin dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].AsString,[]); dm.cdspro.Edit; frmcadpro.ShowModal; end; end;
GOSTEI 0
Rweberich
14/08/2009
Ola Thiago,
É importante que vc informe ´loPartialKey´ ou pode acrescentar ainda ´loCaseInsensitive´, que ficaria assim (,[loPartialKey, loCaseInsensitive]), por que desta forma, vc estara filtrando indiferente se o usuario digite em letras minusculos ou maiusculas.
Desta forma, o codigo correto ficaria assim:
[b:ec78ad3aff]procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject);
begin
if DBGrid1.Fields[0].Text <> ´´ then
begin
dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey, loCaseInsensitive]);
dm.cdspro.Edit;
frmcadpro.ShowModal;
end;
end;[/b:ec78ad3aff]
Obs: Verifique em ´Uses´, no cabeçalho, se esta declarado ´DB´, ali junto de: ´...Windows, Messages, SysUtils..´. Se nao tiver acrescente ´DB´. Issu deve ajuda-lo.
procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject);
begin
if DBGrid1.Fields[0].Text <> ´´ then
begin
dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey]);
dm.cdspro.Edit;
frmcadpro.ShowModal.ShowModal;
end;
end;
o codigo é esse!
É importante que vc informe ´loPartialKey´ ou pode acrescentar ainda ´loCaseInsensitive´, que ficaria assim (,[loPartialKey, loCaseInsensitive]), por que desta forma, vc estara filtrando indiferente se o usuario digite em letras minusculos ou maiusculas.
Desta forma, o codigo correto ficaria assim:
[b:ec78ad3aff]procedure Tfrmbuscapro.DBGrid1DblClick(Sender: TObject);
begin
if DBGrid1.Fields[0].Text <> ´´ then
begin
dm.cdspro.Locate(´CODIGO´,DBGrid1.FieldS[0].Text,[loPartialKey, loCaseInsensitive]);
dm.cdspro.Edit;
frmcadpro.ShowModal;
end;
end;[/b:ec78ad3aff]
Obs: Verifique em ´Uses´, no cabeçalho, se esta declarado ´DB´, ali junto de: ´...Windows, Messages, SysUtils..´. Se nao tiver acrescente ´DB´. Issu deve ajuda-lo.
GOSTEI 0