DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: 19137911446
今日帖子: 19
在线用户: 18
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 baopaobao (baopaobao) ★☆☆☆☆ -
普通会员
2004/3/3 9:59:09
标题:
如果去掉tmenuitem.Create(self);中的self会怎么样? 浏览:1125
加入我的收藏
楼主: 俺前面哪个问题的延伸,我不知道newitem := tmenuitem.Create(self);括号里的self是用来干什么的,不用行吗?

----------------------------------------------
-
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 10:13:40
1楼: Self和Sender的区别: 
  在事件处理程序参数表中,至少含有一个参数Sender,它代表触发事件处理程序的构件,如在上例中,Sender就指Button2,有了Sender参数,可以使多个构件共用相同的事件处理程序,如下例: 
  Procedure Tform1.Buttonclick(Sender:Tobject); 
  Begin 
    If sender=button1 then 
      Label1.caption:=′看庭前花开花落 
    Else 
        Label2.caption:=′望天上云卷云舒′ 
  End; 
  在此例中,Button1,Button2共用了Buttonclick事件处理程序。 
  Self是指所编的程序范围是在哪一个类中,Delphi中大都在窗体范围内编程,因此,self即指窗体,如果在编写一个类或是一个组件,则self指该类或组件。我们在函数或过程的声明中可看出self是代表哪个组件,即self代表‘.’号之前的组件,如在第一个例子中,self代表Tform1。另外应注意,self只能用在类方法中,而不能用在过程或函数中,如下例用法是错的: 
Function a1(B:Integer):Integer; 
  Begin 
  …… 
  Button:=tbutton.create(self);…… 
  End;
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/3/3 10:27:19
2楼: 不会怎样!
此帖子包含附件:
JPEG 图像
大小:50.7K
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/3 10:31:23
3楼: 有点区别,如果不用self,而用nil,就是没有创建者,需要手工释放所占用的资源。
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 baopaobao (baopaobao) ★☆☆☆☆ -
普通会员
2004/3/3 11:33:43
4楼: 天啊,太感谢各位了!我得先消化一下,谢谢大家帮忙!
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行164.0625毫秒 RSS