Форум: "Сети";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизСохранение указателя на TIdContext в Indy10 Найти похожие ветки
← →
vers © (2005-07-23 02:37) [0]Вот код:
procedure ConnectProc(AContext:TIdContext);
var
context:TIdContext;
context2:TIdContext;
begin
Label1.Caption:=IntToStr(LongInt(@AContext));
socket:=TIdContext(@AContext);
Label2.Caption:=IntToStr(LongInt(@socket));
socket:=AContext;
Label3.Caption:=IntToStr(LongInt(@socket));
socket2:=socket;
Label4.Caption:=IntToStr(LongInt(@socket2));
end;
В результате: содержимое второго и третьего Label"ов одинаковые, остальные - разные. Получается, при каждом присваивании переменной типа TIdContext, присваивается не она, а какая-то чушь? Или я чего-то не понимаю (что вероятнее всего)?
Этот вопрос возник при перенесении кода из Indy9 в Indy10. Программа сохраняет указатели на все пользовательские соединения к IdTCPServer"у. Раньше это было TIdTCPConnection, теперь TIdContext. Но в случае с TIdTCPConnection указатели не менялись при присваивании.
← →
vers © (2005-07-23 02:41) [1]Прошу прощения, не TIdTCPConnection, а TIdPeerThread в Indy9.
← →
vers © (2005-07-23 13:17) [2]Вопрос снимается: сам глупый :)
AContext.Connection.Socket.Write("1");
и
context:=AContext;
context.Connection.Socket.Write("1");
работают идентично.
PS: В исходнике наверху я немного ошибся с названиями переменных.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.036 c