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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.03.2014, 12:38   #1
WISKAS-PRO
 
Регистрация: 06.04.2013
Сообщений: 8
По умолчанию Проблема с классами потоков

Привет %username%.
Проблема такова: создаю в программе 2 потока. Один отвечает за авторизацию, другой за рассылку.Но когда запускаю поток, отвечающий за рассылку, он выполняет код первого потока, то есть снова проходит авторизацию. Почему это происходит понятия не имею. Надеюсь вы мне объясните в чем дело.
Код:
TMyThread = class(TThread)
private
    { Private declarations }
    a: TStringList;
b: string;
  protected
    procedure Execute; override;
    procedure memoadd;
    procedure fail;
    public
    email, pass, response, msg,friends: string;
    token, userid:string;
end;

TMyThread2 = class(TThread)
    private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

var
  Form1: TForm1;
  MyThread,MyThread2: TMyThread;


procedure TForm1.sButton7Click(Sender: TObject);
begin
MyThread:=TMyThread.Create(true);
MyThread.FreeOnTerminate:=true;
MyThread.Resume;
end;

procedure TForm1.sButton8Click(Sender: TObject);
begin
MyThread2:=TMyThread.Create(true);
MyThread2.FreeOnTerminate:=true;
MyThread2.Resume;
end;

procedure TMyThread.Execute;
begin
try
email:=form1.sedit1.text;
pass:=form1.sMaskEdit1.Text;
http:=TidHTTP.Create();
cookie:=Tidcookiemanager.Create();
http.CookieManager:=cookie;
http.HandleRedirects:=true;
http.AllowCookies:=true;
http.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36';
SSL:=TIdSSLIOHandlerSocketOpenSSL.Create;
http.IOHandler:=ssl;
response:=http.Get('https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username='+email+'&password='+UrlEncode(pass)+'&captcha_key=&captcha_sid=');
if Pos('token', response)<>0 then
begin
token:=copy(response, pos('":"', response)+3,85);
userid:=copy(response, pos('id":',response)+4,8);
friends:=http.Get('https://api.vk.com/method/friends.get?uid='+userid+'&access_token='+token);
Synchronize(memoadd)
end
else
Synchronize(fail)
finally
  email:='';
  pass:='';
  http.Free;
  ssl.Free;
  cookie.Free;
end;
end;

procedure TMyThread2.Execute;
var g:integer;
begin
realtoken:=form1.sedit3.text;
for g := 0 to form1.sMemo2.Lines.Count-1 do
  begin
    http2.Get('https://api.vkontakte.ru/method/messages.send?uid='+form1.sMemo2.Lines[g]+'&message='+form1.smemo1.text+'&access_token='+realtoken);
  end;
end;

Последний раз редактировалось WISKAS-PRO; 01.03.2014 в 12:40.
WISKAS-PRO вне форума
Старый 01.03.2014, 12:44   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Дык вы создаете и запускаете только потоки типа TMyThread. TMyThread2 вообще нигде не используется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 01.03.2014, 12:47   #3
WISKAS-PRO
 
Регистрация: 06.04.2013
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Дык вы создаете и запускаете только потоки типа TMyThread. TMyThread2 вообще нигде не используется
А как заставить его использоваться?
WISKAS-PRO вне форума
Старый 01.03.2014, 12:48   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А как вы создавали поток типа TMyThread? Аналогично и другого типа
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 01.03.2014, 12:49   #5
WISKAS-PRO
 
Регистрация: 06.04.2013
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А как вы создавали поток типа TMyThread? Аналогично и другого типа
Вот так?

Код:
MyThread: TMyThread;
MyThread2: TMyThread2;
WISKAS-PRO вне форума
Старый 01.03.2014, 14:26   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

И создать
Код:
MyThread2:=TMyThread2.Create(true);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 01.03.2014, 15:37   #7
WISKAS-PRO
 
Регистрация: 06.04.2013
Сообщений: 8
По умолчанию

Аватар, спасибо, заработало
WISKAS-PRO вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с классами (delphi) snakesnight Помощь студентам 1 12.01.2012 14:21
Проблема с классами X@OC Общие вопросы по Java, Java SE, Kotlin 1 05.05.2011 08:17
Проблема с классами и графическим режимом mihailvolk Общие вопросы C/C++ 5 12.04.2011 16:08
проблема с классами lola20 Общие вопросы C/C++ 8 23.12.2010 20:42
Проблема с классами sazonoff.13 Помощь студентам 1 07.10.2010 10:45