Вниз
Скачать: CL | DM;

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

 
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 вся ветка

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



Память: 0.45 MB
Время: 0.011 c
14-74960
aterm
2002-12-03 11:04
2002.12.23
как отловить вставку из буфера в определенную TMemo?


1-74755
dimonf
2002-12-14 19:46
2002.12.23
Народ помогите разобраться с потоком CreateThread!


7-75001
Сатир
2002-10-18 18:39
2002.12.23
установка переменной окружения в win2k


8-74854
Termik
2002-09-02 17:56
2002.12.23
Компонент для показа анимированных gif - файлов


14-74932
Tihas
2002-11-24 02:22
2002.12.23
Кто нибудь знает попуярную игру написаную с помощью дельфи?




   Наверх