Цитата:
Ваш пример хорош тем что принудительно происходит репейт и окно обновляется сам и положение прогрессбара меняется - но минус этого метода в том что ты замедляешь загрузку процедурой sleep которую я стараюсь даже в микроконтроллерах избегать. Эта процедуру создали чтобы когда нужно можно было движение планеты остановить .
Пока как временное решение задачи я решил использовать статичную картинку как экран загрузки чтобы клиент понял программа запускается. Но то что оно зависает как то напрягает.
|
Да sleep там просто для того, что бы обновление не происходило моментально, в то не успеешь увидеть изменение прогресс бара. Это же просто пример. На самом деле там вместо sleep должен быть твой код инициализации/загрузки ресурсов. Тут просто демонстрация как создавать splach screen, как его обновлять, и как уничтожать по окончанию. С точки зрения обновления, пусть тебе надо загрузить 5 справочников. У тебя есть 5 процедур загрузки. Ты их перечисляешь в массиве и код работает. Когда появится 6ой справочник, то просто добавляешь процедуру его загрузки в массив, а код остается все тем же. Как я и написал, в примере весть код помещен в файл проекта просто для нагдядности, по идее и массив, и сами процедуры инициализации должны быть в отдельных модулях.
Да, и еще один момент. Все эти действия инициализации происходят до старта процедуры обработки сообщений, так что все равно будет впечатление, что программа зависла. Поэтому там и ручной старт отрисовки при изменеии прогресс бара и поэтому "вешается" курсор ожидания.