【发布时间】:2011-08-18 20:35:00
【问题描述】:
begin
opendialog := TFileOpenDialog.Create(this);
opendialog.options := (ofAllowMultiSelect);
// Display the open file dialog
if not opendialog.Execute then
begin
ShowMessage('Open file was cancelled');
path := '';
end
else
begin
for i := 0 to openpic.Files.Count-1 do
ShowMessage(openpic.Files[i]);
end;
opendialog.free;
我看到的所有地方都说将选项设置为 opendialog.options := [ofAllowMultiSelect];我所在的平台不允许我使用 [] 但是当我使用 () 时没有错误。出于某种原因,这个选项对我永远不起作用。我觉得我已经尝试了我在网上搜索的所有内容,但我没有发现任何人遇到类似的问题。
这也很奇怪,有时我发现设置选项 (ofEnableSizing) 或类似选项 (ofHideReadOnly) 实际上会占用和工作 SOMETIMES (wierd) ,但 ofAllowMultiSelect 从来没有为我工作过,它是我唯一需要的。我尝试像其他平台一样做 opendialog.ofallowmultiselect := true ,但这个错误也出现了。
任何想法都会非常受欢迎。
【问题讨论】:
-
1) 您使用的是
TOpenDialog或TFileOpenDialog吗?后者在 Delphi 5 中甚至不存在。 2)this是什么?你的意思是self? -
“[你所在的]平台”到底是什么意思?
-
令我惊讶的是编译器会让你做
opendialog.options := (ofAllowMultiSelect),因为这显然是错误的(类型不匹配)。它应该说类似[DCC Error] Unit4.pas(32): E2010 Incompatible types: 'TOpenOptions' and 'TOpenOption' -
-1 用于发布虚假问题。 Delphi 5没有TFileOpenDialog,TFileOpenDialog不接受
fo选项;它需要fdo值。如果这是真正的 Delphi 5 代码,则不会涉及变体。您正在使用某种脚本语言,而不是真正的 Delphi。老实说你正在使用什么,你会得到更好的答案,因为人们不会浪费时间试图找出所有的废话。 -
@Andreas,一种不遵循真正 Delphi 语法规则的脚本语言可以接受各种奇怪的东西。另一方面,我似乎记得在某些情况下编译器确实会接受
enum,而预期的是set of enum。想到了StringReplace函数。 (或者它可能接受foo,其中array of foo是预期的。)
标签: delphi options topendialog