Это ошибка в исходном коде VCL, внутренней переменной FFilterIndex не присваивается значение, выбранное пользователем.
Если у вас имеется исходный код VCL, вы можете это исправить, скорректировав TOpenDialog.DoExecute в Dialogs.PAS. Просто добавьте следующее:
function TOpenDialog.DoExecute(Func: Pointer): Bool;CommonDialogList.Remove(Self);if Result thenbeginProcessMultipleSelection(lpstrFile);FFileName := FFiles.Strings[0];FFilterIndex := nFilterIndex; {<=== вот что вам нужно добавить}if (Flags and OFN_EXTENSIONDIFFERENT) <> 0 thenFOptions := FOptions + [ofExtensionDifferent] |
Не (повторяю: не) изменяйте секцию interface кода VCL, если вы собираетесь продолжать пользоваться IDE.
- Owen Barder [000891]