Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.036 c
14-1101318065
ОлегЪ
2004-11-24 20:41
2004.12.12
Моя работа


1-1101743328
Alek
2004-11-29 18:48
2004.12.12
С сишки на делфи ...


14-1100851819
БареллО
2004-11-19 11:10
2004.12.12
Совместимость


14-1100996643
Soft
2004-11-21 03:24
2004.12.12
Open Source обречен?


1-1101249250
Кто---то
2004-11-24 01:34
2004.12.12
Как отследить где именно возникает утечка памяти ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский