Ver Mensaje Individual
  #14  
Antiguo 27-06-2003
bitERROR bitERROR is offline
No confirmado
 
Registrado: may 2003
Posts: 33
Reputación: 0
bitERROR Va por buen camino
Buenasss, igual esto ahora no sirve de mucho, pero yo me vi en un caso parecido e identifiqué el texto a reemplazar utilizando algún carácter significativo, tal como así...

'Estimado cliente, hoy [FECHA_ACTUAL] le informo de... bla bla bla'

Una vez decidido esto implementé así (+ o -) el código para reemplazar el 'macro' por la fecha actual, sin perder el formato del texto:
Código:
procedure TForm1.DoMacroFecha;
var SS: TStringStream; // <- <- <- <-
begin
  SS := TStringStream.Create('');
  with RxRichEdit1 do
  try
    Lines.SaveToStream(SS);
    SS.Seek(0, soFromBeginning);
    SS.WriteString(StringReplace(SS.DataString, '[FECHA_ACTUAL]', DateToStr(Date), [rfReplaceAll]));
    SS.Seek(0, soFromBeginning);
    Lines.LoadFromStream(SS);
  finally
    FreeAndNil(SS);
  end;
end;
Obviamente con este código existe el mismo problema comentado de reemplazar algún valor clave del texto enriquecido, yo no contaba con esa desventaja al utilizar 'macros', así que probablemente no sea lo más óptimo para el caso, pero os dejo la curiosidad del TStringStream y su propiedad más interesante DataString.

Un saludo a todos
Responder Con Cita