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

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

Заставка для программы [D7, WinXP]


linux ©   (2004-09-16 07:53:00) 

Хочу сделать заставку для своей программы. В FAQ написано: Объявляете ее свободной (availableForms). А где её объявлять?


menart   (2004-09-16 13:35:00) [1]

Я заставку использую, когда инициализирется база данных выполняются всякие процедуры и функции, по времени бывает до 30 сек. и пользователь жмет на иконку, а так он видит что что-то происходит и ждет ...


Amoeba   (2004-09-16 11:39:00) [2]

Готовый пример есть в демках, идущих с Delphi - см. MastApp.


MetalFan   (2004-09-16 11:37:00) [3]

а еще лучше сделать сплэш опциональным...


NAlexey   (2004-09-16 10:58:00) [4]

>КаПиБаРа ©   (16.09.04 10:47) [15]
Вот как раз автору и решать, быстро или не быстро загружается программа. Дать пользователю лишние 2 секунды рассмотреть заставку и своровать из его драгоценной жизни эти 2 секунды или убрать заставку вовсе. Да и еще, откуда ты узнаешь ворую я твое время или не ворую? Ну напишу я так:

StatusBar.SimpleText := 'Initializing data...'
Sleep(5000);

И ты поверишь.


kukuikar   (2004-09-16 10:52:00) [5]

ребята, вы тут развли демагогию.
надо-ненадо...
какая разница, человек спросил как - помогите или не тратьте саое драгоценное время.
оно вам понадобится для того чтобы рассмотреть заставу автора вопроса:)


КаПиБаРа   (2004-09-16 10:47:00) [6]

NAlexey ©   (16.09.04 10:38) [12]
Если же заставка мелькнет не дав себя рассмотреть, то это действительно может разозлить.


Я запускаю программу 20-30 раз день. Если она будет воровать МОЕ время на заставку - это меня очень разозлит. Если программа загружается быстро, то заставка ей не нужна.

=================================
"Нет времени на медленные танцы!"
Владимир Вишневский
=================================


NAlexey   (2004-09-16 10:45:00) [7]

>Homer Simpson ©   (16.09.04 10:42) [13]
Возможно...


Homer Simpson   (2004-09-16 10:42:00) [8]

>NAlexey ©   (16.09.04 10:38) [12]
Тогда это не заставка (ИМХО). Я так понимаю, что "заставка", это то, что появляется при каждом запуске программы и показывает прогресс загрузки/инициализации. Если же нет, то ее лучше поместить в меню, например в "Help/About"


NAlexey   (2004-09-16 10:38:00) [9]

>Homer Simpson ©   (16.09.04 10:30) [11]
Наверное не соглашусь, nag-screen и загрузочный сплеш разные вещи. Первый служит для намеренного раздражения пользователя, например в shareware программах, второй для информирования о загружаемой программе. Пользователю необходимо дать время рассмотреть первоначальную информацию которую хотел бы дать разработчик. Если же заставка мелькнет не дав себя рассмотреть, то это действительно может разозлить.


Homer Simpson   (2004-09-16 10:30:00) [10]

2 NAlexey ©   (16.09.04 10:21) [9]
"Сплэш" - то же, что и nag-screen, является источником сильного раздражения пользователя.


Homer Simpson   (2004-09-16 10:27:00) [11]

2 NAlexey ©   (16.09.04 10:17) [8]
Я читал об этом в книге С.Жаркова "Shareware". Это не первоисточник, но сейчас книги нет под рукой, чтобы точно сообщить, откуда там это взято.


NAlexey   (2004-09-16 10:21:00) [12]

>Homer Simpson ©   (16.09.04 10:00) [6]
Да и еще, как связаны заставка программы и юзабилити?


NAlexey   (2004-09-16 10:17:00) [13]

>Homer Simpson ©   (16.09.04 10:00) [6]
Где я могу прочитать что заставка должна висеть столько сколько загружается программа?


KSergey   (2004-09-16 10:15:00) [14]

> [6] Homer Simpson ©   (16.09.04 10:00)
> Заставка не должна висеть ни секунды больше, чем это необходимо
> (загрузка/инициализация). Почитайте про юзабилити

Ну не получается у них писать проги, которые грузятся дольше, чем ворд
Ну что тут поделаешь? ;) А так хочется иметь "модный" вид с заставкой ;)


Homer Simpson   (2004-09-16 10:00:00) [15]

Заставка не должна висеть ни секунды больше, чем это необходимо (загрузка/инициализация). Почитайте про юзабилити


kukuikar   (2004-09-16 09:57:00) [16]

Добавь ещё одну форму: 'New Form'('Новая форма') из меню 'File' ('Файл'). Это окно и будет заставкой.

Из меню 'Project' ('Проект') выбрать команду 'Options'('Опции'). Зайти на закладку 'Forms'('Формы') и Form2 из списка автоматически создаваемых форм (Auto-Create forms) перенести в список доступных форм (Available forms)

На форму-заставку с закладки Systemвынести компонент Timer. В его свойстве Intervalустановить значение 5000, а в событии OnTimerнаписать:

Timer1.Enabled := false;

Это сделано для того, чтобы заставка была видна в период указанного времени – 5000 миллисекунд, т.е. 5 секунд.

Перейти в файл проекта, нажав Ctrl+F12 и выбрав Project1. Исходный код должен выглядеть так:

programProject1;

uses
 Forms,
 Unit1 in'Unit1.pas' {Form1},
 Unit2 in'Unit2.pas' {Form2};

{$R *.RES}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

Теперь внеси изменения в свой проект (подчеркнутые строки) и код должен стать таким:

programProject1;

uses
 Forms,
 Unit1 in'Unit1.pas' {Form1},
 Unit2 in'Unit2.pas' {Form2};

{$R *.RES}

begin
 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;
end.


NAlexey   (2004-09-16 09:48:00) [17]

>Erik1 ©   (16.09.04 09:41) [3]
Правда если программа загружается быстро, увидишь просто мелькаение на экране. А как же насладится видом сплеша?:)


Erik1   (2004-09-16 09:41:00) [18]

Нет лучше сделать подругому.
Application.Initialize;
SplashForm := TSplashForm.Create(nil);
SplashForm.Refresh;
Application.Title := 'MyApps';

Application.CreateForm(...);
Application.CreateForm(...);
Application.CreateForm(TMainForm, MainForm);
MainForm.Show;
FreeAndNil(SplashForm);
Application.Run;
В этом коде тратится меньше ресурсов и заставка предназначена не тормозить работу программы 5 min, а извещать о загрузке программы! Последнее заставка гарантировано убирается после показа главной формы.


KSergey   (2004-09-16 08:10:00) [19]

> А где её объявлять

Shift+Ctrl+F11
Forms
Перенести из Auto-create в Available

Далее см.
> [1] КаПиБаРа ©   (16.09.04 08:02)


КаПиБаРа   (2004-09-16 08:02:00) [20]

program Project1;

uses
 Forms, Windows,
 Unit1 in 'Unit1.pas' {Form1},
 Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
 with TForm2.Create(nil) do
 try
   Caption := 'Заставка';
   Show;
   Sleep(5000);
 finally
   Free;
 end;
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
//  Application.CreateForm(TForm2, Form2);
 Application.Run;
end.


Наверх

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