Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать открыта или закрыта в текущий момент форма? [D6, Win95/98, Win2k]


Брат ©   (2002-11-28 14:22:00) 

Люди! Как узнать открыта или закрыта в текущий момент форма в проекте?


Дмитрий К.К.   (2002-11-28 15:55:00) [1]

Начали формами, заканчиваем орфографией...


Брат   (2002-11-28 15:31:00) [2]


> Все эти ваши Active показывают лишь активна ли существующая
> форма (Active/Inactive Caption). Форма может быть открыта,
> но не активна.
> Если же такой код применить по отношению к форме, которая
> НЕСОЗДАНА/РАЗРУШЕНА - т.е. не существует в данном контексте,
> будем наблюдать "Access Violation". Хотя, судя по названию
> (frmMain) это не актуально, т.к. это MainForm.

frmMain - это я написал для примера. На самом деле я использую проверку в модальных формах, так что мне не грозит вышеуказанное...


exit   (2002-11-28 15:30:00) [3]


> Кстати "не" с глаголом пишется отдельно, критик Вы наш..

Я в курсе "учитель". Если ВЫ про НЕСОЗДАНА, то в "данном контексте" - это не глагол. Я просто решил так обозначить флаг ее состояния. Не даром ведь с большой буквы написал... Специально для таких "учителей". Да и глаголы - тема не этой конференции. Но не могу удержаться:

Нет, не спасибо, я тормознул. Не правильно вопрос прочитал.
А то что Вам надо это скорей всего TForm.Active

1. Не правильно- неправильно :-)
2. А то что Вам надо это скорей всего TForm.Active-
А то, что Вам нужно, это скорее всего "TForm.Active" :-)


Song   (2002-11-28 15:13:00) [4]

2exit (28.11.02 15:06)
Кстати "не" с глаголом пишется отдельно, критик Вы наш..


dimich1978   (2002-11-28 15:13:00) [5]

а свойство формы visible:=false(true) не подойдет?


Song   (2002-11-28 15:10:00) [6]

2exit (28.11.02 15:06)
ну для таких умных можно упомянуть Assigned() и IsIconic()
Просто автор не указал какое именно действие он имел ввиду под "активна ли форма".


exit   (2002-11-28 15:06:00) [7]

Все эти ваши Active показывают лишь активна ли существующая форма (Active/Inactive Caption). Форма может быть открыта, но не активна.
Если же такой код применить по отношению к форме, которая НЕСОЗДАНА/РАЗРУШЕНА - т.е. не существует в данном контексте, будем наблюдать "Access Violation". Хотя, судя по названию (frmMain) это не актуально, т.к. это MainForm.


Дмитрий К.К.   (2002-11-28 14:57:00) [8]

Я думаю, что вопрос "Как узнать открыта или закрыта в текущий момент форма в проекте?" подразумевает работу в IDE ;)


SmashFX   (2002-11-28 14:57:00) [9]

FindWindow?


Брат   (2002-11-28 14:55:00) [10]

Почему? Все работает:
...
if Screen.ActiveForm=frmMain then
begin
MessageDlg("error1!",mtError,[mbOK],0);
n:=16;
end
else
begin
MessageDlg("error2!",mtError,[mbOK],0);
n:=14;
end;


Song   (2002-11-28 14:40:00) [11]

Нет, не спасибо, я тормознул. Не правильно вопрос прочитал.
А то что Вам надо это скорей всего TForm.Active


Брат   (2002-11-28 14:37:00) [12]


> Song © (28.11.02 14:36)
> TScreen.ActiveForm

спасиба!!


Song   (2002-11-28 14:36:00) [13]

TScreen.ActiveForm


Брат   (2002-11-28 14:30:00) [14]


> Внимательнее работать с среде ;)

:-) Я имею в виду как програмно узнать а не визуально... :-)


Дмитрий К.К.   (2002-11-28 14:28:00) [15]

Внимательнее работать с среде ;)


Наверх

Титульная страница Поиск, карта сайта Написать письмо