设置TOpenFileDialog的文件名属性

时间:2013-03-12 18:24:30

标签: 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);

显示问题的初始显示: Image showing problem

按Home后的整个字符串: How I think it should look

1 个答案:

答案 0 :(得分:7)

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