![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как получить указатель на экземпляр класса
HRustBB © (2010-06-12 02:25:00)как получить указатель на экземпляр класса внутри одного из методов этого класса. @self не помогает
HRustBB (2010-06-12 17:20:00) [1]
> RWolf © (12.06.10 15:20) [10]
тоже вариант
RWolf (2010-06-12 15:20:00) [2]
class TB
private
FContainer:TObject;
end;
RWolf (2010-06-12 15:14:00) [3]
> каждому объекту Б нужно сообщить (в конструкторе или еще
> какнибудь) указатель на контейнер
Для этого совершенно необязательно приводить Self к Pointer.
Constructor TB.Create(AContainer:TObject);
begin
FContainer:=AContainer;
end;
RWolf (2010-06-12 15:11:00) [4]
p:=pointer(self);
HRustBB (2010-06-12 15:09:00) [5]
> В Delphi любая переменная-экземпляр класса есть указатель.
> В том числе Self.
Тоесть
var p:Pointer;
begin
p:=self;
end;
будет правильно?
HRustBB (2010-06-12 15:06:00) [6]
> А нафига!?
Задача такая: есть объект класса А, который инкапсулирует в себе свойство: массив объектов класса Б. Так вот. Нужно внутри методов каждого объекта класса Б иметь доступ к методам объекта класса А, для этого каждому объекту Б нужно сообщить (в конструкторе или еще какнибудь) указатель на контейнер (на тот самый объект класса А). Вот както так.
RWolf (2010-06-12 15:05:00) [7]В Delphi любая переменная-экземпляр класса есть указатель. В том числе Self.
{RASkov} (2010-06-12 15:00:00) [8]> [3] HRustBB (12.06.10 14:54)
@+F1... будет адрес "указателя(переменной)" self...
HRustBB (2010-06-12 14:54:00) [9]
> Self это и есть указатель на экземпляр, без @
тобеж @self получается указатель на указатель?
Palladin (2010-06-12 03:06:00) [10]Self это и есть указатель на экземпляр, без @
Германн (2010-06-12 02:31:00) [11]
> как получить указатель на экземпляр класса внутри одного
> из методов этого класса.
А нафига!?
Методы и так работают "внутри экземпляра" за несколькими исключениями, типа классовых.