经过反复测试,发现,一旦将SCROLLBARS属性更改为非SSNONE,或WORDWRAP属性改为FALSE,则预设的LINES中的中文双引号就变成英文双引号了。
但在程序中使用LAODFROMFILE或键入的则仍正常。请各位指点如何解决,我需要修改SCROLLBARS和WORDWRAP的默认值。

解决方案 »

  1.   

    呵呵,刚刚发现,确实是这样:预先设置好的中文双引号在运行时变成了英文的。
    说一个方法,不知道楼主的程序方不方便改成这样:
    在Form的OnShow或者OnCreate事件中写
      RichEdit1.Lines.Text := '预设的LINES中的字符串';
      

  2.   

    谢谢,在程序运行期间都正常,包括dulei115的建议,但我需要在lines中包含大量字串,在lines的编辑器中用load导入的。
    查看object的代码如下:lines.string=(
                 '字串1'
                 ''
                 '字串2'
                 ''
                 '字串3'
                  )
    如果是在其他地方赋值时,我不知道该怎样向string中填加上述多行字串内容。使用和上述代码同样的格式时报错(当然=号已经换成了:=号)。
      

  3.   

    RichEdit1.Lines.Clear;
    RichEdit1.Lines.Add('');
    RichEdit1.Lines.Add('字串1');
    RichEdit1.Lines.Add('');
    RichEdit1.Lines.Add('字串2');
    RichEdit1.Lines.Add('');
    RichEdit1.Lines.Add('字串3');或者 "#13#10"回车换行 
    RichEdit1.Lines.Text := '字串1' + #13#10#13#10 + '字串2' + #13#10#13#10 + '字串3'
      

  4.   

    那你就用RichEdit1.Lines.LoadFromFile();
      

  5.   

    我刚在Win98第二版+Delphi7下,将RichEdit的SCROLLBARS属性更改为非SSNONE,或WORDWRAP属性改为FALSE,没出现你所说现象。
      

  6.   

    lines中预设值才会出现这种情况,运行期赋值或输入没有问题。
      

  7.   

    果然麻烦,如果还是不行就这样,方法不是很好,但是可以实现。使用 记事本或者Word等 把文本中的中文双引号换成两个特殊的,文本其他地方不可能有的字符串,如把前引号(“)换成"|(",后引号(”)换成")|",在Form的OnShow或者OnCreate事件中写
    RichEdit1.Lines.Text := StringReplace(RichEdit1.Lines.Text,'|(','“',[rfReplaceAll]);
    RichEdit1.Lines.Text := StringReplace(RichEdit1.Lines.Text,')|','”',[rfReplaceAll]);上面的方法可以实现,是没办法的办法,具体要不要这样,楼主自己看着办!