powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Одни действия для модального показа разных форм
20 сообщений из 20, страница 1 из 1
Одни действия для модального показа разных форм
    #39728668
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно когда любая форма показывается модально делать некие одинаковые действия
Как это лучше сделать?
Я понял что коллбека OnModal нет, можно ли в OnShow узнать модально ли открыта форма или нет
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39728736
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгКак это лучше сделать?
Через базовый класс формы.

фываенгможно ли в OnShow узнать модально ли открыта форма или нет
Можно.
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39728750
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

softwarerМожно.
Спасибо большое, как это можно узнать?

На счёт первого вопроса
Я наверное не так объяснил
Есть форма в обработчиках событий которой показывается некоторое количество модальных окон (они разные)
Вот мне, перед тем как эти модальные окна показываются нужно делать некие действия
Как это лучше сделать?
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39728796
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгВот мне, перед тем как эти модальные окна показываются нужно делать некие действия
Как это лучше сделать?

Вместо XXX.ShowModal вызывай какую-нибудь процедуру YYY(XXX), которая проделает нужные
действия, а потом вызовет XXX.ShowModal.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39728797
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенг,

сделай некие действия перед показом. в чем вопрос?
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729143
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, makhaon

дело в том что модальных показов разных форм много (более 20)
И получается есть только способ просто перед каждым показом вызывать процедуру?
Никак объединить это нельзя? К примеру
Если у нас показывается любая форма, определяем модально ли она показывается, и если да то выполняем некие действия

Какой-то общий для всех форм show так сказать
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729145
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгКакой-то общий для всех форм show так сказать
http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Forms.TApplication.OnModalBegin
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729205
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенг...Как это лучше сделать?
Все формы наследуй от одной, в которой этот самый код, выполняющий общие для всех действия (например, в конструкторе).
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729212
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгдело в том что модальных показов разных форм много (более 20)
Вам трудно заменить 20 вызовов Form1.ShowModal на MyShowModal(Form1) ? На это тратится 5 минут.
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729222
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Спасибо
Вроде бы всё работает
Но тут возникает один баг

Некие действия - это деактивация всех окон перед модальным показом
То есть на форме1 показывается модальная форма
Форма1 деактивирована (теперь, с Application.OnModalBegin)
Всё как и надо
Но стоит только переключиться на другое приложение
Допустим на браузер
А потом опять переключится на приложение
Так у форм1 вызовется OnActivate!!!
Хотя программа ещё выполняет ShowModal

Так вот получается вместо этого - Application.OnModalBegin мне придётся использовать Application.OnActivate
Чтобы если активация срабатывает у модальной формы деактивировать остальные окна
Только как в этом случае в этом методе понять модально ли показывается форма или нет?

Только вот я сейчас задумался ведь может быть такое активация модальной формы пройдёт раньше чем скажем активация форм1
И тогда этот способ не сработает
И придётся видимо отключать коллбек FormActivate у форм1 на время модального показа
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729223
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгНо тут возникает один баг
Это не баг, а криво поставленная задача.
Show один, а активаций может быть сколько угодно.
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729240
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгНекие действия - это деактивация всех окон перед модальным показом
Вообще-то это "действие" модальная форма производит самостоятельно, так что
непонятно зачем тебе это делать ещё раз вручную.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729241
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Нифига подобного!
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729246
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Это да
Так вот получается нужна активация
А не шоу

Только походу это не сработает
Но всё равно, если знаешь, напиши ответ на этот вопрос, мне интересно
Как узнать модально ли показывается форма или нет?
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729247
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгDimitry Sibiryakov,

Нифига подобного!
Значит, ты под словами "активация" и "деактивация" подразумеваешь что-то свое.
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729248
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенгв OnShow узнать модально ли открыта форма или нет
Код: pascal
1.
2.
3.
4.
5.
procedure TForm2.FormShow(Sender: TObject);
begin
  if fsModal in FormState then
    Caption := 'Мадальна';
end;
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729249
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerМожно.
softwarer знает но молчит
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729250
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фываенг...Как узнать модально ли показывается форма или нет?

Несложно. Но ты наверняка скажешь, что и там какой-то баг.

Ты лучше расскажи, ради чего все эти телодвижения.
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729252
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл Эра,

деактивация это вызов FormDeactivate
По ссылке если перейти описано почему не происходит этого вызова

LGВсе дело в том, что открытии модальной формы = открытие например MessageBox. И пока тот кто вызывал модальную форму не получит mrResult не сработает OnDeactivate.
...
Рейтинг: 0 / 0
Одни действия для модального показа разных форм
    #39729253
фываенг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roschinspb,

Спасибо!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Одни действия для модального показа разных форм
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]