在窗口中加入了TSaveDialog控件(D5)
SaveDialog: TSaveDialog;代码如下:
  FileName: string;  if SaveDialog.Execute then
  try
    FileName := SaveDialog.FileName; //问题行 
  except
  end;在正确输入文件名为'111'后,调试状态下FileName ='纛'#$12
在正确输入文件名为'123'后,调试状态下FileName ='纛'#$12
在正确输入文件名为'ww'后,调试状态下FileName ='<'(单独做一个应用,同样方法加入该控件,则功能正常.)删除掉该控件,再加入,问题依然,请问这是什么原因引起的?

解决方案 »

  1.   

    FileName := SaveDialog.FileName;
    应该没错的
    不过,你可以设置SaveDialog的默认文件名为空格,重新输入,保证它为空格,还有其他相关的格式全部过滤一下,肯定能解决的
      

  2.   

    好像是将你的SaveDialog.FileName名称根据系统的内码转换了 
    重新设置内码了
      

  3.   

    to dudunono(靖) :
    有什么办法?
      

  4.   

    to  ahyf(笨笨) :应该是我的应用程序的问题,因为新建一个应用就没有问题.另外,dialogs系列控件是在哪个*.pbl中间呢?
      

  5.   

    Reset, 再不行ReInstall Delphi^_^
      

  6.   

    可能你的机器上装了多个delphi版本,例如D7和D5并存的时候,有的控件就会出问题。这就是Borland公司产品的弱点。
    一般情况下,卸掉所有版本delphi都不行,重装系统后,再装delphi,应该没有问题,试试吧。
      

  7.   

    你上面代码的局部是不是也定义了一个名号SaveDialog的变量?
      

  8.   

    可能是string和widechar或者pchar问题,当unicode的位数和一般的不同,所以会出现不同的现实。
      

  9.   

    机器上装了D5和D7,找了一台只有D7或D5的运行程序没有问题,又找了一台装上D7和D5,运行程序问题依然,所以tjlai(西部牛) 的方法正确.