Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.006 c
3-1209750958
Beer_Hunter
2008-05-02 21:55
2008.11.16
Параметризированный запрос


2-1223552041
Iris
2008-10-09 15:34
2008.11.16
объект-Контейнер


2-1223549264
aslanbek
2008-10-09 14:47
2008.11.16
Счетчик для программы


2-1223512199
AlexDan
2008-10-09 04:29
2008.11.16
Реестр..


4-1192365003
i
2007-10-14 16:30
2008.11.16
UAC в висте...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский