如何替换备忘录中的字符串(FastReport)?

And*_*dré 5 delphi replace fastreport memo

我的报告中有一个备忘录对象,需要替换"%...%"字符串.例如,在Rave报告中:

MemoBuf.ReplaceAll('%my_str%',  "new string", false);
Run Code Online (Sandbox Code Playgroud)

但是,不存在替换文本的方法(或属性)FastReport.我怎么能这样做?

我正在使用Fast Report 4.9.72Delphi 2010.

谢谢!

TLa*_*ama 6

由于StringReplaceFastReport中没有,我会从Delphi代码中做到这一点.有可能以某种方式导入函数,但这似乎更好地安排.请注意,在第一个例子中,我认为Memo1存在(否则你将获得访问冲突).

procedure TForm1.Button1Click(Sender: TObject);
var
  Memo: TfrxMemoView;
begin
  Memo := frxReport1.FindObject('Memo1') as TfrxMemoView;
  Memo.Text := StringReplace(Memo.Text, '%my_str%', 'new string', [rfReplaceAll]);
  frxReport1.ShowReport;
end;
Run Code Online (Sandbox Code Playgroud)

如果您不确定组件名称或类型,则应使用以下内容:

procedure TForm1.Button2Click(Sender: TObject);
var
  Memo: TfrxMemoView;
  Component: TfrxComponent;
begin
  Component := frxReport1.FindObject('Memo1');
  if Component is TfrxMemoView then
  begin
    Memo := Component as TfrxMemoView;
    Memo.Text := StringReplace(Memo.Text, '%my_str%', 'new string', [rfReplaceAll]);
    frxReport1.ShowReport;
  end;
end;
Run Code Online (Sandbox Code Playgroud)