С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2

Изменение опций при вызванном OpenDialog

10.02.2021, 06:34. Показов 1689. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Подскажите, как можно реализовать при уже вызванном OpenDialog при изменении типа файла сбрасывать/устанавливать опцию ofAllowMultiSelect. Заранее благодарю за помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2021, 06:34
Ответы с готовыми решениями:

Изменение опций свойств StringGrid
Посоветуйте друзья как это осуществить? void __fastcall TForm1::SpeedButton7Click(TObject *Sender) { if...

Изменение каталога после OpenDialog
У меня в настройках проекта подключен хелп, без указания пути, то есть поиск его в папке с прогой. При запуске проги и до использования...

Ошибка в запросе, вызванном функцией SQLExecDirect()
Добрый день, имеется вот такой код SQLExecDirect(hstmt, L"DELETE FROM CULTURELIST", wcslen(L"DELETE FROM CULTURELIST")) ==...

7
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
10.02.2021, 14:35
Цитата Сообщение от TrollHammer Посмотреть сообщение
как можно реализовать при уже вызванном OpenDialog при изменении типа файла сбрасывать/устанавливать опцию ofAllowMultiSelect
Никак. После вызова Execute изменение значения Options эффекта не имеет. Его можно изменить (для этого есть событие OnTypeChange), но поведение диалога от этого не изменится.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,356
Записей в блоге: 3
10.02.2021, 15:56
Цитата Сообщение от volvo Посмотреть сообщение
но поведение диалога от этого не изменится
Да, именно в этом сеансе работы диалога. При следующем запуске изменения вступают в силу... Но, TrollHammer, я так понимаю, Вам бы хотелось сделать это в текущем сеансе? Тогда сделать свое диалоговое окно - путь минимального сопротивления
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,012
10.02.2021, 21:42
А "перезапустить" (если возможно) диалоговое окно после изменения настроек не вариант?
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,356
Записей в блоге: 3
11.02.2021, 05:56
Цитата Сообщение от gunslinger Посмотреть сообщение
А "перезапустить"
А как? Вызвать по новой метод Execute()? Но это создаст новый экземпляр диалогового окна...
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,012
11.02.2021, 09:41
Сначала закрыть предыдущее окно диалога (при наличии такой возможности).
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
12.02.2021, 01:47  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Тогда сделать свое диалоговое окно
Да, видимо придется клепать собственное окно или оставить как есть, полагаясь на грамотные действия юзера.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,356
Записей в блоге: 3
12.02.2021, 04:24
Цитата Сообщение от TrollHammer Посмотреть сообщение
полагаясь на грамотные действия юзера
Ой, нельзя этого делать: пользователь программы - априори существо тупое и злокозненное...

А вообще, ситуация какова? Есть компонент TOpenDialog в котором задано, к примеру, 3 фильтра... При выборе первого и третьего фильтра мультивыбор разрешен, при выборе второго - запрещен. Я правильно понимаю ситуацию? Тогда можно откостылить таким образом: сделать проверку на то, не перебрал ли пользователь файлов, когда второй фильтр стоял. И если перебрал - отругать его за это, список выбранных файлов прибить, оставить только первый файл... А если нужен был не первый, а какой-либо N-ный - пусть вызывает диалог по новой и выбирает правильно.
C++
1
2
3
4
5
6
7
8
#define OD OpenDialog1
if(!OD->Execute()) return;
if((OD->FilterIndex == 2) && (OD->Files->Count > 1))
   {
     ShowMessage("ДОЛЖЕН ОСТАТЬСЯ ТОЛЬКО ОДИН!!!");
     OD->FileName = OD->Files->Strings[0];
     OD->Files->Text = OD->FileName;
   }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2021, 04:24
Помогаю со студенческими работами здесь

Изменение опций виджета "Кнопка"
Здравствуйте, помогите, пожалуйста, с заданием, достаточно объяснения или подсказки: Создайте графическое приложение с кнопкой. При нажатии...

Ошибка при вызове опций
не получается изменить опции проекта - вылазит ошибка "Access violation at address 0012F98B", пробывал удалить и заново переустановить...

Подсчет стоимости при выборе опций
Здравствуйте! Создаю магазин на opencart, но продажа будет вестись не физического товара а услуг по прокату авто и аксессуаров. Проблема...

При сборке ядра(FreeBSD 8.0) не хватает опций
Здравствуйте. Собираю ядро FreeBSD 8.0. При чтении конфигурации ядра, отсуцтвуют следующие данные: Из-за чего это может быть? И как...

Передача значения из OpenDialog в TextBox на общей форме из процедуры нажатия кнопки вызова OpenDialog
Доброго времени суток, уважаемые форумчане. На форме лежат TextBox и Button. Элементы созданы программно. При нажатии на Button вызывается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru