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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2010, 04:02   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Как закрывать форму с активным idTCPServer'ом

Если сделать вот так:
Код:
procedure TformChatServer.Button1Click(Sender: TObject);
var
i:integer;
begin
  for i := 0 to cnt - 1 do
  begin
    users[i].connection.IOHandler.Write(integer(CHAT_DISCONNECTED));
    users[i].connection.Disconnect;
  end;
end;

procedure TformChatServer.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i: integer;
begin
  try
    TCPS.Active := False;
    Action := caFree;
  except
  end;
end;
Где users - массив TIdConnection, а cnt - количество активных соединений.
Если кликнуть по Button'у, а потом закрыть, то всё будет хорошо, а если просто запихнуть всё это в одну функцию, и просто закрыть, то всё наглухо зависнет:
Код:
procedure TformChatServer.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i: integer;
begin
  for i := 0 to cnt - 1 do
  begin
    users[i].connection.IOHandler.Write(integer(CHAT_DISCONNECTED));
    users[i].connection.Disconnect;
  end;
  try
    TCPS.Active := False;
    Action := caFree;
  except
  end;
end;
TwiX вне форума Ответить с цитированием
Старый 21.03.2010, 20:45   #2
MyIE
Форумчанин
 
Аватар для MyIE
 
Регистрация: 02.01.2010
Сообщений: 127
По умолчанию

в "FormDestroy" напиши "ServerSocket1.Active:=false;" и помоему все.
0_o
MyIE вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одну и ту же форму использовать как MDI-child форму и как модальную форму? PrimaryPro Общие вопросы Delphi 2 10.03.2010 20:52
Как сделать mail активным? Rebel123 Общие вопросы Delphi 3 02.09.2009 19:29
Сделать список активным ALev Microsoft Office Excel 3 02.07.2009 16:53
Как изменить стандартную форму на форму любой сложности QwErEn Общие вопросы Delphi 9 08.06.2007 11:44