pegar o valor de uma determinada célula de um dbgrid

Delphi

04/02/2005

Olá,

tem como eu pegar o valor de uma célula do dbgrid sem ter que clicar na mesma?

desde já muito obrigado.


Balceiro

Balceiro

Curtidas 0

Respostas

Carlosrm

Carlosrm

04/02/2005

balceiro,

Para pegar o valor de uma célula, faça

dbgrid1fields[n].AsTipodeDado;

Aqui, n representa o índice da coluna visível do dbgrid (note que a primeira coluna tem o índice = 0).
AsTipodeDado define como o dado obtido será armazenado/exibido (AsFloat, AsDateTime, AsString...), desde que seja possível a conversão.

Por exemplo, se a terceira coluna do dbgrid1 estiver exibindo a coluna QTDE de uma tabela, com tipo de dado Integer, poderia fazer, entre outros:

- - -
var
var_inteiro : Integer;
var_string : string;
begin
- - -
var_inteiro := dbgrid1.fields[2].AsInteger;
var_string := dbgrid1.fields[2].AsString;
showmessage(´A Qtde é de: ´+dbgrid1.fields[2].AsString);
- - -
end;

Porém, note que como vc não quer clicar no dbgrid, vc só conseguirá acessar o registro (tupla) corrente da tabela (que é o que aparece em destaque no dbgrid).
Naturalmente, se vc acabou de fazer um filtro, uma pesquisa, select, navegou pela tabela,... o registro corrente estará refletindo essas ações.

Resumindo: dessa forma você não precisa clicar no dbgrid para exibir qualquer coluna visível do dbgrid. Mas fica restrito às colunas do registro atual.

(Para acessar alguma coluna não visível no dbgrid, use a mesma propriedade Fields (ou FieldByName), mas da tabela, e não mais do dbgrid.).

carlosrm


GOSTEI 0
POSTAR