Pintar DBGrid se localizar texto
Estou fazendo uma localização da seguinte forma:
if qryForm.Locate(NOMECAMPO , edtTEXTO.Text, [loPartialKey]) = True Then
begin
grdLista.Repaint;
end
e no procedimento: onDrawColumnCell eu pinto de amarelo caso seja igual ao texto do edit:
li_loop := 0;
while grdLista.Columns.Count > li_loop do
begin
if grdLista.Columns.Items[li_loop].Field.Text = edtValoCamp.Text then
begin
grdLista.Canvas.Brush.Color := clYellow;
grdLista.Canvas.Font.Color := clBlack;
grdLista.DefaultDrawDataCell(Rect, Column.Field, State);
end;
li_loop := li_loop + 1;
end;
O problema é que só pinta se for exatamente igual... Mas eu gostaria que pintasse se pelo menos o início fosse igual, ex: Localizar ´Jo´ e no grid ser pintado João, José, Joana, etc...
if qryForm.Locate(NOMECAMPO , edtTEXTO.Text, [loPartialKey]) = True Then
begin
grdLista.Repaint;
end
e no procedimento: onDrawColumnCell eu pinto de amarelo caso seja igual ao texto do edit:
li_loop := 0;
while grdLista.Columns.Count > li_loop do
begin
if grdLista.Columns.Items[li_loop].Field.Text = edtValoCamp.Text then
begin
grdLista.Canvas.Brush.Color := clYellow;
grdLista.Canvas.Font.Color := clBlack;
grdLista.DefaultDrawDataCell(Rect, Column.Field, State);
end;
li_loop := li_loop + 1;
end;
O problema é que só pinta se for exatamente igual... Mas eu gostaria que pintasse se pelo menos o início fosse igual, ex: Localizar ´Jo´ e no grid ser pintado João, José, Joana, etc...
Danielclubedelphi
Curtidas 0
Respostas
Aroldo Zanela
05/01/2004
Colega,
if Copy(grdLista.Columns.Items[li_loop].Field.Text,1,Length(edtValoCamp.Text)) = edtValoCamp.Text then
GOSTEI 0
Danielclubedelphi
05/01/2004
Matou...Valeu.
GOSTEI 0