设置TOpenFileDialog的文件名属性

Mar*_*rkF 7 delphi delphi-xe2

当我设置TFileOpenDialog的Filename属性然后执行它时,我只看到在Filename字段中选择的文件名的最后14个字符.如果我按下Home我可以看到整个字符串都在那里,但我希望它能正确显示.我已经在两台Windows 7和一台Windows 8机器上进行了测试,结果相同.有没有人对如何解决这个问题有任何建议或提示?

FileOpenDialog1.FileName :=
  'C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\available_downloads_en.htm';
if FileOpenDialog1.Execute then
  ShowMessage(FileOpenDialog1.FileName);
Run Code Online (Sandbox Code Playgroud)

显示问题的初始显示: 图像显示问题

按Home后的整个字符串: 我觉得应该怎么样

Rem*_*eau 7

TFileOpenDialog只是围绕微软IFileDialogWindows Vista及更高版本界面的一个薄薄的包装.您无法控制对话框在显示时的行为方式.如果它只显示最后一个字符(并且我能够在我的Win7盒子上重现这种行为),那么这就是对话框的一般工作方式.然而,说到这一点,IFileDialog确实允许绝对文件夹路径和文件名单独设置,这就是它们应该如何使用,但TFileOpenDialog不幸的是不会产生或暴露这种分离(Embarcadero bug?).因此,如果您需要该功能,则必须IFileDialog直接使用而不能使用TFileOpenDialog.