kolor w wybranej komórce stringgrid

0

Witam!
To znowu ja i moje problemy.
Mam program który szukuje dane w tabeli stringgrid. Jak teraz podświetlić (zmienic kolor tła) wyszukanej komórki (wiersza).

Elementu w stringgrid szukam za pomocą kodu:

procedure TForm1.Button1Click(Sender: TObject);
var
x,y,maxkol,maxwierszy: integer;
begin
maxKol := StringGrid1.ColCount;
maxWierszy := StringGrid1.RowCount;

for x:=0 to maxKol do
for y:=0 to maxWierszy do
if Pos(edit1.Text, StringGrid1.Cells[x, y]) > 0 then begin
showmessage('OKI');
end;
end;

Znalazłem taką procedurke na kolorowanie tabeli:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
const
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);
begin
if (gdFocused in State) then
begin
StringGrid1.Canvas.Brush.Color := clBlack;
StringGrid1.Canvas.Font.Color := clWhite;
end
else
if ACol = 2 then
StringGrid1.Canvas.Brush.color := clPaleGreen
else
StringGrid1.canvas.brush.Color := clPaleRed;
if (ACol > 0) and (ARow > 0) then
begin
StringGrid1.canvas.fillRect(Rect);
StringGrid1.canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
end;
end;

Jak ją przerobić aby pobierała dane z procedury która szuka i podświetlała wyszukany wiersz?

0

Jeśli to jedna komórka to daj na nią focusa - wtedy przy rysowaniu testujesz, czy komóka ma focus i rysujesz ją inaczej.

Jeśli to więcej komórek, to przy wyszukaniu zapisz ich współrzędne w jakiejś zmiennej globalnej i potem przy rysowaniu testuj row & col z tymi na liście - i odpowiednio rysuj.

poza tym - kod wstawiaj w tagi <delphi>

1 użytkowników online, w tym zalogowanych: 0, gości: 1