请各位高手回答我的问题明确一点好不好!!!我是菜鸟啊,你们一玩深沉,我就更加弄不明白了,
是指向FItemClass??还是指向TCollection??
procedure TMainForm.btnAsChildClick(Sender: TObject);
begin
  if not Assigned(FNavStatForm) then
  begin
    FNavStatForm := TNavStatForm.Create(Application, pnlParent);
    FNavStatForm.SetToolBarParent(self);
    FNavStatForm.SetStatusBarParent(self);
    mmMainMenu.Merge(FNavStatForm.mmFormMenu);
    FNavStatForm.Show;
    pnlParent.Height := pnlParent.Height - 1;
  end;
end;
这里self代表什么??,

解决方案 »

  1.   

    >在这里self究竟代表什么,是指向FItemClass??还是指向TCollection??它是否与c++中的this指针类似??
    在一个类的内部的方法,可以用self来引用这个类本身。你可以认为self指向TCollection,的确类似c++中的this指针。
    procedure TMainForm.btnAsChildClick(Sender: TObject);
    begin
      if not Assigned(FNavStatForm) then
      begin
        FNavStatForm := TNavStatForm.Create(Application, pnlParent);
        FNavStatForm.SetToolBarParent(self);
        FNavStatForm.SetStatusBarParent(self);
        mmMainMenu.Merge(FNavStatForm.mmFormMenu);
        FNavStatForm.Show;
        pnlParent.Height := pnlParent.Height - 1;
      end;
    end;
    当中的self指向TMainForm,因为btnAsChildClick是TMainForm的方法。
      

  2.   

    在所有对象的方法中都有一个隐含变量称为S e l f,S e l f是用来调用方法的指向类实例的指针。S e l f由编译器作为一个隐含参数传递给方法。
    这里的self指向TMainForm。