指针的运用,该如何解决

指针的运用
procedure   TForm1.Button1Click(Sender:   TObject);
Type
                pPopedom   =   ^TPopedom;
                TPopedom   =   Packed   Record
                                ADOQryUserStr:   PChar;
                                ADOQryPopedomStr:   PChar;
                end;
var
                Popedom:   pPopedom;
begin
                //应该怎么样赋值?怎么取值
                //^   @   怎么来用?
                popedom^.ADOQryUserStr   :=   ' ';
                ShowMessage(popedom^.ADOQryUserStr);
end;

------解决方案--------------------
new( pPopedom );
popedom^.ADOQryUserStr:= ' ';
ShowMessage(popedom^.ADOQryUserStr);
dispose( pPopedom );
------解决方案--------------------
Getmem(Popedom,sizeof(TPopedom));
popedom^.ADOQryUserStr := ' ';
ShowMessage(popedom^.ADOQryUserStr);
FreeMem(popedom);
------解决方案--------------------
指针只是表示数据所在的地址

至于那个地址上是否存在有效数据还得自己维护
------解决方案--------------------
var
Popedom: pPopedom;
PFU:FUNCTION :BOOLEAN;

Function xx:Boolean;
begin
beep;
end;
begin
一般定义指针先得创建(NEW或GETMEM)用完记得DISPOSE或FREEMEM,定义记录就创建了,所以不必再创建......
然后Popedom^是指向的意思
@PFU:=xx;(这句在DLL中用的较多)或PFU:=@XX;一样是取得方法的地址而已.