Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Сокровищница
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  07:39[Войти] | [Зарегистрироваться]

Сплэш — показываем красиво

Юрий Зотов
дата публикации 16-08-2009 04:29

Сплэш — показываем красиво

Большинство программ (по крайне мере, из тех, что мне довелось видеть), имеющих сплэш-заставку, показывают ее в основном потоке. В том же потоке идет инициализация программы, часто довольно длительная — и в итоге сплэш либо не перерисовывается совсем, либо перерисовывается с задержкой. Почему-то меня всегда это раздражало — ну какой смысл в красивой картинке, если она так плохо рисуется? Либо не делать совсем, а уж если делать — то как следует.

Борьба с ленью длилась много лет и, как ни странно, закончилась победой. Вниманию сообщества предлагается супер-пупер-мега-сплэш, который легко и просто можно использовать в своих проектах. Особенности сплэша:

  • живет в DLL, которая динамически загружается только на время показа (ну нет резона увеличивать объем проекта за счет разовой заставки, в которой, к тому же, сама картинка может иметь немалый объем);
  • работает в отдельном потоке;
  • написан без VCL (ради объема и скорости).

Прилагаемый архив содержит 3 каталога:

  • Source (исходники DLL и демо-проекта) ;
  • Bin (откомпилированные в Delphi 7 DCU — реально не нужны, но так принято);
  • Release (DLL и демо-проект — можно сразу запустить и посмотреть).

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

  1. Готовим картинку в формате BMP и обзываем ее файл SplashBmp.bmp (либо правим файл SplashBmp.rc).
  2. Кладем эту картинку в исходники DLL вместо имеющейся.
  3. Компилируем файл ресурсов.
  4. Компилируем DLL.
  5. К своему проекту подключаем модуль SplashIntf.
  6. Слегка подправляем код DPR:
  7. try
      ShowSplash;
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
    finally
      HideSplash
    end;
    Application.Run
    

Вот и все. Комментарии и замечания приветствуются. Также приветствуется, если, применяя этот сплэш в своей программе, Вы упомянете его авторство.

К статье прилагаются примеры




Смотрите также материалы по темам:
[Потоки (нити) Threads] [Splash-формы]

 Обсуждение материала [ 07-01-2013 22:54 ] 48 сообщений
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования