Написал процедуру принудительного реконекта с сервером, но она отрабатывает не так, как ожидалось (сорри за оформление, не работает кнопка Код на сайте)
procedure TForm1.Reconnect(er: String);
var
Size: TSizeF;
B: boolean;
begin
Size.cx := 16;
Size.cy := 16;
if Client1.Connected = true then
begin
Client1.Disconnect;
end;
if Client1.Connected = false then
begin
try
Client1.Connect;
Form1.ConnectImage.Bitmap := Form1.IconList.Bitmap(Size, 15);
Timer1.Enabled := true;
except
on E: Exception do
begin
InfoLabel.text := er;
Form1.ConnectImage.Bitmap := Form1.IconList.Bitmap(Size, 7);
end;
end;
end
else
begin
Form1.ConnectImage.Bitmap := Form1.IconList.Bitmap(Size, 15);
Timer1.Enabled := true;
end;
end;
Смысл в том, что после Client1.Disconnect, Client1.Connected остается в состоянии true, хотя на сервере вижу, что соединение разорвалось.
И ничего не помогает, пробовал и Client1.IOHandler.Close и Client1.Disconnect(true).
Вопрос
gonzales
Доброго времени суток.
Увидел очень странное поведение idTCPClient
Написал процедуру принудительного реконекта с сервером, но она отрабатывает не так, как ожидалось (сорри за оформление, не работает кнопка Код на сайте)
procedure TForm1.Reconnect(er: String);
var
Size: TSizeF;
B: boolean;
begin
Size.cx := 16;
Size.cy := 16;
if Client1.Connected = true then
begin
Client1.Disconnect;
end;
if Client1.Connected = false then
begin
try
Client1.Connect;
Form1.ConnectImage.Bitmap := Form1.IconList.Bitmap(Size, 15);
Timer1.Enabled := true;
except
on E: Exception do
begin
InfoLabel.text := er;
Form1.ConnectImage.Bitmap := Form1.IconList.Bitmap(Size, 7);
end;
end;
end
else
begin
Form1.ConnectImage.Bitmap := Form1.IconList.Bitmap(Size, 15);
Timer1.Enabled := true;
end;
end;
Смысл в том, что после Client1.Disconnect, Client1.Connected остается в состоянии true, хотя на сервере вижу, что соединение разорвалось.
И ничего не помогает, пробовал и Client1.IOHandler.Close и Client1.Disconnect(true).
Подскажите, в какую сторону копать?
1 ответ на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.