powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MDIForm
9 сообщений из 9, страница 1 из 1
MDIForm
    #32113130
Hook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!!!

Не могли бы вы мне помочь
разобраться с дочерними окнами.
У меня есть глваное окно Form1 с кнопкой.
При событии Button1ОnClick появляется
дочерние окно Form2.




[src][/src]
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
end;


Если я кликну несколько раз то появится
еще несколько дочерних окон.
ВОПРОС:
Как проверить что у меня уже существует
уже дочерние Окно с таким Именем :(

Заранее БЛАГОДАРЕН!!!
...
Рейтинг: 0 / 0
MDIForm
    #32113204
_Гыук_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MDIChildren в help'е смотрели? Если нет - смотрите!
...
Рейтинг: 0 / 0
MDIForm
    #32113471
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если в Unit2 найти строчки
Код: plaintext
1.
  var
   Form2 : TForm2;

и заменить следующим образом:
Код: plaintext
1.
  var
   Form2 : TForm2 = nil;


Тогда можно пользоваться следующей конструкцией:
Код: plaintext
1.
2.
3.
4.
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if not Assigned(Form2) then
   Application.CreateForm(TForm2, Form2); 
end;
...
Рейтинг: 0 / 0
MDIForm
    #32113705
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она и так равна nil при первом создании
...
Рейтинг: 0 / 0
MDIForm
    #32113708
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if application.findcomponent('Form1')<>nil then

Так чёли?
...
Рейтинг: 0 / 0
MDIForm
    #32113776
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет

Код: plaintext
if Form1 <> nil
- ты же Form1 и так видишь, зачем его искать
...
Рейтинг: 0 / 0
MDIForm
    #32113984
Виктор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такая конструкция спасет ?
procedure TMainForm.ShowMDIForm;
var p:pointer;
i:integer;
begin
p:=nil;
for i:=MDIChildCount-1 downto 0 do
if (MDIChildren is TForm2) then
begin
p:=MDIChildren;
TForm2(MDIChildren).BringToFront;
end;
if p=nil then
TForm2.Create(Self);
end;


:-))
...
Рейтинг: 0 / 0
MDIForm
    #32114058
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2tygra:

>Она и так равна nil при первом создании
Это гарантировано и документировано?
Я и раньше это замечал, но считаю хорошим тоном самому явно объявлять значения переменной по умолчанию (если это значение используется)... Кроме того это некоторая защита от случае, если когда-нибудь это умолчания вдруг поменяют... :)
...
Рейтинг: 0 / 0
MDIForm
    #32114239
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это гарантированно - куда еще может ссылаться указатель на форму, если ее нет? Уже 7 версий так есть :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MDIForm
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]