• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nitoc3

Dúvida com o TFindDialog

1 mensagem neste tópico

Olá pessoal

Estou a fazer um pequeno editor de texto mas não consigo fazer com que a opção de procurar para cima do TFindDialog funcione... Seja qual for a opção seleccionada ele começa do ponto seleccionado no RichEdit até ao fim do texto e regressa ao principio. Como posso fazer para inverter o sentido da busca?

O código que estou a usar é este:

procedure TForm1.FindDialog1Find(Sender: TObject);
var
  st: TSearchTypes;
  NewPos: integer;
  Find: TFindDialog;
  RichEdit: TRichEdit;
begin
  RichEdit := RichEdit1;
  Find := (Sender as TFindDialog);

  if frMatchCase in Find.Options then
    st := st+[stMatchCase];

  if frWholeWord in Find.Options then
    st := st+[stWholeWord];

  if RichEdit.SelLength > 0 then
    RichEdit.SelStart := RichEdit.SelStart + 1;

  NewPos := RichEdit.FindText(Find.FindText,
                    RichEdit.SelStart,
                    Length(RichEdit.Text),
                    st);

  if NewPos <> -1 then
  begin
    RichEdit.SelStart := NewPos;
    RichEdit.SelLength := Length(Find.FindText);
    RichEdit.SetFocus;
  end
  else
  begin
    MessageDlg('Atingiu o fim do ficheiro.',mtInformation,[mbOK],0);
    RichEdit.SelStart := 0;
  end;
end;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora