Текущий архив: 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.46 MB
Время: 0.022 c