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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2010, 18:45   #11
altcore
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 38
По умолчанию

Прошу помочь, т.к. на тестовые примеры с одной формой у меня получаются, а свою проблему решить не могу.
altcore вне форума Ответить с цитированием
Старый 19.07.2010, 18:49   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Если сейчас подробно не распишешь, что именно у тебя не получается, то я закрою тему.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.07.2010, 18:56   #13
altcore
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 38
По умолчанию

На заставке, которая "висит" до появления основной формы, не получается сделать бегающий прогресс.

Код:
begin
  Application.Initialize;
  fmProgress := TfmProgress.Create(Application);
  fmProgress.Show;
  fmProgress.Update;

  Application.CreateForm(TForm1, Form1);
  ...
  fmProgress.Free;
  Application.Run;
Сама форма с прогреcсом:

Код:
procedure TfmProgress.KillProgress;
begin
  NewThread.DoTerminate;
end;

procedure TNewThread.Execute;
var
  i: integer;
begin
  while not Terminated do
    Synchronize(DoWork);
end;

procedure TNewThread.DoWork;
begin
 // здесь любой код, например
if  fmProgress.pbProg.Position = 100 then
  fmProgress.pbProg.Position := 0;
fmProgress.pbProg.Position := fmProgress.pbProg.Position + 10;
end;

procedure TfmProgress.FormShow(Sender: TObject);
begin
  NewThread := TNewThread.Create(true);
  NewThread.FreeOnTerminate := true;
  NewThread.Priority := tpLower;
  NewThread.Resume;
end;

Последний раз редактировалось altcore; 19.07.2010 в 19:00.
altcore вне форума Ответить с цитированием
Старый 19.07.2010, 19:05   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

То есть он должен бегать независимо ни от чего? Просто так? Если да, то так и напишите в таймере на форме, на которой ProgressBar:
Код:
 begin
  if ProgressBar1.Position = 100 then
  begin
   ProgressBar1.Position:=0;
  end;
 end;
тогда индикатор прогрессбара будет бегать без остановки с заданным Interval в таймере.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.07.2010, 19:09   #15
altcore
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 38
По умолчанию

Бегать просто так, независимо ни от чего. Но проблема не конкретно в реализации прокрутки бара, а в реализации потока. Бегать прогресс начинает только после появления главной формы.
altcore вне форума Ответить с цитированием
Старый 19.07.2010, 19:14   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Я привел пример без потока. Я бы так сделал. Можете запускать таймер после какой-либо процедуры.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.07.2010, 19:32   #17
altcore
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 38
По умолчанию

Т.е. вы хотите сказать, что оно будет выполнятся во время создания форм?
Код:
  Application.Initialize;
  fmProgress := TfmProgress.Create(Application);
  fmProgress.Show;
  fmProgress.Update;

  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  ...
  fmProgress.Free;
  Application.Run;
Мне кажется, что результат будет точно такой, как и при моих попытках реализации через потоки. Т.е. бегать прогресс не будет.
altcore вне форума Ответить с цитированием
Старый 19.07.2010, 19:41   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Не знаю не проверял. Попробуйте поместить код включения таймер в OnCreate формы и посмотрите результат.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.07.2010, 10:42   #19
altcore
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 38
По умолчанию

Оно будет работать, если писать так:
Код:
  Application.Initialize;
  fmProgress := TfmProgress.Create(Application);
  fmProgress.Show;
  fmProgress.Update;

  Application.CreateForm(TForm1, Form1);
  Application.ProcessMessages;
  sleep(500);
  Application.CreateForm(TForm2, Form2);
  Application.ProcessMessages;
  sleep(500);
  Application.CreateForm(TForm3, Form3);
  ...
  fmProgress.Free;
  Application.Run;
Но это костыли. Да и для моего проекта такой вариант не подходит. Так как основная задержка по времени происходит при создании 1 формы, в которой компилируются скрипты.

В принципе мои требования выполняются, если кинуть на форму TMediaPlayer и проигрывать avi. Но хотелось бы разобрать вариант с потоками.

Кто-нибудь в состоянии помочь ?!

Последний раз редактировалось artemavd; 31.07.2010 в 10:15.
altcore вне форума Ответить с цитированием
Старый 30.07.2010, 17:07   #20
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от altcore Посмотреть сообщение
Кто-нибудь в состоянии помочь ?!
Я точно в состоянии. Да и думаю многие тут тоже. А Вы, в состоянии? Где точный вопрос проблемы?
BOBAH13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при запуске приложения -=pasha=- Общие вопросы Delphi 10 07.07.2010 13:46
Ошибка при запуске СиСи+ Общие вопросы C/C++ 4 17.06.2010 08:24
Ошибка при запуске wowan.mix Помощь студентам 1 16.05.2010 13:06
Проверка при запуске Nice42ru Помощь студентам 10 02.01.2010 18:52
"Ошибка приложения" при запуске мидлета hotman Общие вопросы по Java, Java SE, Kotlin 0 04.09.2008 15:16