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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 22:33   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Синхронизация listview c потоками

Доброй ночи, брадя по форуму и пытаясь решить свою безнадёжную проблему, наткнулся на эту ветку http://programmersforum.ru/showthread.php?t=121244 там описан пример с label.caption, но моя проблема другая. Пытаюсь оформит многопоточность с авторизацией через listvie, вот код потока
Код:
type
  TBot = class(TThread)
  private
	FUrl_Pay,
	FLogin,
	FPassword: String;
	http_1:TIdHTTP;
	IdCookieManager1_Pay: TIdCookieManager;
	RvRenderHTML2: TRvRenderHTML;
	IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
  protected
	procedure Execute; override;
  public
	constructor Create(CreateSuspended: Boolean; aUrl, aLog, aPas: String);
	destructor Destroy; override;
  end;

implementation

uses
	Unit1;

constructor TBot.Create(CreateSuspended: Boolean; aUrl, aLog, aPass: String);
begin
  inherited Create(CreateSuspended);
  FreeOnTerminate:= True;
  Priority:= tpLower;
  FUrl_Pay:= aUrl;
  FLogin:= aLog;
  FPassword:= aPass;
  http_1:= TIdHTTP.Create(Nil);
  IdCookieManager1_Pay:= TIdCookieManager.Create(Nil);
  RvRenderHTML2:= TRvRenderHTML.Create(Nil);
  IdSSLIOHandlerSocketOpenSSL1:= TIdSSLIOHandlerSocketOpenSSL.Create(Nil);

  http_1.AllowCookies:= True;
  http_1.HandleRedirects:= True;
  http_1.CookieManager:= IdCookieManager1_Pay;
end;  

destructor TBot.Destroy;
begin
  http_1.Free;
  IdCookieManager1_Pay.Free;
  RvRenderHTML2.Free;
  IdSSLIOHandlerSocketOpenSSL1.Free;
  inherited Destroy;
end;

procedure TBot.Execute;
begin
 try
  http_1.get('http://' + FUrl_Pay + 'login.php?r=',s);
  begin
  ///
  begin
///
end
else
inf.Add('username=' +Login);
inf.Add('password=' + Pass);
idHTTP_1.Post('http://' + URL_Pay +'login.php',inf,s);
inf.Free;
end;
end;
end;
 except
  Exit;
 end;
end;
вот код формы
Код:
type
  TForm1 = class(TForm)
    Button1: TButton;
  private
    BotArray: array of TBot;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1; 
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 I: Integer;
 S: Integer;
begin
  URL_Pay := 'http://' + Form1.Listview1.Items[s].SubItems[0];
  Login := Form1.Listview1.Items[s].SubItems[1];
  Pass := Form1.Listview1.Items[s].SubItems[2];
begin
  for I:= 0 to Listview1.Items.count-1 do
  begin
  	BotArray[i]:= TBot.Create(True);
  	BotArray[i].Resume;
  end;
  end;
end;
на той ведке про лабел прдлагается сделать так
Код:
procedure TNewThread1.Execute;
begin
 index := 1;
  while index > 0 do
  begin
    Synchronize(UpdateLabel);
    Inc(index);
    if index > 100000 then
      index := 0;
    if stop1 then exit;
  end;
end;

procedure TNewThread2.Execute;
begin
  index1 := 1;
  while index1 > 0 do
  begin
    Synchronize(UpdateLabel1);
    Inc(index1);
    if index1 > 100000 then
      index1 := 0;
    if stop2 then exit;
  end;
end;
Но нельзя ли проще синхронизировать, ведь для строк у меня идёт переменная I
P.S. если код не сильно рабочий извеняюсь, пишу сооным
P.S.S забыл написать что глючить начинает только если более 2 строк в листвиеве содежится

Последний раз редактировалось bulldog5293; 12.11.2010 в 22:50.
bulldog5293 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04
Синхронизация kostyan142 Общие вопросы по Java, Java SE, Kotlin 6 13.01.2010 01:39
Синхронизация в indy Altera Работа с сетью в Delphi 12 08.10.2009 16:44
Синхронизация yarilo Софт 2 07.08.2009 15:50