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