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

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

10.02.2021, 06:34. Показов 1680. Ответов 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
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,886
Записей в блоге: 12
10.02.2021, 14:35
Цитата Сообщение от TrollHammer Посмотреть сообщение
как можно реализовать при уже вызванном OpenDialog при изменении типа файла сбрасывать/устанавливать опцию ofAllowMultiSelect
Никак. После вызова Execute изменение значения Options эффекта не имеет. Его можно изменить (для этого есть событие OnTypeChange), но поведение диалога от этого не изменится.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
10.02.2021, 15:56
Цитата Сообщение от volvo Посмотреть сообщение
но поведение диалога от этого не изменится
Да, именно в этом сеансе работы диалога. При следующем запуске изменения вступают в силу... Но, TrollHammer, я так понимаю, Вам бы хотелось сделать это в текущем сеансе? Тогда сделать свое диалоговое окно - путь минимального сопротивления
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,010
10.02.2021, 21:42
А "перезапустить" (если возможно) диалоговое окно после изменения настроек не вариант?
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
11.02.2021, 05:56
Цитата Сообщение от gunslinger Посмотреть сообщение
А "перезапустить"
А как? Вызвать по новой метод Execute()? Но это создаст новый экземпляр диалогового окна...
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,010
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,354
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru