Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Pointer на Record... Как вытащить данные?


Grizly ©   (2004-12-23 15:30:00) 

Вот код

TRec=record
par_0:string;
par_1:string;
par_2:string;
par_3:int64;
end;

var
MyRec:TRec;
PAR0:string;
...
Node.Data:=@MyRec;
...
PAR0:=MyRec.par_0; //<-- а как PAR0 вытащить из Node???

Подскажите, как PAR0 присвоить MyRec.Par_0, действуя через Node.Data?


Ega23   (2004-12-23 16:45:00) [1]


type
PRec=^TRec;
TRec=record
......
end

var
MyData:PRec;

New(MyData);
Mydata^.Par_0:='ttttt';

Node.Data:=MyData;

Par0:=PRec(Node.Data)^.Par_0;

Dispose(MyRec);


begin...end   (2004-12-23 16:20:00) [2]

> [4] Grizly   (23.12.04 16:07)

Всё же проверьте, что возвращает Assigned(Node.Data)после Node.Data := @MyRec.


Grizly   (2004-12-23 16:07:00) [3]

Странно..
Заполняю MyRec, присваиваю указатель на него Node.Data:=@MyRec;, ставлю breakpoint на следующую строку. Node.Data= nil.
Почему так происходит?


MBo   (2004-12-23 15:43:00) [4]

объяви тип-указатель на TRec и
PAR0:=PRec(Node.Data)^.par_0;


begin...end   (2004-12-23 15:36:00) [5]

> Grizly   (23.12.04 15:30)

PAR0 := TRec(Node.Data^).par_0


Александр Иванов   (2004-12-23 15:36:00) [6]

Если я правильно телепатировал :) и Node.Data имеет тип Pointer, то так:

PAR0 := TRec(Node.Data^).par_0


Наверх

Титульная страница Поиск, карта сайта Написать письмо