На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! В разделе обсуждаются следующие темы:
1) Процесс разработки программного обеспечения.
2) Определение требований к программному обеспечению.
3) Составные части и процесс проектирования (см. Шаблоны проектирования).
4) Документирование программного продукта(проекта).
5) Руководство разработкой программного обеспечения.
6) Проектирование пользовательского интерфейса.
7) Контроль версий проекта (см. Управление версиями в Subversion, Стратегии использования svn).
Модераторы: ElcnU
  
> Loading...
    Во многих крупных прогах (в основном в играх) при запуске начинается загрузка.
    Так вот: как мне сделать в моей проге (с OpenGL) загрузку, чтобы после этого она меньше тормозила?
      при запуске показывается 1 форма показывает твою фишку
      потом закрывается и показывается главная форма где
      твое меню и т.д. .... могу пример дать.....
        Давай :)
          да никто не обидется... где-то нашел
          Цитата

          Сведения о программе, авторские права и т.д., лучше оформить в виде отдельной формы и показывать ее при запуске программы (как это сделано в Word). Сделать это не сложно:

          Создаете форму (например SplashForm).
          Объявляете ее свободной (availableForms).
          В Progect Source вставляете следующее (например):
             program Splashin;
             uses
                     Forms,
                     Main in 'MAIN.PAS',
                     Splash in 'SPLASH.PAS'
             {$R *.RES}
             begin
             try
                     SplashForm := TSplashForm.Create(Application);
                     SplashForm.Show;
                     SplashForm.Update;
                     Application.CreateForm(TMainForm, MainForm);
                     SplashForm.Hide;
             finally
                     SplashForm.Free;
             end;
                     Application.Run;
             end.

          И форма SplashForm держится на экране пока выполняется Create в главной форме. Но иногда она появляется и пропадает очень быстро, поэтому нужно сделать задержку:

          1. Добавляете на форму таймер с событием:

             procedure TSplashForm.Timer1Timer(Sender: TObject);
             begin
               Timer1.Enabled := False;
             end;

          2. Событие onCloseQuery для формы:

             procedure TSplashForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
             begin
               CanClose := Not Timer1.Enabled;
             end;

          3. И перед SplashForm.Hide; ставите цикл:

             repeat
               Application.ProcessMessages;
             until SplashForm.CloseQuery;

          4. Все! Осталось установить на таймере период задержки 3-4 секунды.

          5. На последок, у такой формы желательно убрать Caption:

          SetWindowLong (Main.Handle,GWL_STYLE, GetWindowLong(Main.Handle, GWL_STYLE) AND NOT
          WS_CAPTION OR WS_SIZEBOX);

          где не помню ;D
            Пасибо, но я не про это спрашивал !
            Я имел в виду это: Как сделать, чтобы прога заружала все ресурсы
            до появления на экране, а не во время исполнения (например, текстуры) ???
              глупость .. но FormActivate ..... :-/ :-/ :-/ :-/
                Где то был пример, ээ всмысле т.е. типа заставки? аа нет, там просто интервал времени показываешь... :(
                  Цитата LAMA3OID, 17.02.03, 17:37:07
                  Пасибо, но я не про это спрашивал !
                  Я имел в виду это: Как сделать, чтобы прога заружала все ресурсы
                  до появления на экране, а не во время исполнения (например, текстуры) ???

                  Вот здесь вставляешь ручную загрузку всех ресурсов и создание всех форм.
                  ExpandedWrap disabled
                    <br>    begin <br>    try <br>            SplashForm := TSplashForm.Create(Application); <br>            SplashForm.Show; <br>            SplashForm.Update; <br>            Application.CreateForm(TMainForm, MainForm); <br><------------------------><br>            SplashForm.Hide;
                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0.0613 ]   [ 14 queries used ]   [ Generated: 24.10.26, 02:07 GMT ]