Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заставка перед запуском программы


Страницы:   1 2

Пантелеев Иван ©   (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 сек?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо