Вниз
Скачать: CL | DM;

Поменять главную форму...   Найти похожие ветки 

← →
Yuri Btr ©   (2002-06-04 12:48) [0]

Подскажите пожалуйста:
Мне нужно в приложении создать главную форму - Form1, и затем в событии OnCreate для MainForm, показать заставку - Form2 я делаю так:

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

А в
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.Show;
Form2.Close;
end;

При этом главной формой становится - Form2 и естественно приложение стопорится, даже если не делать
Form2.Show;
Form2.Close;

Как мне сделать чтобы Form1 оставалось главной?


← →
MBo ©   (2002-06-04 12:59) [1]

В FAQ есть пример с заставкой


← →
Yuri Btr ©   (2002-06-04 13:01) [2]

Спасибо, я уже разобрался...:-)
Сорри за беспокойство.


← →
yozhik   (2002-06-04 13:05) [3]

Вытянул из FAQ:
1. Создаете форму (например SplashForm).
2. Объявляете ее свободной (availableForms).
3. В Progect Source вставляете следующее (например):

program Splashin;
uses
Forms,
Main in "MAIN.PAS",
Splash in "SPLASH.PAS"
{$R *.RES}
begin
try
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Application.CreateForm(TMainForm, MainForm);
SplashForm.Hide;
finally
SplashForm.Free;
end;
Application.Run;
end.

И форма SplashForm держится на экране пока выполняется Create в главной форме. Но иногда она появляется и пропадает очень быстро, поэтому нужно сделать задержку:
1. Добавляете на форму таймер с событием:

procedure TSplashForm.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
end;

2. Событие onCloseQuery для формы:

procedure TSplashForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := Not Timer1.Enabled;
end;

3. И перед SplashForm.Hide; ставите цикл:

repeat
Application.ProcessMessages;
until SplashForm.CloseQuery;

4. Все! Осталось установить на таймере период задержки 3-4 секунды.
5. На последок, у такой формы желательно убрать Caption:
SetWindowLong (Main.Handle,GWL_STYLE, GetWindowLong(Main.Handle, GWL_STYLE) AND NOT WS_CAPTION OR WS_SIZEBOX);


← →
Игорь Шевченко ©   (2002-06-04 13:15) [4]

yozhik (04.06.02 13:05)

Зачем так сложно?

Program Files\Borland\Delphi\Demos\DB\Mastapp\*.*


← →
Вовчик   (2002-06-04 18:59) [5]

А можно просто создать главную форму невидимой. Для этого в проект файле после
Application.CreateForm(TMainForm, MainForm);
вставить
Application.ShowMainForm := False;
Видимой будет следующая по созданию форма
Соответсвенно она и выполнит роль заставки, после чего MainForm.Show и ок



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
4-55373
ted
2002-04-11 10:51
2002.06.17
Помогите плиз достать иконку!!!!!!


1-55111
AndDem
2002-06-06 09:01
2002.06.17
Совместимость D4 и D5


14-55317
Dima Dubovik
2002-05-17 02:25
2002.06.17
Народ, кто знает где можно найти компоненты, модули(ДЕЛФИ)?


1-55157
limon
2002-06-04 11:08
2002.06.17
Кредитные карточки


14-55273
lipskiy
2002-05-12 17:20
2002.06.17
1. Лист заявок для UBPFD? ______ 2. Отправка кода без оформления?




   Наверх