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