![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создана форма или нет? [D7, Win2k]
Developerr © (2005-03-09 19:15:00)Доброе время суток, подскажите, пожалуйста, как можно узнать, если есть несколько MDIChild'ов, создана какая-то определенная форма, из них (MDIChild'ов), или нет?
Спасибо.
Developerr (2005-03-10 16:32:00) [1]
> _1
> Если подразумевается что может быть только один экземпляр
> одной TMdiChild
Именно это я имел в виду, спасибо.
_1 (2005-03-10 14:34:00) [2]Если подразумевается что может быть только один экземпляр одной TMdiChild, то можно использовать ту переменную которую Delphi сама создаёт для формы.
var
MdiChild: TMDIChildForm = nil
Создавать -
if MdiChild = nil then
MdiChild:= TMdiChildForm.Create;
в MdiChildOnDestroy -
MdiChild:= nil;
Проверять -
MdiChild <> nil
Digitman (2005-03-10 14:13:00) [3]
> Developerr (10.03.05 13:49) [4]
> думал, что может есть другие способы без введения переменных
ты не чукча ли ?)
вот же , в [3], - пример кода, реализующего твою логику БЕЗО всяких там "переменных" !
> Ввести переменную
малацца !
насандаль таких переменных с запасом, штук эдак 1000000000.. заранее ж ты не знаешь, сколько MDIChild-форм юзер насоздает ..
Developerr (2005-03-10 13:49:00) [4]
> grusty
Можно и так, а можно и еще проще. Ввести переменную и при создании формы присваивать ей значение, например, OnCreate f:=true. OnDestroy f:=false; Если f=true форма создана. Я просто думал, что может есть другие способы без введения переменных.
grusty (2005-03-09 21:02:00) [5]А если так:
var
I: Integer;
f: Boolean;
begin
f:=False;
with Form1 do
for I := MDIChildCount-1 downto 0 do
if MDIChildren[I].Caption='Форма3' then f:=True;
if f
then
ShowMessage('Форма3 создана')
else
ShowMessage('Форма3 не создана')
end;
Правда это будет работать, если форма открыта... А вот если нет - совневаюсь...
Developerr (2005-03-09 19:31:00) [6]А подробнее, а то в справке показано только как закрыть все MDI children.
The following code closes all the MDI children of Form1.
var
I: Integer;
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
MDIChildren[I].Close;
end;
У меня, допустим, есть форма, например, Name MDIForm3 и Caption - Форма3, как узнать создана эта форма или нет. Если можно, пример.
Спасибо.
Плохиш (2005-03-09 19:20:00) [7]TForm.MDIChildren