Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.03 c
1-1129182020
pmi1
2005-10-13 09:40
2005.11.06
Изменям Edit, при этом картинка не портится


3-1127313404
WG
2005-09-21 18:36
2005.11.06
Поле имеет название "DATE", из-за этого не могу выполнить запрос


14-1129064523
Trajor
2005-10-12 01:02
2005.11.06
Подсветка синтаксиса


2-1128675935
Viktop
2005-10-07 13:05
2005.11.06
Поиск любого слова в базе


14-1129360380
Колян
2005-10-15 11:13
2005.11.06
Нужно написать серверную программу




   Наверх