Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Вниз

Как создать указатель на обьект внутри метода этого обьекта? Замы   Найти похожие ветки 

 
a-leksey   (2002-12-14 15:25) [0]

Суть вопроса такова... Некоторые обьекты при создании и инициализации должны регестрировать себя в некотором

списке, оставляе там указатель сакми на себя. Так как в нутри метода обьект доступен как Self, я использую @Self,

чтобы создать указатель на обьект, но логично думать, что Self уже, не что иное, как указатель...Вот тут я и запутался.
Как внутри метода создать указатель на обьект и передать его??? Приведение типом не спасло варианты типа

Pointer(Self) или pmy(Self) не помогли..Одним словом указатель на обьект либо не создается, либо теряется...
Если снять ремарки //s2.b:=@s1;, то все работает (а куда оно денется?), но мне нужно создать указатель внутри

метода...как? На примере все упрощено вместо списка переменная и один обьект. Может, кто даст дельный совет?

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

pmy = ^my;

my1 = record
b:pmy;
end;

my = class
a:string;
constructor create(lmy1:my1);
destructor destroy;
end;

var
Form1: TForm1;
s1:my;
s2:my1;
implementation

{$R *.DFM}

constructor my.create(lmy1:my1);
begin
inherited create;
lmy1.b:=@self;
end;


 
Сергей Бушин   (2002-12-14 17:42) [1]


pmy = ^my - ?
...
lmy1.b:=@self - ?

Класс в Delphi по сути явдяется указателем, в отличии от паскаля.

Сделать надо так:


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

my = class;

my1 = record
b:my;
end;

my = class
a:string;
constructor create(lmy1:my1);
destructor destroy;
end;

var
Form1: TForm1;
s1:my;
s2:my1;
implementation

{$R *.DFM}

constructor my.create(lmy1:my1);
begin
inherited create;
lmy1.b:=self;
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
1-74713
Tik
2002-12-13 06:11
2002.12.23
Проблема


1-74678
dimonf
2002-12-13 12:25
2002.12.23
Как работает TEvent.WaitFor?


3-74599
габбер
2002-12-04 20:21
2002.12.23
Уважаемые мастера!


14-74991
Mad_Ghost
2002-12-04 08:10
2002.12.23
Вопрос по С++, подклбчение lib ов


4-75038
eruc
2002-11-10 07:06
2002.12.23
блокируем все КЛАВИШИ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский