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

Вниз

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

 
V   (2003-12-13 13:48) [0]

подскажите пожайлуста как визуализировать окно с информацией (название, разработчик итп) во время загрузки программы?


 
Юрий Зотов   (2003-12-13 13:58) [1]

http://www.delphikingdom.com/helloworld/samples_win.htm#link11


 
JibSkeart   (2003-12-13 14:02) [2]

http://delphinsworld.narod.ru/FAQ/mdi.html#b9


 
JibSkeart   (2003-12-13 14:02) [3]

уппс :)


 
Александр из Минска   (2003-12-13 17:03) [4]

Тут в FAQ написано!


 
gestern   (2003-12-13 18:01) [5]

У меня это так происходит. Форма 6 - заставка. А это вставь в проэкт а не в юнит.
begin
try
form6 := Tform6.Create(Application);
form6.Show;
form6.Update;
Application.CreateForm(TForm1, Form1);
form6.Hide;
finally
form6.Free;
end;
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.Run;
end


 
Alexious   (2003-12-13 18:18) [6]

procedure TForm1.Timer1Timer(Sender: TObject);
begin
close;
end;

procedure TForm1.FormClick(Sender: TObject);
begin
close;
end;

procedure TForm1.FormCreate(Sender: TObject);
var R:Tregistry;
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion", False);
UserName.Caption:=r.readstring("RegisteredOwner");
Organization.Caption:=r.readstring("RegisteredOrganization");
r.Free;
end;


 
KSergey   (2003-12-13 21:15) [7]

Я бы настоятельно рекомендовал создавать форму-заставку в OnCreate главной формы, ну а удалять - например, на OnShow в ней-же.
Причина - корректная обработка исключений в данном случае, в отличии от кода, втиснутого в dpr.


 
Юрий Зотов   (2003-12-13 21:39) [8]

> KSergey © (13.12.03 21:15) [7]

Непонятно. Не могли бы пояснить?


 
Юрий Федоров   (2003-12-13 22:42) [9]

>>KSergey © (13.12.03 21:15) [7]

Создавать надо в файле dpr до Application.Initialize
параметром(owner)передавать соответственно nil
после создания всех автосоздаваемых форм проекта разрушать заставку, причем желательно с помошью release
который сводится к postmessage.
То есть когда система "успокоится", заставка и будет разрушена


 
KSergey   (2003-12-14 06:29) [10]

Поясняю. ;)

Когда создается форма внутри метода Create главной, то, как известно, это все происходит внутри некоторого метода объекта Application. Т.е. все исключения, возникающие при отображении заставки, при необработанности корректно обработаются объектом Application и не улетят системе.

Вообще скажу, что все это лишь по опыту изготовления одной заставки. Там было чтение картинки, еще там какие-то навороты (небольшая скорость запуска самой программы это оправдывала :). Ну и словил как-то исключение и, скажу честно, сообщение "Run time error..." вместо привычного "Exception...", да еще вместе со свалившейся глухо и замертво программой напугало меня на всю жисть, а потому я стал сторонником того, что не нужно лезть в dpr с кодом, потенциально приводящему к исключениям.
Допускаю, что это либо частный случай, либо можно сделать и иначе (обработать исключения в dpr?).
Однако, как мне показалось, нет особой разницы по времени от начала выполнения программы до создания главной формы, зато я уже абсолютно спокоен за корректную обработку исключений.

Такое вот мое скромне мнение на сей счет...


 
Юрий Зотов   (2003-12-14 07:15) [11]

> KSergey © (14.12.03 06:29) [10]

В dpr добавьте SysUtils в uses (желательно, поближе к началу) - и все.

Что касается создания заставки в OnCreate, то это не всегда хорошо. Дело в том, что OnCreate возбуждается уже после полного создания и инициализации формы. Нетрудно представить ситуацию, где для этого требуется длительное время (скажем, в одном из проектов, где я участвовал, главная форма вообще грузилась из удаленной БД - значит, надо выдать диалог логина, открыть базу, выполнить запрос, прокачать форму по каналу связи (которым может быть и медленный модем) - и т.д., и т.п.). И в течение всего этого длительного времени заставка не появится - а тогда какой же в ней смысл?

В то же время, заставка в DPR - вариант универсальный.


 
KSergey   (2003-12-14 07:28) [12]

> Юрий Зотов © (14.12.03 07:15) [11]

Ну, согласитесь, что уж прокачка главной формы по модему - это уж очень частный случай ;) Хотя, возможно, я и заблуждаюсь ;)
По поводу SysUtils - спасибо, гляну. Может и правда полегчает...

PS
С утра гляжу - ЮЗ форум шерстит. Прикинул локальное время у него - в районе 6 утра. Ну и извращенец... ;)


 
Юрий Зотов   (2003-12-14 07:40) [13]

> KSergey © (14.12.03 07:28) [12]
Я просто еще не ложился. Иногда люблю работать по ночам.
P.S.
Сорри за оффтопик.



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

Форум: "Основная";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-86378
yong
2003-12-15 14:48
2003.12.26
Почтовая программа


3-86253
SERG
2003-12-03 19:02
2003.12.26
DBGrid.SelectedRows


1-86389
FireMan_Alexey
2003-12-15 11:47
2003.12.26
Как можно настроить!


1-86360
Stant
2003-12-11 23:42
2003.12.26
Как показать многострочный HINT


14-86548
Думкин
2003-12-02 06:04
2003.12.26
С днем рождения! 2 декабря.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский