Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.10.2014, 10:47
YoraG YoraG вне форума
Прохожий
 
Регистрация: 17.03.2011
Сообщения: 10
Репутация: 10
По умолчанию Блокировка главной формы, активация второй формы, мерцание

Здравствуйте, помогите с проблемой. Требуется при показе Form2 запретить переход на Form1 пока не будет закрыть Form2, при попытке нажать на Form1 - Form2 должно мерцать.
Form2.ShowModal - не подходит... Во первых не мерцает, во вторых процедуры в Form1 приостанавливаются пока открыта Form2.

Как пример - Download Master - при показе настроек, закачка не останавливается, главное окно не доступно, окно настроек мерцает...
Ответить с цитированием
  #2  
Старый 24.10.2014, 11:50
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Используй потоки, чтобы "процедуры не останавливались". При клике на первую форму при активной модальной второй, вторая мигает рамкой. Этого вполне достаточно, чтобы дать понять пользователю кто главный)
TThread + ShowModal
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 24.10.2014, 12:12
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Привлечь дополнительно внимание к форме ("помигать рамкой") можно ещё и с помощью API-функции FlashWindow
Ответить с цитированием
  #4  
Старый 24.10.2014, 14:19
YoraG YoraG вне форума
Прохожий
 
Регистрация: 17.03.2011
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
Используй потоки, чтобы "процедуры не останавливались". При клике на первую форму при активной модальной второй, вторая мигает рамкой. Этого вполне достаточно, чтобы дать понять пользователю кто главный)
TThread + ShowModal
именно в потоке вызывал ShowModal, там и останавливается процедура... Тут другое нужно...
Ответить с цитированием
  #5  
Старый 24.10.2014, 17:19
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от YoraG
...Тут другое нужно...
Ага, точно, похоже вам дополнительно необходимо ловить глобальную мессагу типа клика по форме_ван, да и чтоб ещё апликация без модалки была, причём до обработки этого действа ей (чтобы фокус не терялся для висящей в этот момент на екране формы_ту), в смысле требуется "инхирайтить" формерскую (Form1) процедуру WndProc...

З.Ы. (добавлено немного позже) Кстати, здесь может помочь придание стилю формы значения как fsStayOnTop, а блокировка... ловить глобальные сообщения клика по форме всё же вероятно придётся

Последний раз редактировалось Alegun, 26.10.2014 в 03:53.
Ответить с цитированием
  #6  
Старый 26.10.2014, 08:40
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

Цитата:
Сообщение от YoraG
именно в потоке вызывал ShowModal, там и останавливается процедура... Тут другое нужно...
просто у тебя есть ошибка в программе, а у менят нет. поэтому у меня TThread + ShowModal работает.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 26.10.2014, 09:58
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Как-то вы через задницу или передницу (нужное подчеркнуть) значит делаете, раз у вас модальные формы в одном потоке с рабочим кодом.

Если дельфи ХЕ какая-то, то можно этой «моргающей фигнии» добиться включив
Код:
Application.MainformOnTaskBar := True
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter