Bom pessoal neste artigo que irei disponibilizar para vocês irei mostrar como fazer a contagem de caracteres dentro de Memo...
Mas como assim? Acho que vocês já viram quando vamos enviar um recado no orkut por exemplo onde temos uma quantidade determinada de caracteres! Então nesta aplicação iremos fazer aquela mesma contagem informando a quantidade de caracteres quem o nosso memo irá receber atraves da propriedade MaxLenght...
Vamos ao que interessa...

Incluir um componente Memo(campo onde será digitado nossos caracteres) e um Label (para mostrar quantos caracteres restam a ser digitados).

No evento onCreate incluimos este código abaixo:
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.MaxLength := 150; // Informando a quantidade máxima de caracteres no Memo no expemplo foi 150.
Label1.Caption := ('Restam ' + IntToStr(Memo1.MaxLength) + ' caracteres');
end;
 
No evento OnKeyPress do Memo incluimos este código abaixo: 
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
Var
Max, Min, Total : integer;
begin
Max := Memo1.MaxLength; //Passando o valor máximo de caracteres do Memo para a variável Max.
Min := Memo1.GetTextLen; //Passando o valor minímo de caracteres do Memo para a variável Min.
Total := Max - Min; //Efetuando o cálculo entre o valor máximo e o mínimo.
Label1.Caption := ('Restam ' + IntToStr(Total) + ' caracteres');
Repaint;
if total < 1 then begin // Testando se ainda existem caracteres disponíveis para inserir.
   ShowMessage('Quantidade de caracteres excedido!');
end;
end;
end.
 
É isso aí galera espero que tenham gostado....