Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Заставка для программы   Найти похожие ветки 

 
Максим   (2004-08-09 11:59) [0]

Помогите я пишу в тексте проекта примерно такой текст:
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 затем все последующие (они видны тоже на экране) и затем они скрываются и открывается главная..

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


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

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


 
Kurtevich ©   (2004-08-09 12:04) [2]

MyForm AllwaysOnTop


 
Delphin ©   (2004-08-09 12:05) [3]

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


 
Mim1 ©   (2004-08-09 12:47) [4]

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.


 
WondeRu ©   (2004-08-09 13:25) [5]

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

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


 
MacroDenS ©   (2004-08-09 13:41) [6]

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



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

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
9-1083477699
Smoke_Gomel
2004-05-02 10:01
2004.08.22
Анимированные спрайты в Delphix


14-1090881129
g-l-u-k
2004-07-27 02:32
2004.08.22
Как скомпилить *.exe


3-1091002043
Wolfram
2004-07-28 12:07
2004.08.22
Проблемы при переходе с Paradox на Access


14-1091537366
}|{yk
2004-08-03 16:49
2004.08.22
По автоматизации Excel


1-1091688539
MadGhost
2004-08-05 10:48
2004.08.22
как добавить значение к переменной окружения PATH ??