![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TObject через ссылку [XP]
aka © (2015-03-11 12:58:00)
SL: TStringList;
................................................................
Push(Pointer(SL.Objects[i]));
//SL.Objects[i] := TObject(3) - напрямую работает
//так - нет
procedure Push(obj: Pointer);
begin
TObject(obj) := TObject(3);
end;
Почему так происходит?
Плохиш (2015-03-11 13:56:00) [21]
> aka © (11.03.15 13:28) [2]
> > procedure Push(var obj: Pointer)constant object cannot
> be passed as var
не ври, он не на эту строку показывает.
> Push( Pointer(SL.Objects[i]));
компилятор превращает такую конструкцию в константу, т.к. он не в состоянии проследить за полётом больной фантазии дерьмокодера.
junglecat (2015-03-11 13:53:00) [22]P := Pointer(SL.Objects[i]);
Push(P);
aka (2015-03-11 13:28:00) [23]
> procedure Push(var obj: Pointer)
constant object cannot be passed as var
junglecat (2015-03-11 13:21:00) [24]procedure Push( varobj: Pointer);