Форум: "Основная";
Текущий архив: 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