Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> активность главной формы 
V
    Опции темы
santilaas
Дата 26.10.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



вопрос такой: 
как сделать, чтобы главная форма была всегда активной независимо от других форм.
Заранее спасибо 


--------------------
[
PM MAIL   Вверх
Alix
Дата 26.10.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



Не знаю зачем это надо, но попробуй делать MDI-форму... Или вызывать другие формы через Show, а не ShowModal.
А вообще поведай, зачем это?


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Rennigth
Дата 26.10.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



santilaas, Может StayOnTop имеется в виду?


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
santilaas
Дата 26.10.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



нет, на самом деле у меня и так MDI-приложение, и относительно дочерних форм, моя главная форма
всегда активна, НО есть normal-форма, которая может быть открыта как на главной форме, так и вне её, - так вот - нужно чтобы, когда эта форма становится активной, активность с главной формы не пропадала. - помню, где-то раньше видел ответ на подобный вопрос, но найти не смог 


--------------------
[
PM MAIL   Вверх
santilaas
Дата 6.11.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



 smile 


--------------------
[
PM MAIL   Вверх
Alexeis
Дата 6.11.2007, 10:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



santilaas, у контрола активной формы есть фокус ввода. Фокус ввода не может быть у 2х контролов одновременно, отсюда вывод, что такое не возможно. Можно сделать лишь эмуляцию такого эффекта. Вообще, не ясна суть вопроса.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
santilaas
Дата 6.11.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



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

Можно сделать лишь эмуляцию такого эффекта
 - как такое сделать?


--------------------
[
PM MAIL   Вверх
ama_kid
Дата 7.11.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 9
Всего: 95



Цитата(santilaas @  6.11.2007,  17:49 Найти цитируемый пост)
нужно, чтобы у главного окна, даже при потере им фокуса, заголовок был таким же цветом как и у активного окна, т.е. содать видимость того, что оно активно
Цитата(santilaas @  6.11.2007,  17:49 Найти цитируемый пост)
как такое сделать?
Ну, к примеру можно так:
Код
type
  TForm1 = class(TForm)
  private
    { Private declarations }
    procedure WMNCActivate(var Message: TWMNCActivate); message WM_NCACTIVATE;
    procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;
  public
    { Public declarations }
  end;
implementation

{$R *.dfm}

procedure TForm1.WMNCActivate(var Message: TWMNCActivate);
begin
 Message.Active:=true;
 inherited;
end;

procedure TForm1.WMNCPaint(var Message: TWMNCPaint);
begin
 inherited;
 Perform(WM_NCACTIVATE,0,0);
end;
end.


Это сообщение отредактировал(а) ama_kid - 7.11.2007, 16:51


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Rennigth
Дата 7.11.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



ama_kid, А фокус у контролов других окон не пропадет?  smile Что мне такой это не очень нравиться... Лутше уж сваять этому окну свой заголовок который будет независимо от того активно оно или нет выглядеть как активное.


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
ama_kid
Дата 7.11.2007, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 9
Всего: 95



Rennigth, у меня вродь ничо не пропадает... В этом коде ведь с фокусом не производится операций... А вообще, я и не говорю, что все это правильно; если честно, я вообще не понимаю зачем это надо...  smile 
Цитата(Rennigth @  7.11.2007,  17:08 Найти цитируемый пост)
Лутше уж сваять этому окну свой заголовок который будет независимо от того активно оно или нет выглядеть как активное
Ога, пытался я как-то такое организовать - кода получилось больше чем самой функциональной части программы, да к тому же зависело очень сильно от смены тем в системе, в итоге - забил на это дело... smile 



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Rennigth
Дата 7.11.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



Цитата(ama_kid @  7.11.2007,  18:09 Найти цитируемый пост)
Ога, пытался я как-то такое организовать - кода получилось больше чем самой функциональной части программы, да к тому же зависело очень сильно от смены тем в системе, в итоге - забил на это дело... 

А если делать еще и под висту...  smile  smile



--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
santilaas
Дата 8.11.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



Цитата
Ну, к примеру можно так: 

- ama_kid, спасибо большое - вроде то, что нужно, но у меня небольшой вопросик: а если нужно сделать, чтобы главная форма была визуально активной только в том случае, если в данный момент открыта (имеет фокус) строго определенная normal-форма, а иначе, чтобы главная  форма вела себя как обычно (стандартным образом)?


--------------------
[
PM MAIL   Вверх
Rennigth
Дата 8.11.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 15
Всего: 76



Цитата(santilaas @  8.11.2007,  17:50 Найти цитируемый пост)
чтобы главная форма была визуально активной только в том случае, если в данный момент открыта (имеет фокус) строго определенная normal-форма, а иначе, чтобы главная  форма вела себя как обычно (стандартным образом)? 

включаем телепатические способности... пытаемся понять что автор хотел сказать... smile

наверно имеется ввиду это?

Код

procedure TForm1.WMNCPaint(var Message: TWMNCPaint);
begin
  inherited;
  if Assigned(NormalForm) and  NormalForm.Visible and (NormalForm.FormStyle = fsNormal) then
    Perform(WM_NCACTIVATE,0,0);
end;





Это сообщение отредактировал(а) Rennigth - 8.11.2007, 18:01


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
ama_kid
Дата 8.11.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 9
Всего: 95



santilaas, ну тогда громозди условия на операнды Message.Active:=true; и Perform(WM_NCACTIVATE,0,0);

Добавлено через 53 секунды
Примерно как показал Rennigth


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Alix
Дата 8.11.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



Возможно не прав, сейчас точно не помню. Но стиль окна WS_POPUP не за это ли отвечает?


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1963 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.