Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.095 c
6-1090744138
Asail
2004-07-25 12:28
2004.10.03
Опрос сети для поиска хостов...


3-1094047680
Новенький
2004-09-01 18:08
2004.10.03
засунуть картинку в базу данных Access


8-1089184267
Ale}{(is)
2004-07-07 11:11
2004.10.03
Алгоритм «интеллектуального» обеднения палитры


14-1095128166
КаПиБаРа
2004-09-14 06:16
2004.10.03
Вопрос по железу :)


14-1094824005
chver
2004-09-10 17:46
2004.10.03
Работа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский