Показать сообщение отдельно
  #1  
Старый 15.04.2016, 02:03
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Поток срабатывает со второго раза

Здравсвуйте!

Пытаюсь в потоке парсить вк и выводить ответ в stringlist. Поток срабатывает со второго раза, с первого выдается ошибка:

Если проигнорить ошибку, и еще раз ткнуть кнопку - работает.

Если запускать без delphi, чисто с exe файла, то ошибки нет, но так или иначе поток отрабатывает только со второго нажатия.
Что я намудрил не так?))

код:
Код:
{ TMyThread }
procedure TMyThread.Execute;
 var
  i,PoSi: integer;
 S : string;
 artist, title   : TStrings;
begin
   MusicResponse:=Utf8ToAnsi(send('GET', 'https://api.vk.com/method/audio.get?owner_id='+userid+'&need_user=0&count='+inttostr(TrackCount)+'&'+token));
   Form1.sMemo2.Text:=MusicResponse ;
   TrackCount:=Form1.sTrackBar1.Position;
   S:=Form1.sMemo2.Text;
   artist:= TStringList.Create;
   title:= TStringList.Create;
   url:= TStringList.Create;
   url.Clear;
   s:= Form1.SMemo2.Text;
   prs(s, '"artist":"', '","', artist);
   prs(s, '"title":"', '","', title);
   prs(s, '"url":"', '?', url);
   Form1.SListBox1.TabWidth := 200;
       for i := 0 to artist.Count-1 do
       begin
          Form1.SListBox1.Items.Add(artist[i]+' - '+title[i]);
          SSSS:=url.Strings[i];
         while pos('\',ssss)<>0 do
         delete(ssss,pos('\',ssss),1);
         url.Strings[i]:=SSSS;
       end;
   artist.Free;
   title.Free;
   url.Text:=AnsiLowerCase(url.Text);
       Terminate;
end;
Ответить с цитированием