| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > активность главной формы |
| Автор: santilaas 26.10.2007, 10:29 |
| вопрос такой: как сделать, чтобы главная форма была всегда активной независимо от других форм. Заранее спасибо |
| Автор: Alix 26.10.2007, 10:37 |
| Не знаю зачем это надо, но попробуй делать MDI-форму... Или вызывать другие формы через Show, а не ShowModal. А вообще поведай, зачем это? |
| Автор: Rennigth 26.10.2007, 10:48 |
| santilaas, Может StayOnTop имеется в виду? |
| Автор: santilaas 26.10.2007, 16:06 |
| нет, на самом деле у меня и так MDI-приложение, и относительно дочерних форм, моя главная форма всегда активна, НО есть normal-форма, которая может быть открыта как на главной форме, так и вне её, - так вот - нужно чтобы, когда эта форма становится активной, активность с главной формы не пропадала. - помню, где-то раньше видел ответ на подобный вопрос, но найти не смог |
| Автор: santilaas 6.11.2007, 08:29 |
| |
| Автор: Alexeis 6.11.2007, 10:24 |
| santilaas, у контрола активной формы есть фокус ввода. Фокус ввода не может быть у 2х контролов одновременно, отсюда вывод, что такое не возможно. Можно сделать лишь эмуляцию такого эффекта. Вообще, не ясна суть вопроса. |
| Автор: santilaas 6.11.2007, 17:49 | ||||
отсюда
|
| Автор: Rennigth 7.11.2007, 17:08 |
| ama_kid, А фокус у контролов других окон не пропадет? |
| Автор: ama_kid 7.11.2007, 18:09 | ||
Rennigth, у меня вродь ничо не пропадает... В этом коде ведь с фокусом не производится операций... А вообще, я и не говорю, что все это правильно; если честно, я вообще не понимаю зачем это надо...
|
| Автор: Rennigth 7.11.2007, 19:03 | ||
А если делать еще и под висту... |
| Автор: santilaas 8.11.2007, 17:50 | ||
- ama_kid, спасибо большое - вроде то, что нужно, но у меня небольшой вопросик: а если нужно сделать, чтобы главная форма была визуально активной только в том случае, если в данный момент открыта (имеет фокус) строго определенная normal-форма, а иначе, чтобы главная форма вела себя как обычно (стандартным образом)? |
| Автор: Rennigth 8.11.2007, 18:00 | ||||
включаем телепатические способности... пытаемся понять что автор хотел сказать... наверно имеется ввиду это?
|
| Автор: ama_kid 8.11.2007, 18:01 |
| santilaas, ну тогда громозди условия на операнды Message.Active:=true; и Perform(WM_NCACTIVATE,0,0); Добавлено через 53 секунды Примерно как показал Rennigth |
| Автор: Alix 8.11.2007, 18:56 |
| Возможно не прав, сейчас точно не помню. Но стиль окна WS_POPUP не за это ли отвечает? |
| Автор: santilaas 9.11.2007, 17:22 | ||
в общем в итоге получилось так (процедуры WMNCPaint даже не потребовалось):
так что ama_kid, получай прибавку Всем остальных большое спасибо! |
| Автор: ama_kid 9.11.2007, 17:50 |
| Попробуй в режиме показа normal-окна перекрыть заголовок главного окна(который должен быть "всегда активным") каким-нибудь третьим окном и потом оттащи его обратно - та часть, которую ты перекроешь, опять приобретет задизейбленный (серый) цвет - для предотвращения этого WM_NCPAINT и был собсно предназначен |
| Автор: santilaas 11.11.2007, 15:47 | ||
- дело в том, что у меня форма FPopup - это самодельное PopupMenu, поэтому при открытии или активировании какого-то другого окна, она закрывается, а мое главное окно ведет себя стандартным образом. |