Главная страница
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.033 c
4-1089495562
_Stalker_
2004-07-11 01:39
2004.08.22
Путь к программе


1-1091786912
gigabytepretender
2004-08-06 14:08
2004.08.22
Своя орфография в Word98


3-1091022448
r00t
2004-07-28 17:47
2004.08.22
Как отобразить формулы и т.д. в бд?


14-1091723482
Никита
2004-08-05 20:31
2004.08.22
Меню как в Офисе ХР


1-1092119059
sdw_syscoder
2004-08-10 10:24
2004.08.22
Как разместить надпись или кнопку в правой стороне ToolBar a