![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заставка перед запуском программы
Пантелеев Иван © (2005-09-08 23:10:00)Мне нужно чтобы перез запуском моей программы 2-3 сек. показывалась некая заранее подготовленная форма (заставка к программе). Как это сделать?
Если можно по подробнее.
Antonn (2005-09-13 14:00:00) [1]ssk © (13.09.05 13:53) [20]
не знаю, нахрена заставка, если программа грузится быстро.
а они таймер замедления ставят, чтобы успели прочитать:))
ssk (2005-09-13 13:53:00) [2]не знаю, нахрена заставка, если программа грузится быстро. только пользователя утомлять. или это типа "прога такая-то, сделано тем-то и там-то" для того, чтоб узнали кто делал? если это так, то обычно делают пункт в меню - называется ''About''
Defunct (2005-09-10 00:32:00) [3]как вариант, можно даже включить главную форму еще не потушив форму-заставку:
unit unit2;
...
..
uses Unit1;
var
StartCounter : integer = 3;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Dec( StartCounter );
case StartCounter of
1: Form1.Show;
0: begin
TTimer( Sender ).Enabled := false;
ModalResult := mrOk;
end;
end;
end;
end.
Defunct (2005-09-10 00:21:00) [4]> Пантелеев Иван (09.09.05 15:30) [9]
program Project2;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := False;
Application.Run;
end.
На Form2 кидаем таймер. выставляем время 3000 ms. в обработчике таймера пишем:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
TTimer( Sender ).Enabled := false;
ModalResult := mrOk
end;
В главной форме пишем например в OnCreate:
procedure TForm1.FormCreate(Sender: TObject);
begin
with TForm2.Create( Self ) do
try
ShowModal
finally
free
end;
Show
end;
Defunct (2005-09-10 00:04:00) [5]> PZ
> что такое "запуск программы"
С т.з. ОС "запуск программы" - это процесс при котором подготовленный к исполнению программный модуль, размещается в ОП, и ему передается управление.
> Floppy
С т.з. самой программы "запуск программы" - это режим инициализации, при котором осуществляется настройка параметров программы, а также захват системных ресурсов, необходимых для работы программы.
PZ (2005-09-09 16:59:00) [6]Floppy © (09.09.05 16:37)
Под запуском программы я понимаю то, что реализовано у меня в примере. Я дилетант. Теоретическое определение дать не могу.
Floppy (2005-09-09 16:37:00) [7]> PZ (09.09.05 16:15) [12]
> Джо © (09.09.05 16:16) [13]
В таком случае, хотелось бы получить "разъяснение", что такое "запуск программы"
:)
PZ (2005-09-09 16:36:00) [8]Джо © (09.09.05 16:16)
Да не надо усложнять. Вот, как я привел пример с добавлением
задержки, все нормально работает.
Джо (2005-09-09 16:16:00) [9]
> [11] Floppy © (09.09.05 16:06)
> Ну никак нельзя, все выкрутасы только после запуска программы:)
Отчего же? Пишем загрузчик, псевдокод:
ShowSplash;
Sleep (2000);
CreateProcess (...);
Halt
;-)
PZ (2005-09-09 16:15:00) [10]Floppy © (09.09.05 16:06)
Да нет же, можно
Floppy (2005-09-09 16:06:00) [11]Заставка перед запуском программы
Ну никак нельзя, все выкрутасы только после запуска программы:)
А путей реализации очень много!
PZ (2005-09-09 15:39:00) [12]Перед строкой
SplashForm.Close;
вставьте:
Sleep(2000); // 2 секунды
Пантелеев Иван (2005-09-09 15:30:00) [13]Мне не нужно чтобы Splash появлялся только на время загрузки программы, т.к. программа маленькая и грузится достаточно быстро. Пояэту мне нужно чтобы Splash появлялся на 2-3 сек, а потом загружалась программа. Я где-то видел такой пример, но это было давно и я уже подзабыл. Так что если кто может - помогите пожалуйста.
Пантелеев Иван (2005-09-09 15:26:00) [14]Мне не нужно чтобы Splash появлялся только на время загрузки программы, т.к. программа маленькая и грузится достаточно быстро. Пояэту мне нужно чтобы Splash появлялся на 2-3 сек, а потом загружалась программа. Я где-то видел такой пример, но это было давно и я уже подзабыл. Так что если кто может - помогите пожалуйста.
PZ (2005-09-09 15:24:00) [15]Ну так заставку-то делают, обычно, для того, чтобы не скучать, пока загружается программа. А сколько уйдет на это времени, столько и уйдет...
Плохиш (2005-09-09 10:44:00) [16]
> PZ (09.09.05 08:10) [5]
> Вот работающий пример. Заставка (Splash) загружается и ждет,
> сколько нужно, пока загрузятся остальные формы
А надо 2-3 секунды :-P
PZ (2005-09-09 08:10:00) [17]Вот работающий пример. Заставка (Splash) загружается и ждет, сколько нужно, пока загрузятся остальные формы, после чего закрывается:
program Dal;
uses
Forms,
DalUn in 'DalUn.pas' {DalFrm},
IntroduceUn in 'IntroduceUn.pas' {IntroduceFrm},
ProcUn in 'ProcUn.pas',
About in 'About.pas' {AboutBox},
Splash in 'SPLASH.PAS' {SplashForm},
Dal_V_I_Un in 'Dal_V_I_Un.pas' {Dal_V_I_Frm};
{$R *.RES}
begin
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Application.CreateForm(TDalFrm, DalFrm);
Application.CreateForm(TIntroduceFrm, IntroduceFrm);
Application.CreateForm(TAboutBox, AboutBox);
Application.CreateForm(TDal_V_I_Frm, Dal_V_I_Frm);
SplashForm.Close;
Application.ShowHint := True;
// Application.HintPause := 100;
// Application.HintHidePause := 999999;
Application.Run;
end.
Джо (2005-09-09 03:02:00) [18]
> [2] Пантелеев Иван (09.09.05 00:35)
> Это не то!
Вот те крест! Оно самое 8-|
Defunct (2005-09-09 02:55:00) [19]Пантелеев Иван (09.09.05 00:35) [2]
> Это не то!
Извини конечно, но раз ты знаешь лучше, где "то", а где не "то", что-то не хочется больше ничего советовать.
> А где-же 2-3 сек?
за тебя писать программу я не нанимался.
Пантелеев Иван (2005-09-09 00:35:00) [20]Это не то!
А где-же 2-3 сек?