IdIcmpClient replystatus döndürüyor yanlış hatırlamıyorsam onu kontrol edebilirsin. İşlemi başka bir thread ile yapabilirsin Şaban abinin dediği gibi yapabilirsin ama yok o şekil zor geliyorsa JEDI içinde threadtimer diye birşey var aynı işi kolayca yapabilirsin.
Basit bir örnek, işlemi yapacak fonksiyon veya procedure CreateThreadin üstünde olacak yoksa delphi işlemi göremiyor bug mudur nedir anlamadım.
Kod: Tümünü seç
procedure Deneme();
var
i,Topla:Integer;
begin
i:=0;
Topla:=0;
for i := 0 to 1000000000 do
begin
Topla := Topla + 5;
end;
Form1.Label2.Caption := IntToStr(Topla);
// ShowMessage('Deneme Kanalı Sonlandı');
end;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
OHandle: THandle;
OThreadVar:DWord;
begin
OHandle:= CreateThread(nil,0,@Deneme,nil,0,OThreadVar); //@Deneme işlem yapacak fonksiyonun/procedurun adı. sen de pingi bu işlem içinde yapacaksın
if OHandle<>0 then
ShowMessage('Kanal Oluşturuldu')
else
ShowMessage('Kanal Oluşturulamadı');
end;