Вниз
Скачать: CL | DM;

Потоки   Найти похожие ветки 

← →
Pacific   (2007-11-29 20:52) [0]

Здравтсвуйте! Такой вопрос: у меня главная форма подвисает, когда
активируется процедура OnIcqLogin, ведь подвисать не должно :(

unit th;

interface

uses
 Classes, SysUtils, icqclient, icqworks;

type
 threed = class(TThread)
 private
  ICQClient: TICQClient;
   procedure OnICQLogin(Sender: TObject);
 protected
   procedure Execute; override;
 end;

implementation

{ Important: Methods and properties of objects in visual components can only be
 used in a method called using Synchronize, for example,

     Synchronize(UpdateCaption);

 and UpdateCaption could look like,

   procedure threed.UpdateCaption;
   begin
     Form1.Caption := "Updated in a thread";
   end; }

{ threed }
uses main;

procedure threed.OnICQLogin(Sender: TObject);
var
x:integer;
begin
x:=strtoint(form1.Label12.Caption);
Inc(x);
form1.Label12.Caption:=inttostr(x);
sleep(strtoint(form1.Edit3.text)*1000);
icqclient.SendMessage(strtoint(form1.edit6.text), form1.Memo1.Text);
end;

procedure threed.Execute;
var
sent:integer;
icq,uin,pass, proxy:string;
begin
sent:=0;
Inc(form1.listp);
If form1.listp=form1.Proxylist.Count-1 then
begin
proxy:=copy(form1.Proxylist.Strings[form1.listp], 1, 400);
form1.listp:=-1;
end
else
begin
proxy:=copy(form1.Proxylist.Strings[form1.listp], 1, 400);
end;
icq:=form1.ICQlist.Strings[form1.list];
uin:=copy(icq, 1, Pos(";", icq)-1);
pass:=copy(icq, Pos(";", icq)+1, 255);
icqclient:=Ticqclient.Create(nil);
ICQClient.DisableDirectConnections:= True;
ICQClient.ICQServer:= "login.icq.com";
ICQClient.ICQPort:=5190;
icqclient.UIN:=strtoint(uin);
icqclient.Password:=pass;
icqclient.OnLogin:=OnIcqLogin;
icqclient.Login();
end;

end.


← →
tesseract ©   (2007-11-29 20:58) [1]

По этому не должна. А так черт знает где у тебя synchronize понатыкан.


← →
Pacific   (2007-11-29 21:00) [2]

но так незя :(
icqclient.OnLogin:=synchronize(OnIcqLogin);
т.к.
property OnLogin: TLoginEvent;


← →
Loginov Dmitry ©   (2007-11-29 21:43) [3]

Для устранения проблем, возникающих с данным кодом, необходимо в ПЕРВУЮ очередь убрать ВСЕ обращения к VCL из основного потока. Иначе "подвисание" - это ДАЛЕКО не самое страшное, что здесь может происходить.


← →
Loginov Dmitry ©   (2007-11-29 21:45) [4]

> из основного потока


т.е. из дополнительного



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
15-1195867805
SerJaNT
2007-11-24 04:30
2007.12.23
Помогите составить SQL-запрос


15-1195763722
dFedor
2007-11-22 23:35
2007.12.23
Поделитесь материалами


15-1195968708
PZ
2007-11-25 08:31
2007.12.23
«Шедевры Метража»


3-1187087591
ari_9
2007-08-14 14:33
2007.12.23
зависимые ListSource для Lookup компонент. как лучше ? (+)


15-1196026503
Tos-ka
2007-11-26 00:35
2007.12.23
Подскажите условиями входит точка в тело или нет.




   Наверх