有没有知道怎么修改resourcestring里面的字符串的值?? 
unit TestConsts;interface
resourcestring
  TestString = 'hello,delphi!';implementationend.
 比如我想将TestString这个字符串值改为‘你好’ beginUpdateResource 
UpdateResource 
EndUpdateResource 如果有这几个函数的实例也行 

解决方案 »

  1.   

    只要在使用TestConsts单元的单元里再重新定义个TestString就行了。unit Unit1;interfaceimplementationuses TestConsts;var
      TestString: string;...
      

  2.   

    只不过这样的话实际上对TestString的操作都是对那个你重新定义的那个全局变量的操作,所以最终保存到Exe中的字符串还是'hello,delphi!'。
      

  3.   

    是想修改 可执行程序*EXE中的字符串资源还是什么?
    如果是,那么:
    更换一个 EXE 的字符串表?
    先有这样的字符资源:
    STRINGTABLE
    {
     1, "abcdefghijklmnopqrstuvwxyz"
    }
    function ChangeString(const FileName;NewString: string): Boolean;
    var
      hUpdate: Cardinal;
      s:string;
    begin
      Result:= False;
      hUpdate:= BeginUpdateResource('d:\demo.exe', false);
      if hUpdate = 0 then Exit;
      try
        s:=NewString;
        Result:= UpdateResource(hUpdate, 'String Table','1', 0, @s[1], Length(s));
      finally
        EndUpdateResource(hUpdate, not Result);
      end;
    end;
      

  4.   

    我想在程序里面动态修改,也就是覆盖。很多控件的提示消息都是英文的,查看源码发现,作者当初都是把这些字符串常量都放在一个单元的resourcestring下面,我想把这些字符串常量变成中文的,方便客户。
      

  5.   

    直接改控件的源码也是一种方法。曾经我就是这样做的,但是不理想。重装DELPHI什么的又要带弄一下。
      

  6.   

    CSHello := 'Hello';procedure LanguageResTranslate
    begin
      if language = chinese then
        cxSetResourceString(@CSHello, '嗨, 你好');  if language = english then 
        cxSetResourceString(@CSHello, 'Hello');
    end;使用的时候 cxGetResourceString(@CSHello)
      

  7.   

    yibeilee的方法不错是可以修改resourcestring里面的字符串,但是控件里面仍旧是调取的是cshello,而不是cxGetResourceString(@CSHello)
    还是没有达到我的预期目标,在不修改控件控件代码的前提下修改resourcestring里面字符串的值。