procedure TForm1.FormCreate(Sender: TObject); var Str: string; pStr: PString; begin Str := 'Delphi 2007'; pStr := @Str; {用 @ 获取指针} ShowMessage(pStr^); {Delphi 2007} Str := 'Delphi 2008'; pStr := Addr(Str); {Addr 和 @ 的作用是一样的, 都是获取指针} ShowMessage(pStr^); {Delphi 2008} {获取 Form1 的指针} ShowMessage(IntToStr(Integer(@Self))); {1244648; 这是动态的} ShowMessage(IntToStr(Integer(Addr(Self)))); {1244648} {获取 Form1 的 FormCreate 过程的指针} ShowMessage(IntToStr(Integer(@OnCreate))); {4570956} ShowMessage(IntToStr(Integer(Addr(OnCreate)))); {4570956} { 如果要获取指针的对象的表达式太复杂, 用 @ 就不好使了; 这时只能使用 Addr, 我以前碰到过这种情况, 今天想不起来了... } end;