Olá, abaixo tem um código que localiza palavras no texto do Memo, ele funciona, quando mostra a palavra pesquisada dependendo da posição da palavra no texto ela aparece na primeira linha do Memo, outras palavras aparecem na última linha do Memo.
Eu gostaria que todas as palavras pesquisadas fossem exibidas na primeira linha do Memo porque no meu texto a primeira palavra esta acompanhada de sua definição que tem até cinco linhas e quando ela aparece na última linha é necessário usar scroll para ver o restante do texto, mas se ela aparecer na primeira linha o texto se enquadra perfeitamente e o resultado fica muito melhor.
Por exemplo, digamos que o desenho abaixo é um Memo..
Pergunta
Aleksander
Olá, abaixo tem um código que localiza palavras no texto do Memo, ele funciona, quando mostra a palavra pesquisada dependendo da posição da palavra no texto ela aparece na primeira linha do Memo, outras palavras aparecem na última linha do Memo.
Eu gostaria que todas as palavras pesquisadas fossem exibidas na primeira linha do Memo porque no meu texto a primeira palavra esta acompanhada de sua definição que tem até cinco linhas e quando ela aparece na última linha é necessário usar scroll para ver o restante do texto, mas se ela aparecer na primeira linha o texto se enquadra perfeitamente e o resultado fica muito melhor.
Por exemplo, digamos que o desenho abaixo é um Memo..
-------------------------------------------------------------------------------------------------
| quero que a palavra apareça só nesta linha
|
|
| e não apareça nesta linha.
--------------------------------------------------------------------------------------------------
Usei um Memo com altura para exibir 5 linhas e um Button com o código, agradeço pelo espaço e pela atenção.
Abraços.
----------------------------------------------------------------------------------------------------
...
private
FSelPos: integer;
...
procedure TForm1.Button1Click(Sender: TObject);
var
S : string;
Startpos : integer;
begin
if FSelPos = 0 then
StartPos := FSelPos + Length(Edit1.text);
S := Copy(Memo1.Lines.Text, StartPos, MaxInt);
S := Memo1.Lines.Text;
StartPos := 1;
FSelPos := Pos(Edit1.text, S);
if FSelPos > 0 then
begin
FSelPos := FSelPos + StartPos - 1;
Memo1.SelStart := FSelPos - 1;
Memo1.SelLength := Length(Edit1.text);
Memo1.SetFocus;
end;
end;
Editado por AleksanderLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.