Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
ВнизНесколько Form в проекте,Показ Формы. Найти похожие ветки
← →
Developer (2008-10-07 05:38) [0]Здравствуйте,сталкнулся я с такой проблемой.
Создал проект,потом добавил 2 новых формы в проект,
Теперь главная форма под названием Form1, две другии соотвественно назвал Form3, и самую выжную для моего проекта Form2new.
Теперь задача состоит в том что бы при собатии эта форма Form2new показалась на экране,делаю так.
Procedure TForm1.FormCreate(Sender: TObject);
Begin
//
//
Try
Form2new.Show;//Пытаемся отобразить форму
Except
ShowMessage("Ошибка");
end;
end;
Возникает ошибка,и форма не отображается,
В Uses конечно же добавлен модуль формы
Uses UnitForm2new;
А в Опциях проекта стоит
Auto-create Forms;
Form1
Form3
Form2new
В свойствах формы Form2new стоит Visible:=False;
И все равно ошибка.
Я решил попробовать поставить Visible:=True;
И закоментировав код ниже
Procedure TForm1.FormCreate(Sender: TObject);
Begin
//
//
// Try
// Form2new.Show;//Пытаемся отобразить форму
// Except
// ShowMessage("Ошибка");
// end;
end;
Форма спокойно отобразилась,в чём может быть проблема и как правельно отображать формы подскажите?
Ещё добавлю что ошибка возникает если обращаещься к любым обьектам на форме например
Form2new.Button1.Active:=False; Тоже возникает ошибка.
Система Delphi 2007 , Windows Vista Ultimate Sp1.
← →
MBo © (2008-10-07 07:06) [1]>в чём может быть проблема
В момент работы конструктора первой формы вторая еще не создана
← →
pavel_guzhanov © (2008-10-07 09:03) [2]А где form2new.create?
← →
pavel_guzhanov © (2008-10-07 09:05) [3]
> А где form2new.create?
Ой, пардон, невнимательно прочитал вопрос :о)
← →
Palladin © (2008-10-07 09:05) [4]в dpr, сразу после создания главной
← →
MsGuns © (2008-10-07 09:18) [5]Автопоказ "основной" формы надо делать в событии OnActivate гл.формы. А вообще, если Form1 является заставкой (splash), то и делать ее надо как заставку (примеров в инете моря)
← →
Developer (2008-10-07 14:11) [6]
> Автопоказ "основной" формы надо делать в событии OnActivate
> гл.формы. А вообще, если Form1 является заставкой (splash),
> то и делать ее надо как заставку (примеров в инете моря)
если можно то пожалуста более подробно обьяснить, а то я несовсем понел решение проблемы,касаемо Автопоказа что там написать?.
У меня главна форма Form1 она запускается когда запускаеш приложение, потом на форме будет показан видео ролик(в будущем планирую реализовать),потом когда он закончится,должен отобразится Form2new
Что во всех книгах и советуют использовать Show для показа.
Я пишу игру и показ Form2new для меня очень важен там будет и настройки многочисленые и загрузка и .т.д
Подскажите как правельно сделать?,а то проект уже 2 дня на одном месте стоит.
← →
Palladin © (2008-10-07 14:14) [7]
> а то проект уже 2 дня на одном месте стоит.
:) вот и пусть стоит... нафих нафих...
"убей бобра - спаси дерево!" :)
← →
Германн © (2008-10-07 14:18) [8]
> Подскажите как правельно сделать?
ПравЕльно никак не сделать, увы :(
← →
Developer (2008-10-07 14:22) [9]
> ПравЕльно никак не сделать, увы :(
Почему ?
← →
Developer (2008-10-07 15:34) [10]Всем спасибо :) я нашол решение оказывается оно довольно простое.
нашол на http://www.delphiworld.narod.ru/base/form_life.html
информацию
Рождение
OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint ...
OnCreate
Событие OnCreate возникает при создании TForm и только один раз. При создании формы (у каторой свойство Visible установлено в True), события произойдут в следующем порядке: OnCreate, OnShow, OnActivate, OnPaint. В обработчике события OnCreate можно сделать какие-либо инициализационные действия, однако, любые объекты созданные в OnCreate будут уничтожены в событии OnDestroy.
Procedure TForm1.FormCreate(Sender: TObject);
Begin
//
//
Try
Form2new:=TForm2new.Create(AppLication);//Этого нехватало
Form2new.Show;//показываем форму
Except
ShowMessage("Ошибка");//Ошибка не возникает так как теперь всё работает
end;
end;
у Form2new ставим
formstyle:=fsStayOnTop;//что бы она поверх отобразилась
Visible:=False;
Теперь всё работает отлично.
← →
Германн © (2008-10-07 16:51) [11]
> Теперь всё работает отлично.
А это:
> Auto-create Forms;
> Form1
> Form3
> Form2new
оставил как было?
← →
Developer (2008-10-07 17:47) [12]
> > Теперь всё работает отлично.А это:> Auto-create Forms;
> > Form1> Form3> Form2new оставил как было?
Да оставил как было,это не трогал.
← →
Германн © (2008-10-07 18:17) [13]
> Да оставил как было,это не трогал.
Значит теперь у тебя в программе есть два экземпляра одной и той же формы TForm2new.
← →
Developer (2008-10-07 19:18) [14]
> Значит теперь у тебя в программе есть два экземпляра одной
> и той же формы TForm2new.
Почему?,я на экране вижу две разные формы,
Или мне стоит перенести её из
Auto-create Forms;
Form1
Form3
Form2new
В правую сторону?,или удалить её от туда?
как будет правельнее сделать?
← →
Германн © (2008-10-07 19:22) [15]правИльнее - "в правую сторону"
:)
← →
Developer (2008-10-07 19:25) [16]Ладно так и сделаю В правую сторону, в любом случае проблем и ошибок пока не возникало,спасибо:)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c