Acabo de construir este algoritmo que busca en un TStringGrid usando un TFindDialog llamado FindDialog1, el algoritmo es muy simple ya que solo busca lo que se necesita sin tener en cuenta las demas funciones marcadas por el usuario en el FindDialog en tiempo de ejecución (Como por ejemplo "Tener en cuenta las minusculas y las mayusculas", "Buscar para arriba o para abajo" y demas cosas), que seguro con este codigo podras comenzar y terminar para mostrarnos el resultado final
.
1) colocas un TFindDialog en el Form.
2) En un boton haces lo siguiente:
3) En el OnFind del TFindDialog haces lo siguiente:
Código Delphi
[-]
var
i, j :Integer;
Siga :Boolean;
begin
Siga := True;
i := StringGrid1.Row;
j := StringGrid1.Col+1;
while (Siga) and (i <= StringGrid1.RowCount-1) do
begin
while (Siga) and (j <= StringGrid1.ColCount -1) do
begin
if AnsiContainsText(StringGrid1.Cells[j, i], FindDialog1.FindText) then
begin
StringGrid1.Col := j;
StringGrid1.Row := i;
Siga := False;
end;
inc(j);
end;
j := 0;
inc(i);
end;
Ese metodo te buscara el primero, que encuentre desde donde se encuentre el cursor (Celda seleccionada) en ese momento y si haces siguiente sobre el boton "siguiente" del FindDialog, pues te buscara el que sigue
.
Espero te sirva
.