Fórum pegar o valor de uma determinada célula de um dbgrid #267551
04/02/2005
0
Olá,
tem como eu pegar o valor de uma célula do dbgrid sem ter que clicar na mesma?
desde já muito obrigado.
tem como eu pegar o valor de uma célula do dbgrid sem ter que clicar na mesma?
desde já muito obrigado.
Balceiro
Curtir tópico
+ 0
Responder
Posts
05/02/2005
Carlosrm
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
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)