DBGrid - Capturar os Valores

Delphi

22/07/2006

Bom Pessoal... tenho uma pesquisa em MySQL que esta ativa somente em tempo de execução... mas preciso copiar alguns valores da pesquisa...

Pensei em capturar do DBGrid quando clico duas vezes... desta forma os valores seriam gravados nos ´Edits´ respectivos...

CodCliente
NomeCliente
etc...

ao clicar duas vezes... eu preciso fazer uma copiar do valor da Coluna CodCliente no EditCodCliente
NomeCliente no EditNomeCliente
e assim por diante...

se alguém puder me ajudar... Fico Grato...


Adelor Silva

Adelor Silva

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

22/07/2006

Colega,

A dbGrid possui um manipulador de evento para o duplo clique. Adicione algo como:

.
.
.
EditCodCliente.Text  := TABELACodCliente.AsString;
EditNomeCliente.Text := TABELANomeCliente.Value;
.
.
.



GOSTEI 0
Adelor Silva

Adelor Silva

22/07/2006

Primeiramente gostaria de agradecer sua colaboração...

mas eu preciso obter os valores de um DBGrid1 que esta apontando para uma ZQuery1...

da forma que você passou ele captura o primeiro registro da Tabcliente cadastrado...

se puderes me ajudar ... agradeço...


GOSTEI 0
Night_man

Night_man

22/07/2006

foce ja tentou fazer on evento afterscrroll da query


EditCodCliente.Text := dataset.fieldByName(´CodCliente´).AsString;
EditNomeCliente.Text := dataset.fieldByName(NomeCliente´).AsString;


GOSTEI 0
Adelor Silva

Adelor Silva

22/07/2006

Muito obrigado NiGTH_MaN...

Desta forma funcionou... qdo eu clico sobre as linhas do DBGrid1 os mesmos valores aparece Edits...

mas se você souber como posso fazer dando dois clidks sobre o DBGrid1, ficaria mais adequado com o objetivo do projeto...

mas mesmo assim... muito obrigado... pela sua disponibilidade...


GOSTEI 0
Night_man

Night_man

22/07/2006

No evento OnMouseDown do DBGrid tenta colocar isso

if (Shift in ssDouble) then
begin
EditCodCliente.Text := Query.fieldByName(´CodCliente´).AsString;
EditNomeCliente.Text := Query.fieldByName(´NomeCliente´).AsString;
end;


GOSTEI 0
Adelor Silva

Adelor Silva

22/07/2006

Muito Obrigado... Muito Obrigado...

Fico grato pela sua colaboração... tudo esta ok... como deveria ser...

Um abraço meus amigos...


GOSTEI 0
Marco Salles

Marco Salles

22/07/2006

Sei que esta tudo resolvido , mas como a duvida de uns pode ser a duvida de outros amanhã . eu sinceramente não entendi porque que o promeiro post do Aroldo não solucioneou o problema :cry: :cry: :cry:

A dbGrid possui um manipulador de evento para o duplo clique. Adicione algo como:

Aroldo
Código: procedure TForm2.DBGrid1DblClick(Sender: TObject); begin EditCodCliente.Text := TABELACodCliente.AsString; EditNomeCliente.Text := TABELANomeCliente.Value; end;



Adelor da Silva
da forma que você passou ele captura o primeiro registro da Tabcliente cadastrado...


Não deveria capturar o registro selecionado da Grid , sendo ele primeiro , ultimo , ou do meio ??? :cry: :cry: :cry:


GOSTEI 0
Adelor Silva

Adelor Silva

22/07/2006

É que se eu fizer da forma que o Aroldo passou... (reforço que agradeço toda a ajuda, indiferente de quem postou...)

begin
EditCodCliente.Text := TABELACodCliente.AsString;
EditNomeCliente.Text := TABELANomeCliente.Value;
end;

eu estaria pegando direto da tabela_Cliente...

e o que eu precisava era pegar da ZQuery_Cliente... Quando eu clico duas vezes no DBGrid1 (que esta ligado a ZQuery_Cliente) tenho que passar estas informações para os Edits... a linha de comando que eu não sabia era justamente:

procedure TFrmPsqCli.DBGrid1DblClick(Sender: TObject);
begin
FrmLote.DBEdit4.Text := DmDados.QryPsqCli.FieldByName(´NmCli´).AsString;
FrmLote.DBEdit3.Text := DmDados.QryPsqCli.FieldByName(´CodCli´).AsString;
end;


GOSTEI 0
Marco Salles

Marco Salles

22/07/2006

mas o que o aroldo , acredito , eu lhe sugeriu , não era para voce pegar os dados da tabela Cleinte,.. Ele nen sabia que voce tinha esta tabela no seu projeto , qual era os seus Tfields , seu Componentes de Acesso etc...
. Ele apenas usou um termo generico , aonde ele lhe quis indicar o evento , aonde voce pudesse capturar o que voce estava proprondo...

Por isso eu insiste no tópico , que do jeito que foi finalizado , deu a entender que o evento OnDBGrid1DblClick [b:641e327efe]não[/b:641e327efe] lhe serveria, o que não é verdade


GOSTEI 0
Adelor Silva

Adelor Silva

22/07/2006

Acredito ter entendido o que você quis dizer... mas devido a minha inesperiencia... no assunto... não entendi quando o Aroldo passou a dica... gostaria de pedir desculpas ao Aroldo... afinal sou novato e estou estudando Delphi em casa nos finais de semana... sempre fui apaixonado pela idéia de poder programar... mas na minha cidade (Taió-SC) não temos por perto um curso que traga este conhecimento... ao conhecer este forum notei que o pessoal tira várias dúvidas...

Entendo que as vezes é um pouco difícil ajudar, principalmente aos iniciante como eu... mas é digamos minha unica forma de aprender programação... e fico muito feliz e agradecido por ela existir...

Entendo sua preocupação com o fato de eu dizer que o post do Aroldo não havia solucionado minha dúvida... mas foi por ignorância minha mesmo...

Mas volto a agradecer a todos... incluseve você Marcos... Pois posso ver que todos levam a sério as participações... até mesmo a dos iniciantes como eu... e é justamente por isso que eu participo e faço comentários positivos ao www.devmedia.com.br quando estou discutindo com amigos sobre programação...

Um Abraço a Todos...


GOSTEI 0
Marco Salles

Marco Salles

22/07/2006

é isso ai amigo . estamos sempre á disposição para trocarmos nossas experincias


GOSTEI 0
POSTAR