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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2010, 12:12   #1
MyIE
Форумчанин
 
Аватар для MyIE
 
Регистрация: 02.01.2010
Сообщений: 127
По умолчанию ПрогрессБар при загрузке программы

Такая фигня: есть функция, которая выполняется через n секунд после старта программы:
Код:
procedure TForm1.TimerLoadStreamListTimer(Sender: TObject);
begin
Form2.Show;
TimerLoadStreamList.Enabled:= false;
LoadStreamList;
end;
Я показываю Form2 не модально, но когда начинает выполняться функция LoadStreamList, то Form2 виснет. На Форме2 есть компонент memo, так вот даже в нем ничего нельзя писать.
Функция LoadStreamList выполняется довольно долго, говоря кратко, там идет работа с сервером и с xml файлами(удаленно).

Я бы хотел, чтобы пока выполняется эта функция, работало бы Form2 и там я бы сделал какой-нить ПрогрессБар.

ВОПРОС: почему висит Form2, при работе функции LoadStreamList?
Ведь окно показывается не модально и должно выполняться попутно с Form1.
Код:
procedure TForm1.LoadStreamList;
var
  i : LongInt;
  NewNode: PVirtualNode;
  NewSL: PSLNode;
begin
VST.Clear;
for i:=1 to 9 do
begin
XMLD.LoadFromFile('http://mysite.com/rss/xml');
XMLD.Active := true;
NewNode := VST.AddChild(nil);
NewSL := VST.GetNodeData(NewNode);
if Assigned(NewSL) then
with NewSL^ do
begin
URL:= XMLD.DocumentElement.ChildValues['peremennaja1'];
end;
XMLD.Active := false;
end;
end;
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор
0_o

Последний раз редактировалось mihali4; 26.02.2010 в 14:57.
MyIE вне форума Ответить с цитированием
Старый 26.02.2010, 12:22   #2
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Попробуй LoadStreamList засунуть в поток
Arkuz вне форума Ответить с цитированием
Старый 26.02.2010, 14:04   #3
MyIE
Форумчанин
 
Аватар для MyIE
 
Регистрация: 02.01.2010
Сообщений: 127
По умолчанию

Пробовал - так же Form2 висит.
-----
P.S. а я им и оформлял(#).
0_o
MyIE вне форума Ответить с цитированием
Старый 26.02.2010, 15:34   #4
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

попробуй добавить
Код:
Application.ProcessMessages;
maLoy*508 вне форума Ответить с цитированием
Старый 26.02.2010, 18:13   #5
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Цитата:
Сообщение от MyIE Посмотреть сообщение
Пробовал - так же Form2 висит.
Ну попробуй приоритет пониже...
Arkuz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При выполнении кода форма зависает. Как вывести прогрессбар? plato Общие вопросы Delphi 4 06.01.2010 15:37
Непонятная ошибка при загрузке программы в ОС Vista М_Виктор БД в Delphi 1 25.09.2009 10:39
БАГ при загрузке!!! Tatyana_777 Операционные системы общие вопросы 8 11.03.2009 09:51
ОШИБКА ПРИ ЗАГРУЗКЕ Костян Пират Операционные системы общие вопросы 5 21.02.2009 12:14
действия при загрузке программы WhoThenNow Общие вопросы Delphi 2 19.09.2007 21:42