Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизЗаставка Найти похожие ветки
← →
GOgo (2004-11-26 18:56) [0]Хай, пытаюсь сделать чтобы при загрузке формы 2 на экране появлялась форма один, была на экране 3 секунды и исчезала, надо заставку, но возникает ошибка в памяти при загрузке...
procedure TForm1.Timer1Timer(Sender: TObject);
var
x: Integer;
begin
If Ready=True then
Begin
x:=GetTickCount div 1000;
If x>3 then
Begin
Form1.Visible:=False;
Form2.Visible:=True;
end;
end;
end;
---------
procedure TForm1.FormCreate(Sender: TObject);
begin
Ready:=True;
Timer1.Enabled:=True;
Form1.Visible:=True;
Form2.Visible:=False;
end;
← →
begin...end © (2004-11-26 19:01) [1]
> GOgo (26.11.04 18:56)
"Ошибка в памяти" возникает, возможно, из-за того, что Form2 ещё не создана.
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988619925&n=16
← →
SergP © (2004-11-26 23:17) [2]Создаешь в design-time свою форму, например Splash
и правишь файл проекта (dpr) типа так:
program MojaProga;
uses
Forms,
Dialogs,
Graphics,
...
begin
Application.Initialize;
Splash:= TSplash.Create(Application);
splash.Show;
splash.Update;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm4, Form4);
splash.Free;
Application.Run;
end.
С временем сам придумай... А то я взял это из одной своей старой проги. Там создание остальных форм занимало несколько секунд, поэтому мне лишняя задержка не нужна была...
← →
SergP © (2004-11-26 23:17) [3]Создаешь в design-time свою форму, например Splash
и правишь файл проекта (dpr) типа так:
program MojaProga;
uses
Forms,
Dialogs,
Graphics,
...
begin
Application.Initialize;
Splash:= TSplash.Create(Application);
splash.Show;
splash.Update;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm4, Form4);
splash.Free;
Application.Run;
end.
С временем сам придумай... А то я взял это из одной своей старой проги. Там создание остальных форм занимало несколько секунд, поэтому мне лишняя задержка не нужна была...
← →
Dot (2004-11-26 23:29) [4]В проекте делаешь вот такое вот.
***************************
uses
Forms,
MainUnit in "MainUnit.pas" {MainForm},
Screen in "Screen.pas" {ScreenForm},
begin
Application.Initialize;
ScreenForm:=TScreenForm.Create(Application);
ScreenForm.Show;
ScreenForm.Update;
while ScreenForm.Timer1.Enabled do
Application.ProcessMessages;
Application.CreateForm(TMainForm, MainForm);
ScreenForm.Hide;
ScreenForm.Free;
Application.Run;
end.
**************************
При этом создаешь форму-заставку (простая форма) а на ней кладешь таймер и далее по обработчику.
procedure TScreenForm.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=false;
end;
← →
SergP © (2004-11-26 23:52) [5]
> При этом создаешь форму-заставку (простая форма) а на ней
> кладешь таймер и далее по обработчику.
Если имеется ввиду обработчик OnCreate формы, то таймер лучше поставить на другой форме, так как в OnCreate заставки возникнет ошибка...
← →
Dot (2004-11-27 00:10) [6]TScreenForm.Timer1Timer
смотри внимательней
← →
Гаврила © (2004-11-27 00:47) [7]таки лучше передавать nil овнером в конструктор для сплеш окна
и убивать ее не методом Free а методом Release
и никаких таймеров - форма убъется когда начнет работать цикл выборки сообщений - то есть именно тогда, когда надо
← →
Германн © (2004-11-27 01:17) [8]Ой, че-то мне сомнительна необходимость вызова метода Update и возможность использования таймера до вызова Application.Run :(
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c