Neste artigo ensinarei à vocês como se fazer uma pesquisa, e margear no TMemo:

Neste pequeno artigo vocês aprenderão como pesquisar texto e formatar o conteúdo do TMemo com margens à direita e esquerda. Vamos abrir o Delphi e criar um novo projeto, e em seguida adicionar os seguintes componentes no formulário: um TMemo, um TEdit e dois TButton conforme o layout da imagem abaixo:

Layout do Formulário

Figura 1. Layout do Formulário

Depois de realizado este processo, ao evento OnClick do Button1 "Caption Buscar conforme Layout", implementar o seguinte código:

Listagem 1: Implementando onClick do Button1


procedure TForm1.Button1Click(Sender: TObject);
var
  Find: string;
  i: integer;
begin
  Find := Edit1.Text;
  For i := 0 to Memo1.Lines.Count - 1 do
    If Pos(Find, Memo1.Lines.Text) <> 0 Then
    Begin
      Memo1.SetFocus();
      Memo1.SelStart := Pos(Find, Memo1.Lines.Text) - 1;
      Memo1.SelLength := Length(Find);
    end;
end;

Ao clicar no Button1 esse código irá procurar o texto digitado no Edit1, dentro do Memo1 e encontrá-lo irá dar um destaque para o mesmo. Bastante simples e direto, além de não ser complexo, bastante útil para Blob Text extenso.

Agora, vamos adicionar margens no Memo1. Para adicionar margens no TMemo é necessário enviar uma mensagem EM_SETRECT e definir o recurso de tamanho de tela.

Vamos ao código. No evento OnClick do Button2 "Caption Margens conforme Layout", implementar o seguinte código:

Listagem 2: Implementando onClick do Button2


procedure TForm1.Button2Click(Sender: TObject);
var
   R: TRect;
   LeftMargin: integer;
   RightMargin: integer;
 begin
   LeftMargin:= 20;
   RightMargin:= 10;
   R:= Memo1.ClientRect;
   R.Left:= R.Left + LeftMargin;
   R.Top:= R.Top + 2;
   R.Bottom:= R.Bottom - 2;
   R.Right:= R.Right-RightMargin;
   SendMessage(Memo1.Handle, EM_SETRECT, 0, Longint(@R)) ;
end;

Lembrando que o mesmo exemplo poderá ser usado com o componente TDBMemo. Agora tudo o que temos que fazer é adicionar qualquer texto nas linhas do componente Memo1 e ver o excelente resultado.

Espero que tenham gostado, segue o código fonte para facilitar o trabalho de vocês.

Muito obrigado. Fico por aqui, e espero por vocês na próxima! Grande abraço.