Fórum colorir palavras pesquisadas em um dbgrid #382241

27/07/2010

0

Boa tarde pessoal, ai estou precisando de uma ajuda com um codigo aqui. tenho um dbgrid e um banco de dados em firebird. preciso fazer uma consulta no banco de dados, pegando todas as palavras digitadas, independente se forem maiusculas ou minusculas. bem consegui fazer isto indo no banco de dados e colacando o charset como 1252 e no collate win_ptbr, outra coisa é o campo se for do tipo blobo , não tem como fazer pois ele não contem o win_ptbr pelo menos no firebird. então tenho o seguinte . primeiro criei uma procedure (localizar)   procedure TFrm_localizar.localizar;
begin
with DM.qry_localizar do
begin
    close;
    sql.Clear;
    sql.Add(_sql);
    open;
end;
end;   depois no on chance do edit coloquei este codigo abaixo   procedure TFrm_localizar.Edit1Change(Sender: TObject);
var
tipo:string;  // declare esta variavel
begin if rbcomeca.Checked then  // este é um radio button que faz com que se localize as palavras começadas porletra                                                 //digitada no edit
 tipo:=Edit1.text + '%'
 else if rbcontem.Checked then  // este radio button localiza as palavras que contem as letras digitadas no edit                                                    // em seu meio.
 tipo:=  '%' + Edit1.text + '%'; _sql:= 'select * from  biblia   where texto LIKE' + quotedstr(tipo); localizar; // aqui a procedure criada
end;   ----------------------------------------------------------------- bem esta funcionando bem, quando localiza a palavra digitada ela traz todas as linhas que contem a palavra, ficou bem legal, agora o problema é : como conserto este codigo para ao trazer a linha na pesquisa, ela traga a palavra destacada em uma cor diferente, digamos vermelho, azul etc. se alguém puder ajudar agradeço, e aproveitem o codigo acima, pois está funcionando legal. sucesso a todos geraldo leal
Geraldo Leal

Geraldo Leal

Responder

Posts

28/07/2010

Leandro Costa

procedure TForm5.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  With DBGrid1 do begin
    if Column.FieldName = NomeDoSeuCampodePesquisa then begin
      Canvas.Brush.Color := clBlack;
      Canvas.Font.Color  := clRed;
    end;
    DefaultDrawColumnCell(Rect,DataCol,Column,state);
  end;
end; Vc pode procurar na internet: Como Colorir DbGrid, Pintar DbGrid, Pintar Célular de DbGrid...     Mas deste jeito que eu to te mostrando funciona...se vc quiser um programa de exemplo posso postar depois...     Att.
Responder

Gostei + 0

29/07/2010

Geraldo Leal

Leandro, obrigado pelo retorno, mais não é o que estou precisando, colorir a linha toda ou a fonte, eu já faço, o que preciso é destacar uma palavra pesquisada, dentro do campo,    exemplo; preciso destacar esta palavra aqui dentro desta linha. entendeu, vamos dizer que procurei a palavra dentro , então ela retorna destacada, sucesso geraldo leal
Responder

Gostei + 0

01/09/2010

Geraldo Leal

Leandro, obrigado pelo retorno, mais não é o que estou precisando, colorir a linha toda ou a fonte, eu já faço, o que preciso é destacar uma palavra pesquisada, dentro do campo,    exemplo; preciso destacar esta palavra aqui dentro desta linha. entendeu, vamos dizer que procurei a palavra dentro , então ela retorna destacada, sucesso geraldo leal
Alguém para dar uma ajuda aqui. obrigado geraldo leal
Responder

Gostei + 0

01/09/2010

Carlos Mazzi

Deu certo amigao?
Responder

Gostei + 0

01/09/2010

Geraldo Leal

[quote ] Olá Carlos, infelizmente não consegui ainda, a linha toda ou as letras eu faço , o problema, é a palavra pesquisada.  se puder ajudar ai agradeço sucesso geraldo leal
Responder

Gostei + 0

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

Aceitar