DBGRID
Oi,
Qdo. o usuário clicar no GRID, quero mostrar um número na coluna 1... como faço? Dá p/ colocar o grid em modo de Edição??
Obrigada!!
Qdo. o usuário clicar no GRID, quero mostrar um número na coluna 1... como faço? Dá p/ colocar o grid em modo de Edição??
Obrigada!!
Fatima
Curtidas 0
Respostas
Wbb
20/08/2003
Para saber qual o número da coluna do DBGrid que a célula está selecionada, basta declarar uma nova classe na cláusula Type conforme abaixo:
type
TMostraProp = class (TDBGrid);
Em seguida, no evento DBGrid1DblClick do DBGrid (ou outro evento qualquer), utilizar as propriedades ´Col´ e ´Row´ da nova classe:
procedure TfrmFiltros.DBGrid1DblClick(Sender: TObject);
Var Mensagem: String;
begin
//Mostra a coluna e linha da célula clicada.
ShowMessage(´Coluna: ´ + IntToStr(TMostraProp(DbGrid1).Col) + ´ e Linha: ´ + IntToStr(TMostraProp(DbGrid1).Row));
end;
Já para colocar o DBGrid em modo de edição, vá à propriedade Options do DBGrid, no Object Inspector, encontre o item dgEditing e coloque-o em True.
É isso!
8)
wbb
type
TMostraProp = class (TDBGrid);
Em seguida, no evento DBGrid1DblClick do DBGrid (ou outro evento qualquer), utilizar as propriedades ´Col´ e ´Row´ da nova classe:
procedure TfrmFiltros.DBGrid1DblClick(Sender: TObject);
Var Mensagem: String;
begin
//Mostra a coluna e linha da célula clicada.
ShowMessage(´Coluna: ´ + IntToStr(TMostraProp(DbGrid1).Col) + ´ e Linha: ´ + IntToStr(TMostraProp(DbGrid1).Row));
end;
Já para colocar o DBGrid em modo de edição, vá à propriedade Options do DBGrid, no Object Inspector, encontre o item dgEditing e coloque-o em True.
É isso!
8)
wbb
GOSTEI 0
Carlosrm
20/08/2003
Fátima,
acho que também não entendi. Vc quer ´mostrar um número na coluna 1´, ou seja, se clicar na última coluna da terceira célula vc quer que apareça um determinado número na coluna 1 (p.ex, 937) ?
E se vc clicar na terceira coluna, na sexta célula, vc também quer que esse mesmo numero apareça na coluna 1 (o mesmo 937) ?
Se vc quer apenas saber em qual coluna do dbgrid clicou, veja essa aternativa:
procedure TF_Form1.DBGrid1CellClick(Column: TColumn);
begin
label1.caption := ´O numero da coluna é ´ +inttostr(dbGrid1.SelectedIndex);
end;
Obs: Os indices das colunas ciomeçam em 0 (zero). Se quiser que a primeira coluna tenha o numero 1 (um) e assim por diante, troque por essa linha:
label1.caption := ´O numero da coluna é ´+inttostr(dbGrid1.SelectedIndex + 1);
Se for esse o seu desejo, vc pode tbm colocar o número no título da coluna clicada. Desculpe se eu não entendi. Nesse caso, dê mais detalhes.
Se não ajudou, espero não ter atrapalhado. carlosrm.
acho que também não entendi. Vc quer ´mostrar um número na coluna 1´, ou seja, se clicar na última coluna da terceira célula vc quer que apareça um determinado número na coluna 1 (p.ex, 937) ?
E se vc clicar na terceira coluna, na sexta célula, vc também quer que esse mesmo numero apareça na coluna 1 (o mesmo 937) ?
Se vc quer apenas saber em qual coluna do dbgrid clicou, veja essa aternativa:
procedure TF_Form1.DBGrid1CellClick(Column: TColumn);
begin
label1.caption := ´O numero da coluna é ´ +inttostr(dbGrid1.SelectedIndex);
end;
Obs: Os indices das colunas ciomeçam em 0 (zero). Se quiser que a primeira coluna tenha o numero 1 (um) e assim por diante, troque por essa linha:
label1.caption := ´O numero da coluna é ´+inttostr(dbGrid1.SelectedIndex + 1);
Se for esse o seu desejo, vc pode tbm colocar o número no título da coluna clicada. Desculpe se eu não entendi. Nesse caso, dê mais detalhes.
Se não ajudou, espero não ter atrapalhado. carlosrm.
GOSTEI 0
Wbb
20/08/2003
O que o carlosrm mostrou realmente é mais fácil do que eu fiz. É isso mesmo: dbGrid1.SelectedIndex.
É que acabei pegando um exemplo de um programa que fiz, em que preciso saber tanto a coluna quanto a linha referente à célula que estou clicando.
Assim, caso você precise de algumas propriedades adicionais no DBGrid, faça como indiquei, senão faça como o carlosrm indicou.
wbb
É que acabei pegando um exemplo de um programa que fiz, em que preciso saber tanto a coluna quanto a linha referente à célula que estou clicando.
Assim, caso você precise de algumas propriedades adicionais no DBGrid, faça como indiquei, senão faça como o carlosrm indicou.
wbb
GOSTEI 0