Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Сохранение указателя на 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.068 c
1-1129137427
Rianon
2005-10-12 21:17
2005.11.06
Проблема с Dll и формами


6-1120576487
yuran
2005-07-05 19:14
2005.11.06
Как передать сообщение через интернет:


14-1129407214
Юрий Зотов
2005-10-16 00:13
2005.11.06
Пропал ребенок.


14-1129192588
Ne vajno
2005-10-13 12:36
2005.11.06
Антивирус


4-1125324360
v850
2005-08-29 18:06
2005.11.06
LISTVIEW_GETITEMTEXT из чужого окна