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

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




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


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

Заранее БЛАГОДАРЕН!!!
...
Рейтинг: 0 / 0
01.03.2003, 20:15
    #32113204
_Гыук_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDIForm
MDIChildren в help'е смотрели? Если нет - смотрите!
...
Рейтинг: 0 / 0
03.03.2003, 11:19
    #32113471
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDIForm
Если в 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
03.03.2003, 15:27
    #32113705
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDIForm
Она и так равна nil при первом создании
...
Рейтинг: 0 / 0
03.03.2003, 15:29
    #32113708
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDIForm
if application.findcomponent('Form1')<>nil then

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

Код: plaintext
if Form1 <> nil
- ты же Form1 и так видишь, зачем его искать
...
Рейтинг: 0 / 0
04.03.2003, 02:20
    #32113984
Виктор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDIForm
Вот такая конструкция спасет ?
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
04.03.2003, 10:11
    #32114058
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDIForm
2tygra:

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


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