![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день. У меня есть проблема. Никогда раньше с потоками не работал, почитал кое-что, понял мало что
![]() У меня есть событие. При нажатии на кнопку загружаю HTML код более 18 страниц и выполняю над ними некоторые операции. Скорость загрузки страниц меня вполне устраивает, проблема в другом. При загрузке как сделать так, чтобы интерфейс программы не подвисал и отвечал на действия пользователя? Заранее благодарен |
#2
|
|||
|
|||
![]() Между получением каждой страницы (или между получением пакетов), вставь код:
Код:
Application.ProcessMessages; |
#3
|
|||
|
|||
![]() не всегда поможет)
при загрузки через TWebBrowser даже одной страницы зависает интерфейс... Код:
for i:=0 to 1995+1 do begin webbrowser1.navigate('localhost'); Application.ProcessMessages; if application.terminated then break; //если юзер закрыл прогу то остановляем цикл end; ![]() |
#4
|
||||
|
||||
![]() А если так:
Код:
type TWebAgent = class(TThread) private Browser: TWebBrowser; public procedure Execute; override; end; TForm3 = class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; Label1: TLabel; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private Web: TWebAgent; end; var Form3: TForm3; implementation {$R *.dfm} procedure TWebAgent.Execute; begin Browser.Navigate('http:\\localhost'); end; procedure TForm3.Button1Click(Sender: TObject); begin Timer1.Enabled := True; Web.Resume; end; procedure TForm3.FormCreate(Sender: TObject); begin Web := TWebAgent.Create(True); Web.Browser := WebBrowser1; end; procedure TForm3.Timer1Timer(Sender: TObject); begin Label1.Caption := TimeToStr(Now); Application.ProcessMessages; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
![]() Вот так то норм...
еще таймер ![]() |
#6
|
|||
|
|||
![]() application.processmessages если добавить в таймер то это круто будет)))
круто придумали! и в таймере поставим интервал 1 и будет происходит application.processmessages каждые 1 миллисекунды и вообще не будет глючит форма ![]() |
#7
|
||||
|
||||
![]() Ну таймер там только для проверки отсутствия паузы во время загрузки страницы.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |