Esto debería servirte.
En resumen, el procedimiento mira la última palabra que estás escribiendo en el Memo y si esa palabra puede ser transformada en un Flotante, como los importes por ejemplo, se muestra en un label el Mensaje "Pulsa Intro para: 0.000.000,00", al pulsar Intro se sustituye el valor por el valor formateado con separador de miles.
Código Delphi
[-]
var
Form1: TForm1;
ULTPALABRA : STRING;
implementation
{$R *.lfm}
procedure TForm1.Memo1Change(Sender: TObject);
var
N : INTEGER;
SALIR : BOOLEAN;
NUMERO : DOUBLE;
begin
SALIR:=FALSE;
N := LENGTH(MEMO1.Text);
REPEAT
IF COPY(MEMO1.Text, N, 1) = ' ' THEN SALIR:=TRUE;
N:=N-1;
UNTIL (N<1) OR (SALIR=TRUE);
ULTPALABRA := COPY(MEMO1.TEXT, N+1, LENGTH(MEMO1.TEXT)-N);
IF TRYSTRTOFLOAT(TRIM(ULTPALABRA), NUMERO) THEN
LABEL1.CAPTION := 'Pulse Intro para: '+FORMATFLOAT('##,##0.00', NUMERO)
ELSE
LABEL1.CAPTION := '';
end;
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: char);
begin
IF (KEY = #13) AND (LABEL1.CAPTION <> '') THEN
BEGIN
KEY:=#0;
MEMO1.TEXT := STRINGREPLACE(MEMO1.Text, TRIM(ULTPALABRA), FORMATFLOAT('##,##0.00',STRTOFLOAT(ULTPALABRA)), [RFREPLACEALL]);
MEMO1.SelStart := LENGTH(MEMO1.TEXT);
end;
end;