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