Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизЗаставка перед запуском программы Найти похожие ветки
← →
Пантелеев Иван (2005-09-08 23:10) [0]Мне нужно чтобы перез запуском моей программы 2-3 сек. показывалась некая заранее подготовленная форма (заставка к программе). Как это сделать?
Если можно по подробнее.
← →
Defunct © (2005-09-09 00:14) [1]в Dpr:
..
Application.ShowMainForm := False;
Application.Run;
после показа формы-заставики, сделать mainform.show;
← →
Пантелеев Иван (2005-09-09 00:35) [2]Это не то!
А где-же 2-3 сек?
← →
Defunct © (2005-09-09 02:55) [3]Пантелеев Иван (09.09.05 00:35) [2]
> Это не то!
Извини конечно, но раз ты знаешь лучше, где "то", а где не "то", что-то не хочется больше ничего советовать.
> А где-же 2-3 сек?
за тебя писать программу я не нанимался.
← →
Джо © (2005-09-09 03:02) [4]
> [2] Пантелеев Иван (09.09.05 00:35)
> Это не то!
Вот те крест! Оно самое 8-|
← →
PZ (2005-09-09 08:10) [5]Вот работающий пример. Заставка (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 10:44) [6]
> PZ (09.09.05 08:10) [5]
> Вот работающий пример. Заставка (Splash) загружается и ждет,
> сколько нужно, пока загрузятся остальные формы
А надо 2-3 секунды :-P
← →
PZ (2005-09-09 15:24) [7]Ну так заставку-то делают, обычно, для того, чтобы не скучать, пока загружается программа. А сколько уйдет на это времени, столько и уйдет...
← →
Пантелеев Иван (2005-09-09 15:26) [8]Мне не нужно чтобы Splash появлялся только на время загрузки программы, т.к. программа маленькая и грузится достаточно быстро. Пояэту мне нужно чтобы Splash появлялся на 2-3 сек, а потом загружалась программа. Я где-то видел такой пример, но это было давно и я уже подзабыл. Так что если кто может - помогите пожалуйста.
← →
Пантелеев Иван (2005-09-09 15:30) [9]Мне не нужно чтобы Splash появлялся только на время загрузки программы, т.к. программа маленькая и грузится достаточно быстро. Пояэту мне нужно чтобы Splash появлялся на 2-3 сек, а потом загружалась программа. Я где-то видел такой пример, но это было давно и я уже подзабыл. Так что если кто может - помогите пожалуйста.
← →
PZ (2005-09-09 15:39) [10]Перед строкой
SplashForm.Close;
вставьте:
Sleep(2000); // 2 секунды
← →
Floppy © (2005-09-09 16:06) [11]Заставка перед запуском программы
Ну никак нельзя, все выкрутасы только после запуска программы:)
А путей реализации очень много!
← →
PZ (2005-09-09 16:15) [12]Floppy © (09.09.05 16:06)
Да нет же, можно
← →
Джо © (2005-09-09 16:16) [13]
> [11] Floppy © (09.09.05 16:06)
> Ну никак нельзя, все выкрутасы только после запуска программы:)
Отчего же? Пишем загрузчик, псевдокод:
ShowSplash;
Sleep (2000);
CreateProcess (...);
Halt
;-)
← →
PZ (2005-09-09 16:36) [14]Джо © (09.09.05 16:16)
Да не надо усложнять. Вот, как я привел пример с добавлением
задержки, все нормально работает.
← →
Floppy © (2005-09-09 16:37) [15]>PZ (09.09.05 16:15) [12]
>Джо © (09.09.05 16:16) [13]
В таком случае, хотелось бы получить "разъяснение", что такое "запуск программы"
:)
← →
PZ (2005-09-09 16:59) [16]Floppy © (09.09.05 16:37)
Под запуском программы я понимаю то, что реализовано у меня в примере. Я дилетант. Теоретическое определение дать не могу.
← →
Defunct © (2005-09-10 00:04) [17]> PZ
> что такое "запуск программы"
С т.з. ОС "запуск программы" - это процесс при котором подготовленный к исполнению программный модуль, размещается в ОП, и ему передается управление.
> Floppy
С т.з. самой программы "запуск программы" - это режим инициализации, при котором осуществляется настройка параметров программы, а также захват системных ресурсов, необходимых для работы программы.
← →
Defunct © (2005-09-10 00:21) [18]> Пантелеев Иван (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:32) [19]как вариант, можно даже включить главную форму еще не потушив форму-заставку:
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.
← →
ssk © (2005-09-13 13:53) [20]не знаю, нахрена заставка, если программа грузится быстро. только пользователя утомлять. или это типа "прога такая-то, сделано тем-то и там-то" для того, чтоб узнали кто делал? если это так, то обычно делают пункт в меню - называется ""About""
← →
Antonn © (2005-09-13 14:00) [21]ssk © (13.09.05 13:53) [20]
не знаю, нахрена заставка, если программа грузится быстро.
а они таймер замедления ставят, чтобы успели прочитать:))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.068 c