Fórum Duvida DBgrid!!! #221430

22/03/2004

0

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

Responder

Posts

22/03/2004

Fabio.hc

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;



Responder

Gostei + 0

23/03/2004

Evfmexp

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.


Responder

Gostei + 0

23/03/2004

Fabio.hc

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;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar