Fórum Por favor Form pelo DBGrid #176483
21/08/2003
0
Já me deram várias dicas sobre como fazer isso, eu já tentei mas sempre dá erro, eu não sei trabalhar muito bem com Query e isso acaba dificultado um pouco, mas todo o meu sistema está praticamente dependendo disso!
Gostaria de muitos detalhes sobre o código. Tudo bem que eu quero que funcione, mas tb quero entender como funciona. De que outra forma irei aprender?
Galera, Ajuda Aê!
Uso Delphi 5 e Tabelas Paradox.
Denysk
Curtir tópico
+ 0Posts
21/08/2003
By Alemão
begin
form2.edit1.text := Query.FieldByName(´N´).AsString;
form2.ShowModal;
end;
o ´fieldbyname´ é o nome da coluna que contém teu conteúdo....
a hora que vc der o duplo click, ele vai usar o registro que vc selecionou no Grid como index...
entendeu?
Gostei + 0
21/08/2003
Ehvasc
Acho que o que vc quer fazer faz-se da seguinte forma:
no evento onDlbClick do grid vc faz o seguinte:
se o form de cadastro já estiver criado, antes de dar um show nele vc abra a table correspondente e dá um locate no registro selecionado com o duplo clique. Em código delphi ficaria mais ou menos assim:
if not Form_Cadastro.table1.active then
begin
Form_Cadastro.table1.Open;
end;
table1.locate(CAMPO_CHAVE_PRIMARIA,Query1.FieldByName(´CAMPO_CHAVE_PRIMARIA´),[]);
isso fará com que o registro apontado pela query seja o mesmo apontado pela table. Isso , se eu entendi direito, resolve seu problema. Qualquer coisa é só falar.
Gostei + 0
21/08/2003
Allen74
Tudo vai depender de como estará aberto o seu formulário de cadastro. Seria necessário mais informações, mas vou tentar te ajudar levando em consideração o seguinte:
Seu formulário de cadastros não foi criado. Isso quer dizer que ele não está na lista de autocreate forms que é exibida através do menu Project|Options do Delphi. Você está utilizando um componente TTable para o cadastro de clientes que está inserido no seu formulário de cadastros.
Com este tipo de informações, tudo ficará mais fácil.
Na sua query, você deverá incluir também na lista de campos que serão retornados, o(s) campo(s) que compõe a chave primária de seu cadastro. Neste caso irei supor que este campo chama-se [b:624c3facc2]codigo[/b:624c3facc2]
No evento OnDoubleClick da DBGrid, você irá escrever:
Application.CreateForm (TFrmCadastro, FrmCadastro); FrmCadastro.Table1.Findkey([Query1.FieldByName(´codigo´).AsString]); FrmCadastro.ShowModal; FrmCadastro.Free
Para que o código acima funcione corretamente, você deve abrir a tabela de cadastros (Table1) no evento OnCreate do formulário de cadastros, caso a propriedade Table1.Active não tenha sido definida para true quando você desenhou o formulário.
Tente esta solução e se não funcionar, informe mais detalhes da estrutura de seu programa e dos formulários e também poste a mensagem de erro, caso ocorra.
Gostei + 0
25/08/2003
Denysk
Eu não sei o que é isso. Fiz tuso direitinho.
Estou quase desistindo.
Denysk
Gostei + 0
25/08/2003
Uelton
Var Form1:TForm;
Teste:String;
No evento OnDoubleClick da DBGrid, você irá:
{Estou supondo que o campo que você irá fazer a consulta é String}
Vamos lá:
Teste:=Dbgrid1.SelectedField.text;
Application.CreateForm(TForm1,Form1);
Form1.Table1.Locate( ´Nome do campo a ser buscado´ ,Teste,[])
Form1.showmodal;
Gostei + 0
26/08/2003
Denysk
Uso Delphi 5 e tabelas Paradox.
Denysk
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)