Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Заставка для программы   Найти похожие ветки 

 
linux   (2004-09-16 07:53) [0]

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


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

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.


 
KSergey ©   (2004-09-16 08:10) [2]

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

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

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


 
Erik1 ©   (2004-09-16 09:41) [3]

Нет лучше сделать подругому.
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, а извещать о загрузке программы! Последнее заставка гарантировано убирается после показа главной формы.


 
NAlexey ©   (2004-09-16 09:48) [4]

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


 
kukuikar ©   (2004-09-16 09:57) [5]

Добавь ещё одну форму: "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. Исходный код должен выглядеть так:

program Project1;

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

{$R *.RES}

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

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

program Project1;

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.


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

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


 
KSergey ©   (2004-09-16 10:15) [7]

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

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


 
NAlexey ©   (2004-09-16 10:17) [8]

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


 
NAlexey ©   (2004-09-16 10:21) [9]

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


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

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


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

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


 
NAlexey ©   (2004-09-16 10:38) [12]

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


 
Homer Simpson ©   (2004-09-16 10:42) [13]

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


 
NAlexey ©   (2004-09-16 10:45) [14]

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


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

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


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

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


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

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


 
NAlexey ©   (2004-09-16 10:58) [17]

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

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

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


 
MetalFan ©   (2004-09-16 11:37) [18]

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


 
Amoeba ©   (2004-09-16 11:39) [19]

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


 
menart ©   (2004-09-16 13:35) [20]

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



Страницы: 1 вся ветка

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.046 c
14-1095016210
Vasya.ru
2004-09-12 23:10
2004.10.03
Не пойму логики кода


14-1095059759
вразлет
2004-09-13 11:15
2004.10.03
выравнивание данных


1-1095247693
DKazurov
2004-09-15 15:28
2004.10.03
Передача параметров в поток


14-1095240759
infom
2004-09-15 13:32
2004.10.03
Какой придумать логотип для программы ?


6-1090575174
Юрий Ж.
2004-07-23 13:32
2004.10.03
Использование TIdUDPClient