Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заставка для программы [D6, Win2k]


Максим ©   (2004-08-09 11:59:00) 

Помогите я пишу в тексте проекта примерно такой текст:
Begin
 Application.Initialize;
 Try
   MyForm := TForm.Create(Application);
   MyForm.Show;
   MyForm.Update;
   Application.CreateForm(TForm4, Form4);
   Application.CreateForm(TForm1, Form1);
   Repeat
   Application.ProcessMessages;
   Until  MyForm.CloseQuery;
     MyForm.Hide;
 Finally
   MyForm.Free;
 End;
 Application.Run;
End.

В принципе должно быть так : при запуске на экране видна одна форма с именем MyForm, по все остальные не создадутся она остается висеть, затем она скрывается и открывается главная форма

А у меня результат такой : При запуске открывается MyForm затем все последующие (они видны тоже на экране) и затем они скрываются и открывается главная..

Так вот как мне сделать чтобы было все нормально ?????


MacroDenS   (2004-08-09 13:41:00) [1]

да и не забудь апдейтить splash, а то с прорисовкой будут траблы...


WondeRu   (2004-08-09 13:25:00) [2]

открываешь справку Delphi в поиске набираешь "SplashScreen" и будет тебе счастье!

------
"Счастье есть, его не может не быть"  ©DJ Groove


Mim1   (2004-08-09 12:47:00) [3]

var c:Cardinal;

begin
 Application.Initialize;
 WndSplash := TWndSplash.Create(Application);
 WndSplash.Show;
 WndSplash.Update;
 c := GetTickCount;
 Application.CreateForm(TDataModule1, DataModule1);
 Application.CreateForm(TWndMain, WndMain);
 c := GetTickCount - c;
 if c < 2000 then
   Sleep(2000 - c);
 WndSplash.Hide;
 WndSplash.release;
 WndSplash := nil;
 Application.Run;
end.


Delphin   (2004-08-09 12:05:00) [4]

На сколько я понял, ты хочешь сделать Splash form
-----------------------------------------------
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;


Kurtevich   (2004-08-09 12:04:00) [5]

MyForm AllwaysOnTop


Квэнди   (2004-08-09 12:02:00) [6]

http://narod.yandex.ru/cgi-bin/yandmarkup?cluster=14&prog=0x2757571A&HndlQuery=1530650896&PageNum=0&g=0&d=0&q0=1601422112&p=


Наверх

Титульная страница Поиск, карта сайта Написать письмо