Fórum Tenho seis preços e que recuperar o clicado #269338
19/02/2005
0
Alguém sabe como saber a coluna que foi clicada no dbgrid .
Ex. Tenho seis preços e que recuperar o clicado
Obrigado
Ex. Tenho seis preços e que recuperar o clicado
Obrigado
Demostenesjr
Curtir tópico
+ 0
Responder
Posts
20/02/2005
Carlosrm
demostenesjr;
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
20/02/2005
Carlosrm
Corrigindo...
demostenesjr,
do parágrafo ´Porém´, para baixo, era uma resposta para um outro post. Por favor, considere apenas os parágrafos anteriores...
Ah!, claro, use o evento OnCellClick do dbgrid.
(Há outras maneiras também).
carlosrm
demostenesjr,
do parágrafo ´Porém´, para baixo, era uma resposta para um outro post. Por favor, considere apenas os parágrafos anteriores...
Ah!, claro, use o evento OnCellClick do dbgrid.
(Há outras maneiras também).
carlosrm
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)