Delphi 2010 - Rave Report运行时文本更改问题

时间:2010-09-06 06:39:03

标签: delphi runtime delphi-2010 rave-reports

我正在使用Delphi 2010和Rave Reports(内置于版本7.7.0)。

我一直在使用这对夫妇5个月没有任何问题。在我的公司,我使用两种语言,首先我使用我们的主要语言(土耳其语),当人们想要使用另一种语言时,我会根据标签值更改特定的文本和备忘录值。

这种方法在上周工作正常。上周在运行时更改值停止工作。我不知道为什么,代码似乎一切正常,我也试图检查更改的值,值似乎发生了变化,但是当我执行报告时,所有值都改变了它们的默认值。

以下是我的更改代码:

procedure ProcessRaveReport( APageName : string );  // 'rp411.rp411Page'
var
  myPage : TRavePage;
  myText : TRaveText;
  i, iTag : Integer;
begin

  dm.Rave.Open;
  with dm.Rave.ProjMan do
  begin
    myPage := FindRaveComponent(APageName,nil) as TRavePage;
    if myPage = nil then Exit;
    for i:= 0 to myPage.ComponentCount-1 do
    begin
      if myPage.Components[i] is TComponent then
        iTag := (myPage.Components[i] as TComponent).Tag;

      if (iTag > 0) then
      begin        
        if myPage.Components[i] is TRaveText then
        begin
          //ShowMessage((myPage.Components[i] as TRaveText).Text);
          //ShowMessage(getLangIDS((myPage.Components[i] as TRaveText).Tag));
          (myPage.Components[i] as TRaveText).Text := getLangIDS((myPage.Components[i] as TRaveText).Tag);
          //ShowMessage('Sonuc : '+(myPage.Components[i] as TRaveText).Text);
        end
        else if myPage.Components[i] is TRaveMemo then
          (myPage.Components[i] as TRaveMemo).Text := getLangIDS((myPage.Components[i] as TRaveMemo).Tag);
      end;
      //iTag := 0;
    end;
  end;
  dm.Rave.Close;
end;

您可以看到我的showmessage调用,此消息证明值已更改为新语言,但最后我总是看到默认值。

有没有人知道解决这个问题的方法?

Denizhan

1 个答案:

答案 0 :(得分:0)

我错过了RvProject组件“Rave”的.execute ...快速检查它看起来不错但你只更改了RvProject的实例而不是文件本身。