-1
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 ,但这也会出错。

任何想法都会非常受欢迎。

4

1 回答 1

1

当然是行不通的。你必须使用[]来创建一个集合!

OpenDialog.Options := [ofAllowMultiSelect];

如果由于某种奇怪的原因,您不能输入[and ],您可以使用(.and.)代替:

OpenDialog.Options := (.ofAllowMultiSelect.);

此外(但有点不相关的注释),您应该始终将这样的代码块包含在try..finally

OpenDialog := TFileOpenDialog.Create(nil); // or self -- there is no 'this'
try
  // Do stuff
finally
  OpenDialog.Free;
end;
于 2011-08-18T20:39:13.537 回答