Pegar o valor do campo da célula do dbgrid

Delphi

13/05/2013

Boa noite, pessoal.

Estou com uma dúvida. Tenho no DBGrid as colunas, exemplo Action, Action_Nome, Permissao. Não é query é uma tabela.

Gostaria de pegar no click do mouse o valor da Coluna Action_Nome e Action e guardar numa variável, uma pra cada.
Frederico Brigatte***

Frederico Brigatte***

Curtidas 0

Respostas

Frederico Brigatte***

Frederico Brigatte***

13/05/2013

Poderia ser assim:

Acao := DBGrid2.Columns.Items[0].Field.AsString;
Acao_Nome := DBGrid2.Columns.Items[1].Field.AsString;
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

13/05/2013

Você pode e deve pegar a partir da tabela.
acao := tabela.FieldByName('Action').AsString;
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

13/05/2013

Qual o mais correto, se é que posso dizer assim? Qual a diferença?
GOSTEI 0
Landerson Santos

Landerson Santos

13/05/2013

Qual o mais correto, se é que posso dizer assim? Qual a diferença?


A opção levantada pelo Frederico é mais rápida, uma vez que você quando utiliza o opção FieldByName, ela na verdade vai fazer a busca pelos indices dos Items até achar o "Nome" procurado para depois fazer a atribuição, enfim, você tem um passo a mais.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

13/05/2013

Correto, obrigado pelo complemento, amigo Leanderson.
Porém, do ponto de vista da manutenção, é mais fácil identificar qual campo está sendo acessado. Mesmo em tempo de desenvolvimento, é mais fácil acessar um campo pelo nome, que procurar seu índice no DBGrid para acessar pela posição da coluna.
Além disso, para o Frederico que é iniciante, ele pode precisar acessar o campo de uma tabela em outro lugar, onde não tenha um grid, aí fica bem mais fácil acessar diretamente pela tabela.
Um abraço a todos.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

13/05/2013

Ok, obrigado pelas explicações. Estou estudando.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

13/05/2013

Valeu, Frederico.
Estou marcando o tópico como CONCLUÍDO.
GOSTEI 0
POSTAR