Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2012, 22:09   #1
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Лампочка Заставка для программы

Необходимо сделать заставку при запуске программы, потому как загружается около 3-х секунд... Что бы, хоть как то сделать вид что ничего не "висит" ))

Как сделать, что бы при закрытии заставки - сразу показывалась главная форма? То есть, делать загрузку программу - пока показывается заставка...
tim21701 вне форума Ответить с цитированием
Старый 10.02.2012, 22:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нетленочка:
http://delphiworld.narod.ru/base/create_splash.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2012, 22:34   #3
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как создать заставку - я и сам знаю )) Так что, ссылка то не в тему...
tim21701 вне форума Ответить с цитированием
Старый 10.02.2012, 23:47   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Кусок моего DPR'а...
Код:
  if AllowedSplashScreen then
  begin
    try
      SF := TSplashForm.Create(Application);
      SF.SkinManager.IsDefault := True;
      SF.Show;
      SF.Update;
      for i := SF.ProgressLoad.MinValue to SF.ProgressLoad.MaxValue do
      begin
        Application.ProcessMessages;
        SF.ProgressLoad.Progress := i + 1;
        if i = 20 then
        begin
          Application.CreateForm(TMainForm, MainForm);
          MainForm.SkinManager.IsDefault := false;
        end;

        if i = 40 then
        begin
          Application.CreateForm(TSettingsForm, SettingsForm);
        end;

        if i = 60 then
        begin
          Application.CreateForm(TSelfUpdatingForm, SelfUpdatingForm);
        end;

        if i = 80 then
        begin
          Application.CreateForm(TAboutForm, AboutForm);
        end;

        if i = 100 then
        begin
          Application.CreateForm(TMainDM, MainDM);
        end;

        Delay(20);
      end;
      SF.Hide;
    finally
      FreeAndNil(SF);
    end;
  end
  else
  begin
    Application.CreateForm(TMainForm, MainForm);
    Application.CreateForm(TSettingsForm, SettingsForm);
    Application.CreateForm(TSelfUpdatingForm, SelfUpdatingForm);
    Application.CreateForm(TMainDM, MainDM);
  end;

  Application.Run;

end.
Человек_Борща вне форума Ответить с цитированием
Старый 10.02.2012, 23:54   #5
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Интересно реализовано... Спасибо, сейчас попробую так же и отпишусь... )))
tim21701 вне форума Ответить с цитированием
Старый 11.02.2012, 21:14   #6
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Человек_Борща могли бы вы чуть подробнее объяснить, что то у меня ничего не получается... (

Хочу, что бы, во время показа заставки - продолжалась загрузка всех форм программы и модулей, и отображался ход выполнения... Но что то не выходит... (
tim21701 вне форума Ответить с цитированием
Старый 11.02.2012, 22:23   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

У меня все это показно=)
Человек_Борща вне форума Ответить с цитированием
Старый 11.02.2012, 22:45   #8
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Так вот с Вашим то примером и не работает... Куда его вставлять и что за Allowed...
Обьясните плиз ))))
tim21701 вне форума Ответить с цитированием
Старый 11.02.2012, 23:01   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Я дал вам кусок собственного кода. Механизм того что вам надо, там реализован и работает на ура. Исходник давать не собираюсь.
Человек_Борща вне форума Ответить с цитированием
Старый 12.02.2012, 01:24   #10
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Восклицание

Нет. Ни черта не разобрать....
Человек_Борща Вас никто своими исходниками делится не просит, но и выкладывать их со своими объявленными функциями - как то "не красиво" что ли... Вы бы хоть дали описание к коду.

Что это за i и что за SF? Что за AllowedSplashScreen и что за свойство ProgressLoad?
Или у Вас какие то дополнительные компоненты используются?

Как это сделать, на TForm1 и TForm2 с использованием TProgressBar?

Пример:
Показываем Form2 (заставку) и в это время грузим Form1 - отображая ход загрузки в ProgressBar.

Кажется, что всё вроде элементарно, но вот, реализовать это почему то не получается... ((
Помогите пожалуйста, кто знает!

Последний раз редактировалось tim21701; 12.02.2012 в 03:07.
tim21701 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание программы для управления некоторыми функциями другой программы Юрий1991 Общие вопросы Delphi 6 03.02.2012 15:32
Какие программы нужно установить чтобы писать программы для телефонов nokia Кристинка89 Общие вопросы по Java, Java SE, Kotlin 2 17.02.2011 15:15
Заставка... maxlake1 Помощь студентам 0 20.04.2010 20:51
Заставка в Ubuntu rand8154 Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 2 05.12.2009 19:22
Заставка Ark Общие вопросы Delphi 23 23.08.2009 01:10