Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Buscar en un TRichEdit (https://www.clubdelphi.com/foros/showthread.php?t=30307)

Durbed 03-04-2006 16:28:46

Buscar en un TRichEdit
 
Necesito buscar una cadena en un TDecRichEdit, que es un componente deribado de TRichEdit. Para buscar estoy usando el dialogo de Buscar TFindDialog, pero aunque muestra la opcion de hacer coincidir mayusculas y minisculas, esa funcion no funciona, con lo que se hace realmente dificil encontrar algo a no ser que este escrito correctamente. Ademas encuentra bien la primera palabra, pero para ver los resultados sucesivos, no pierde el foco la ventana de buscar y por lo tanto hay que ir picando en el TDecRichEdit, el codigo que le he puesto es este:
Código Delphi [-]
procedure TFVerEditar.FD1Find(Sender: TObject);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
begin
  with MNotasDir do
    begin
      if SelLength <> 0 then
        StartPos := SelStart + SelLength
      else
        StartPos := 0;

      ToEnd := Length(MNotasDir.Text) - StartPos;

      FoundAt := FindText(FD1.FindText, StartPos, ToEnd, [stMatchCase]);
      if FoundAt <> -1 then
        begin
          MNotasDir.SelStart := FoundAt;
          MNotasDir.SelLength := Length(FD1.FindText);
          MNOtasDir.SetFocus;
        end
      Else
        ShowMessage('No encuentro ' + FD1.FindText);
    end;
end;
Esta sacado de la ayuda de delphi.

Un saludo y gracias.

dec 03-04-2006 17:24:43

Hola,

¿Probaste a ver si el código que utilizas funciona como esperas en un "TRichEdit" normal y corriente?

Por otro lado, me llama la atención esto, aunque supongo que será un error:

Cita:

(...) aunque muestra la opcion de hacer coincidir mayusculas y minisculas, esa funcion no funciona, con lo que se hace realmente dificil encontrar algo a no ser que este escrito correctamente.
Es que es justo al revés: si no quieres que se presenten resultados sensibles a mayúsculas y minúsculas, tienes que que quitar esa opción, no ponerla, ¿no es así? ;)

Durbed 04-04-2006 12:42:29

Da lo mismo, con el TRichEdit funciona igual de mal. Lo de la opcion de hacer coincidir las mayusculas y las minisculas no funciona, es mas siempre hace la distincion este o no picada la casilla.

Así que sigo teniendo dos problemas:
1º No busca la palabra si no esta escrita exactamente igual (sepodria resolver con la funcion UPPERCASE)
2º Una vez que encuentra la primera palabra, pasa el foco al RichEdit y la palabra aperece sombreada, pero al darle al boton de buscar siguiente, el cuadro de dialogo no pierde el foco, con lo que hay que ir pinchando sobre el RichEdit para ver si esta situado en la palabra que busco, es decir, solo funciona bien la primera vez que encuentra una palabra.

Un saludo y gracias.


La franja horaria es GMT +2. Ahora son las 19:40:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi