Давненько не писал ничего в блог, постоянная занятость, мешает сосредоточиться на написании статей. И вот сегодня хочу поделиться с теми кто не знает, как при запуске своей программы сделать заставочку, как во многих крутых программулинах, от фирм типа Adobe или например Corel.
1) Для начала запустим новый проект и создадим дополнительную форму (Form2). Form2 и будет у нас как раз той самой заставочкой, потому в ее свойстве Position - выбираем значение ScreenCenter, а в свойстве BorderStyle выбираем None, чтобы убрать рамку.
2) Помещаем на нашу Form2, 1 - Timer, 1 - ProgressBar и 1 - Image; Компонент Image, растягиваем по размеру формы, в него будем подгружать картинку нашей заставки.
Как видно размер заставки которую буду делать я, составляет 497 на 226 пикселей.
3) Далее заходим, в Project > Options > Form где выделяем нашу Form2, и переносим ее
как на скрине ниже:
из раздела Auto-create forms: в Avialable forms: и жмем Ok.
4) В менеджере проектов, находим наш проект, - Project1.exe, кликаем на нем правой клавишей и выбираем свойство View Source, после чего открывается файл самого проекта:
Все что нужно теперь сделать, это заменить содержимое между begin и end, файла проекта на код написанный ниже:
Application.Initialize;
Form2 := TForm2.Create(Application);
Form2.Show;
Form2.Update;
While Form2.Timer1.Enabled do
Application.ProcessMessages;
Application.CreateForm(TForm1, Form1);
Form2.Hide;
Form2.Free;
Application.Run;
То есть, при инициализации, запускается Form2, и только после того как останавливается наш таймер, она закрывается и открывается Form1 с основной программой.
5) Теперь приступим к настройке компонентов и созданию изображения. Свойство Interval таймера ставим в 1000 и на его событие Timer1Timer пишем:
procedure TForm2.Timer1Timer(Sender: TObject);
var
a:integer;
begin
ProgressBar1.Position:=ProgressBar1.Position+5;
If (ProgressBar1.Position=ProgressBar1.Max) Then
Timer1.Enabled:=False;
end;
Код надеюсь пояснять не надо. Тут реализована стандартная привязка ProgressBar к таймеру. Таймер остановился, заставка закрылась, программа запустилась.
Лучше приступим к творческой части. Для этого запускаем фотошоп и создаем файл по размерам нашей заставки, (как я упоминал ранее у меня он составляет 497 на 226 пикселей). В заданных размерах, создаем себе картиночку и сохраняем ее в папке с проектом в формате .png
Теперь, выделяем Image, и свойством Picture, подтягиваем нашу картинку. Запускаем проект и любуемся.
У меня получилось так (на скорую руку))
Как только ProgressBar достигает отметки 100%, таймер останавливается, заставка пропадает и появляется главная форма. Скорость задержки регулируйте свойством Position компонента ProgressBar и Interval компонента Timer.
1) Для начала запустим новый проект и создадим дополнительную форму (Form2). Form2 и будет у нас как раз той самой заставочкой, потому в ее свойстве Position - выбираем значение ScreenCenter, а в свойстве BorderStyle выбираем None, чтобы убрать рамку.
2) Помещаем на нашу Form2, 1 - Timer, 1 - ProgressBar и 1 - Image; Компонент Image, растягиваем по размеру формы, в него будем подгружать картинку нашей заставки.
3) Далее заходим, в Project > Options > Form где выделяем нашу Form2, и переносим ее
как на скрине ниже:
из раздела Auto-create forms: в Avialable forms: и жмем Ok.
4) В менеджере проектов, находим наш проект, - Project1.exe, кликаем на нем правой клавишей и выбираем свойство View Source, после чего открывается файл самого проекта:
Все что нужно теперь сделать, это заменить содержимое между begin и end, файла проекта на код написанный ниже:
Application.Initialize;
Form2 := TForm2.Create(Application);
Form2.Show;
Form2.Update;
While Form2.Timer1.Enabled do
Application.ProcessMessages;
Application.CreateForm(TForm1, Form1);
Form2.Hide;
Form2.Free;
Application.Run;
То есть, при инициализации, запускается Form2, и только после того как останавливается наш таймер, она закрывается и открывается Form1 с основной программой.
5) Теперь приступим к настройке компонентов и созданию изображения. Свойство Interval таймера ставим в 1000 и на его событие Timer1Timer пишем:
procedure TForm2.Timer1Timer(Sender: TObject);
var
a:integer;
begin
ProgressBar1.Position:=ProgressBar1.Position+5;
If (ProgressBar1.Position=ProgressBar1.Max) Then
Timer1.Enabled:=False;
end;
Код надеюсь пояснять не надо. Тут реализована стандартная привязка ProgressBar к таймеру. Таймер остановился, заставка закрылась, программа запустилась.
Лучше приступим к творческой части. Для этого запускаем фотошоп и создаем файл по размерам нашей заставки, (как я упоминал ранее у меня он составляет 497 на 226 пикселей). В заданных размерах, создаем себе картиночку и сохраняем ее в папке с проектом в формате .png
Теперь, выделяем Image, и свойством Picture, подтягиваем нашу картинку. Запускаем проект и любуемся.
У меня получилось так (на скорую руку))
Как только ProgressBar достигает отметки 100%, таймер останавливается, заставка пропадает и появляется главная форма. Скорость задержки регулируйте свойством Position компонента ProgressBar и Interval компонента Timer.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.