Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Поток

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 05.11.2013, 21:27   #1
 Разведчик
Аватар для maulis
 
maulis на правильном пути
Регистрация: 25.08.2012
Сообщений: 16
Популярность: 27
Сказал(а) спасибо: 8
Поблагодарили 2 раз(а) в 2 сообщениях
Отправить сообщение для maulis с помощью Skype™
 
По умолчанию Поток

if form5.ComboBox1.Text = 23123' then
begin

for i := 0 to list.Count-1 do
begin
form5.Caption:='ewrew';
s:=idhttp.Get(list[z]);
RegExp.InputString :=s;
RegExp.Expression := '342432r":"(.*?)"';
if RegExp.Exec then
if strtoint(RegExp.Match[1]) <= strtoint(form5.edit3.text) then
begin
form5.listbox1.items.add(list[z]+' '+regexp.Match[1]);
end;
end;



Вставляю этот код в поток, а он не работает В чем может быть проблема?
  Ответить с цитированием
Старый 06.11.2013, 00:29   #2
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: Поток

[Ссылки могут видеть только зарегистрированные пользователи. ]
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
maulis (06.11.2013), NebesaBag (06.11.2013), Sinyss (06.11.2013), VeTaL_UA (06.11.2013)
Старый 06.11.2013, 12:21   #3
 Разведчик
Аватар для maulis
 
maulis на правильном пути
Регистрация: 25.08.2012
Сообщений: 16
Популярность: 27
Сказал(а) спасибо: 8
Поблагодарили 2 раз(а) в 2 сообщениях
Отправить сообщение для maulis с помощью Skype™
 
По умолчанию Re: Поток

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 06.11.2013, 20:02   #4
Подпольщик Aion
 Рыцарь-капитан
Аватар для Tr0y
 
Tr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака Норриса
Регистрация: 18.10.2009
Сообщений: 480
Популярность: 7804
Золото Zhyk.Ru: 115
Сказал(а) спасибо: 85
Поблагодарили 498 раз(а) в 172 сообщениях
 
По умолчанию Re: Поток

Код:
unit MyThread;
...
var s: string;
...
procedure MyThread1.Execute;
begin
try
    s:=idhttp.Get(list[z]);
    Synchronize(MySynchCaption);
    if RegExp.Exec then
      if strtoint(RegExp.Match[1]) <= strtoint(form5.edit3.text) then begin
 	Synchronize(MySynchListBox);
      end;
except
   ShowMessame('Error: Thread.Execute');
end;			
end;

procedure MyThread1.MySynchCaption;
begin
    if Length(s)>0 then begin	// длина строки больше 0 ?
        RegExp.InputString := s;
        RegExp.Expression := '342432r":"(.*?)"';
    end;
end;

procedure MyThread1.MySynchListBox;
begin
try
    form5.listbox1.items.add(list[z]+' '+regexp.Match[1]);
except
    ShowMessame('Error: Thread.MySynchListBox');
end;	
end;
...
Отдельный поток делается для того, чтобы основной поток, отвечающий за перерисовку интерфейса в том числе, не занимать рутинными операциями, что может повлечь зависание проги во время рутины.
Тело вторичного потока реализуется в юните вторичного потока в процедуре Execute, в ней происходит рутиная работа.
Чтобы сделать изменения в интерфейсе, делают синхронизацию, реализуемую в отдельных процедурах, в нашем случае это MySynchCaption - тут обновляется значение компонента RegExp, а также процедура MySynchListBox - тут обновляется значение какого-то листбокса.

Представь, что в потоке ты что-то вычисляешь, а результаты его работы отдельными процедурами показываешь, т.е тут как бы 2 части:
1-вычисляет в памяти,
2 - выводит/обновляет значения для пользователя.

Мануал:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

Также у потоков есть свои приоритеты + нюансы в свойствах жизни потока. той статьи выше тебе будет достаточно. Если что - гугл.

надеюсь, не запутал
________________
ʕ•ᴥ•ʔ
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Пользователь сказал cпасибо:
maulis (06.11.2013)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Услуги] Сдам в аренду поток коннектов cs 1.6 dempel Товары/услуги в Сети 0 08.10.2012 12:06
Как в сделать ожидание пока отработает поток? Jok3r666 Общение разработчиков 2 22.01.2012 13:20
[Помогите!] Загрузка содержимого memo в поток. *Хalyava* Вопросы и ответы, обсуждения 4 04.12.2011 20:23
[Руководство] "Эмулятор нажатий клавиш" или "Один поток и пара Процедур" zaparca Pascal/Delphi 3 11.03.2011 00:28

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 20:40.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net