Хотелка глобальная: примерное поведение окон

Автор Пиит, 19 марта 2024, 18:00

« назад - далее »

Пиит

Не найдется ли у Вас, Алексей, еще одной волшебной галочки в окне параметров системы, чтобы наконец отвязать зависимость окон от максимизации одного на всю рабочую область.

Пиит

Пробовал ПриИзмененииРазмераОкна(ТипСобытия = 2) сбрасывать Максимизирована в ноль с установкой макс.размера для формы, и вроде бы даже работает, но при этом заголовок окна почему-то прячется полностью под панель инструментов, и восстановить окно юзеру уже проблематично.

АЛьФ

Цитата: Титович Эдуард от 19 марта 2024, 18:00Не найдется ли у Вас, Алексей, еще одной волшебной галочки в окне параметров системы, чтобы наконец отвязать зависимость окон от максимизации одного на всю рабочую область.

Это стандартное поведение окон Windows в интерфейсе MDI. Не исправить.

Злоп

ТС, а если сделать окно чуток поменьше чем макс размер и координаты окна подправить при максимизации - и будет норм..?

Пиит

Цитата: Злоп от 19 марта 2024, 22:34ТС, а если сделать окно чуток поменьше чем макс размер и координаты окна подправить при максимизации - и будет норм..?
Да, я именно об этом.
Но ПриИзмененииРазмераОкна нужно учитывать высоту панелей инструментов, иначе окно уходит заголовком под эти самые панели.

Злоп

Что-то прям вот такое я, уже вроде копал как-то... И с высотой панелей... Вспомнить бы ещё... Ну точно же делал, даже получались подогнать размеры ...

Arbuz

Да там же давно выяснили, что основная проблема это разные возможные варианты у конкретного юзера, как то: количество и положение панелей инструментов, панели окон, и номера операционной системы.

Forum123

https://web-answers.ru/c/sozdanie-ramki-okna-bez-knopki-maksimizacii-i-bez.html?ysclid=lu00a13nmr844888606 СОЗДАНИЕ РАМКИ ОКНА БЕЗ КНОПКИ МАКСИМИЗАЦИИ И БЕЗ ИЗМЕНЕНИЯ РАЗМЕРОВ?

https://questu.ru/questions/47033552/?ysclid=lu00egpktv240082791 Глобальный хук для создания/максимизации/минимизации окна и т. д. в С#

https://russianblogs.com/article/22402925678/ Два метода максимизации диалогового окна MFC, чтобы максимизировать или восстановить пропорцию

https://habr.com/ru/articles/352096/ Окна на чистом WinAPI. Или просто о сложном

https://zarezky.spb.ru/lectures/mfc/dialogs.html Диалоговые окна MFC

Arbuz

Цитата: Forum123 от 20 марта 2024, 19:25...

"Добро пожаловать в прекрасный мир Windows API!" (с)

Это с questu.ru, который тупо пиздит контент со стэковерфлоу

Forum123

Цитата: АЛьФ от 19 марта 2024, 19:30Это стандартное поведение окон Windows в интерфейсе MDI. Не исправить.

Как сделать так, чтобы при вызове из диалоговой формы например отчёта не было видимо диалоговое окно отчёта.
Иной раз выполнение отчёта и не нужно, а просто выполнить какую-либо функцию, которая произведёт например выбор данных.
Пробовал динамически изменять размер диалогового окна отчёта и минимизацию окна, но как-то оно для user не удобно.
Users не хотят видеть какие-то выскакивающие диалоговые окна.

В глобальный модуль не всегда получается перенести требуемые функции, так как они зачастую используют функции, определённые в модуле.

АЛьФ

Цитата: Forum123 от 24 марта 2024, 11:15
Цитата: АЛьФ от 19 марта 2024, 19:30Это стандартное поведение окон Windows в интерфейсе MDI. Не исправить.

Как сделать так, чтобы при вызове из диалоговой формы например отчёта не было видимо диалоговое окно отчёта.
Иной раз выполнение отчёта и не нужно, а просто выполнить какую-либо функцию, которая произведёт например выбор данных.
Пробовал динамически изменять размер диалогового окна отчёта и минимизацию окна, но как-то оно для user не удобно.
Users не хотят видеть какие-то выскакивающие диалоговые окна.

В глобальный модуль не всегда получается перенести требуемые функции, так как они зачастую используют функции, определённые в модуле.


Если я правильно понял, то в нужном отчете:
Процедура ПриОткрытии()
	Сформировать();
	СтатусВозврата(0);
КонецПроцедуры;

Forum123

Да вы правильно поняли, но требуемые функция в модуле используют значения реквизитов из диалоговой формы.
Типа:
  ВыбНачПериода01        = Конт.ВыбНачПериода01;
  СКакогоВремени         = Конт.СКакогоВремени;

  ВыбКонПериода01        = Конт.ВыбКонПериода01;
  НаКакоеВремя           = Конт.НаКакоеВремя;

А им можно присвоить значение лишь в Процедура ПослеОткрытия().
При этом диалоговую форму 1С уже создала.
Можно конечно с помощью formex убрать видимость полей динамически и рамку окна (можно ёё сделать невидимой?).

Предложенный Вами вариант интересен.
Окно не должно появиться, но тогда нужно сделать так, чтобы функция не использовала значения реквизитов в диалоговом окне.
Ох уж эти  пользователи ...

Что посоветуете?






MWW_Ruza

Это:
Процедура ПриОткрытии()
   Сформировать();
   СтатусВозврата(0);
КонецПроцедуры
Более чем стандарт...
У меня в десятке мест конфы используется.
А не использовать реквизиты диалогового окна - ну, передавайте список нужных реквизитов в процедуоу "ОткрытьФорму", и если список не пустой, то берите из списка, иначе из диалога...

Forum123

Цитата: MWW_Ruza от 24 марта 2024, 13:06передавайте список нужных реквизитов в процедуоу "ОткрытьФорму",

Здесь всё просто
Конт = Форма.Параметр;
Просто получаю контекст вызвавшего модуля и из контекста беру значения нужных полей.

А вот, чтобы ничего не переделывать и сделать невидимым диалоговое окно?

Злоп

А задвинуть окно в ПриОткрытии координатами куда-нить вниз за пределы видимой области?