Ver Mensaje Individual
  #4  
Antiguo 06-12-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Reputación: 30
jhonny Va camino a la famajhonny Va camino a la fama
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:

Código Delphi [-]
FindDialog1.Execute;

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 .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 06-12-2007 a las 21:28:57.
Responder Con Cita