指针的运用,该如何解决
指针的运用
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;一样是取得方法的地址而已.
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;一样是取得方法的地址而已.