Duvida DBgrid!!!

Delphi

22/03/2004

Ai galera é o seguinte,
Eu coloquei num form um edit_find(cada vez q vc digita uma tecla ele checa se no campo tem a letra até formar o nome, ou seja a consulta.), mas meu DBgrid eu coloquei em
Grid.Options:=grid.Options+[dgRowSelect];
mas ele não seleciona a linha deixando-a toda azul.

Do jeito q quero é o seguinte... para ficar bem claro...
No momento q o usuario digita cada letra no edit_find ele já vai selecionando a linha no dbGrid ( deixando-a toda azul) até achar o nome.

[u:b44d02baa6][b:b44d02baa6]edit_find[/b:b44d02baa6][/u:b44d02baa6] -> c... a medida q for colocando cada letra ele jah vai selecionando lah no dbgrid.
[u:b44d02baa6][b:b44d02baa6]Dbgrid[/b:b44d02baa6][/u:b44d02baa6]
> Casa
Casara
Castelo
Como faz isso???


Evfmexp

Evfmexp

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

22/03/2004

Tente assim:

Eu usei um edit.

procedure TForm1.Edit1Change(Sender: TObject);
begin
   Table1.Locate(´NOME´,Edit1.Text,[loPartialKey]);
end;

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
   If copy(Table1Nome.Value,1,length(Edit1.Text)) = Edit1.Text  then
      Dbgrid1.Canvas.Brush.Color:= clAqua; // coloque aqui a cor desejada
   Dbgrid1.DefaultDrawDataCell(Rect, field, State);
end;



GOSTEI 0
Evfmexp

Evfmexp

22/03/2004

Olha eu já tenho um componente que a medida q vc digita ele posiciona a sta do dbgrid na celula OK!!! mas veja:
ele posiciona mas não fica azul a celula toda.

O edit_find q tenho ele jahh faz isso.. mas só quero q quando, a medida q ele procure ele selecione a celula toda do dbgrid deixando a azul.

Só quero o codigo de como selecionar e onde colocar em q evento desse componente q tenho.


GOSTEI 0
Fabio.hc

Fabio.hc

22/03/2004

Vc esta usando o DBGrid, então vc coloca este codigo, trocando o Edit1 pelo edit_find.

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; 
  Field: TField; State: TGridDrawState); 
begin 
   If copy(Table1Nome.Value,1,length(edit_find.Text)) = edit_find.Text  then 
      Dbgrid1.Canvas.Brush.Color:= clAqua; // coloque aqui a cor desejada 
   Dbgrid1.DefaultDrawDataCell(Rect, field, State); 
end;



GOSTEI 0
POSTAR