在WizardForm.InstallingPage
上,WizardForm.FilenameLabel
自动截断包含文件路径的字符串,在开头包含驱动器号,后跟最大可显示路径,从路径的顶层截断,以适应标签的大小,以便始终显示文件名,例如C:\...\LongFilePathNameWithMultipleSubDirectories\Filename.ext
。
我查看了Length
,Pos
,Copy
和ExtractFileDrive
字符串函数,但鉴于路径和文件名的数量几乎无限,用户可以选择他们希望的任何安装路径,我正在努力找出一种方法来显示路径的最大可能长度,而不会截断文件名。
我想我需要一个像Pos
这样的函数来返回它找到的每个\
的匹配数和索引,这意味着我可以在每个索引之间使用Length
来确定来自Copy
的地方,但我无法找到任何方法。
答案 0 :(得分:3)
MinimizePathName()
函数可用于编写脚本,它需要一个字符串&一个字体并返回一个重新格式化的字符串,该字符串将适合给定字体中给定数量的像素。
答案 1 :(得分:2)
您可以使用MinimizePathName
function。
类似这样的东西:
YourLabelControl.Caption :=
MinimizePathName(
'C:\First Folder\Second Folder\Third Folder\Filename.ext',
YourLabelControl.Font, YourLabelControl.Width);
(未经测试)