Hola!
Desconosco Paradox pues naci en windows y delphi y access aunque ya estoy emigrando hacia firebird.
En algun lugar del foro (que no recuerdo) y creo que fue el maestro Dec el que dio la respuesta, yo solo adapte la rutina.
Código Delphi
[-]
procedure TfrmDatos.MDOEntradaCalcFields(DataSet: TDataSet);
var S: string;
begin
S := DataSet.FieldByName('OBS').AsString;
if Length(S) > 25 then
S := Copy(S, 1, 25) + '[...]';
DataSet.FieldByName('Notas').AsString := S;
end;
OBS es el campo que se guarda en la BD y que contiene el memo (sus datos); Notas es el campo calculado que se mostrara en el DBGrid.
El campo OBS en el caso de Firebird se guarda como BLOB de tipo Texto (No binario) de otro modo solo leeras "basura".
Espero puedas adaptarlo y resolver tu problema.