转自:http://blog.csdn.net/haiou327/article/details/6666124

delphi中nil的用法

和C++中的NULL一样的意思,指空值,它和0值不一样~~

  nil就是空指针~~  
  指针表示的就是内存的一个地址~~(数据存放位置)~~  
  nil就表示空地址~~   
  例如:
  说对一个TImage中的图片进行清空:  
  Image1.Picture:=nil;   
  对象也是指针,如上的Image1就是一个对象指针~~   
  当一个对象没有创建的时候它的值一般为空,也就是nil
  程序在读取数据的时候必须知道数据所存放的位置~~  
  就是说所有的变量读取都离不开指针~~     
  由于指针也是数据所以指针也有自己的存储地址~~  
  当然就可以用一个指针来定位另一个指针~~     
  指针其实是一32位(4Byte)的数值~~  
  nil就是数值为0的指针~~  
  begin  
      if   nil   =   Pointer(0)   then  ShowMessage('没有骗你吧!')  
  end;      
  能够去思考nil是什么很不错~~  
  但计算机领域是一个完整并且严谨的体系~~  
  必须从最基本的地方一步一步去了解~~  
  要了解nil是什么就必须去思考~~  
  指针是什么?~~  
  数据是什么?~~  
  内存是什么?~~  
  计算机工作的原理~~  
  数据存储的机制~~  
  数据结构和算法~~  
  编程言语设计思想~~  
  操作系统的运行环境~~  
  开发工具的背景资料~~      
  计算机是很傻的~~  
  要和它对话就必须按照它所掌握的规则~~  
  只有在规则之上,你才能自由驾御它~~  
  NULL与NIL到底有什么区别?
  NULL   是字符串为空 ,  NULL是无值无类型;
  NIL     是指针为空,NIL是空指针型 ;
  nil是空指针,而NUll是空变量;
  ''也是字符串,不过是空串,但它不是没有,不是null;  
  Null通常用来表示一个没有初始化的对象;
消息过程的触发机制的原理是什么?
系统中发生了某个事件,WINDOWS把事件翻译为消息,
防到消息对列中,应用程序从消息队列中接受到这个消息
,把他存放到TMSG记录中应用程序把消息传递给一个适当的窗口,
实际上是这个窗口的窗口过程。窗口过程对这个消息进行处理
有的程序有消息过程?不知道你指的是重载的消息呢还是窗口过程。  
对于重载的消息,就是加入你自己的代码,你自己要对这个消息作出反应。  
其实也没有什么特别的地方,delphi封装了大部分windows消息,但是也没有剥夺我们对其直接处理的利。  
另外,事件也是属性,在delphi代码提示模板中显示出来!
在次说明一下参数的传值原理?
对象、字符串。因为它们实质就是指针。你修改指针所指的内容,自然会影响到函数或者过程之外的数据。

转delphi中nil的用法的更多相关文章

  1. Delphi中ClientDataSet的用法小结

    Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进 ...

  2. delphi中webbrowser的用法

    WebBrowser1.GoHome; //到浏览器默认主页 WebBrowser1.Refresh; //刷新 WebBrowser1.GoBack; //后退 WebBrowser1.GoForw ...

  3. Delphi 中 断言 Assert 用法

    procedure Assert(expr : Boolean [; const msg: string]); 用法:   Assert(表达式,[显示信息]); 如果为假, assert会产生一个E ...

  4. Delphi 中 paramstr 的用法及参数意义

    原型         function   paramstr(i:index):string         对于任何application paramstr(0)都默认代表的是应用程序的绝对路径.那 ...

  5. DELPHI中MessageBox的用法

    MessageBox对话框 输入控件的   ImeName属性把输入法去掉就默认为英文输入了 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容.信息提示图标,而且可以 ...

  6. Delphi中paramstr的用法

    原型                function   paramstr(i:index):string        对于任何application paramstr(0)都默认代表的是应用程序的 ...

  7. Delphi中nil和null的区别

    nil:空指针,空地址,对象也是指针,可以object := nil;null:是一个未定义值的变量,既不是0也不代表空字符串,它是未定义的.

  8. DELPHI中MessageBox的用法 (转)

    MessageBox对话框 输入控件的   ImeName属性把输入法去掉就默认为英文输入了 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容.信息提示图标,而且可以 ...

  9. delphi中nil、null、UnAssigned区别

    nil:空指针,空地址,对象也是指针,所以可以object := nil;null:null是一个未定义值的变量,既不是0也不代表空字符串,它是未定义的.http://www.delphibasics ...

随机推荐

  1. centos 6.5 安装openssl

    1.下载wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz 2.解压tar zxf openssl-1.0.2h.tar.gzcd op ...

  2. How I Mathematician Wonder What You Are!(poj 3130)

    题意:求问多边形的核(能够看到所有点的点)是否存在. /* 对于这样的题目,我只能面向std编程了,然而还是不理解. 算法可参考:http://www.cnblogs.com/huangxf/p/40 ...

  3. 转:iOS程序main函数之前发生了什么

    原文地址:http://blog.sunnyxx.com/2014/08/30/objc-pre-main/ 我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口. ...

  4. select与ajax结合

    要实现的功能是,点击select输入框,数据库里面的数据会以option弹出. 这需要用到ajax异步连接数据库 下面贴出代码 先说明一下后台传递的数据是json,以map的形式传入的.后台代码很简单 ...

  5. 怎么在ng-repeat生成的元素上操作dom

    这个问题其实对初学者来说,都 有这样的经历,用ng-repeat生成的元素用js怎么也获取不到;这个其中原由是:angular拥有自动化渲染DOM的特性,它能帮助我们专注于操作数据,而页面的渲染则由a ...

  6. django模板 实现奇偶分行

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. ECOS-LNMP ZendGuard

    因为ECOS产品加密后依赖PHP Zendguard运行(基于PHP5.3加密)  备注: Shopex485商城基于php5.2进行加密 URL:http://www.zend.com/en/pro ...

  8. IIS 7如何实现http重定向https

    转自[http://blog.csdn.net/xuhuojun/article/details/6137154] 在不少的企业当中,网站设计出于安全的考虑使用了https协议,但同时公司也开放了80 ...

  9. c# 索引器方法

    索引器方法允许我们构建能够以类似访问数组的语法来访问内部子类型的自定义类型 在语法上索引器方法和属性的定义很类似,一样是使用get,set,不同的是索引器是使用this[]创建的. 一个简单的索引器代 ...

  10. 安装mysql的遇到的问题

    源:安装用的是mysql官网的binary包. 之前装mysql都是直接放到/usr/local,就想试试放到其他地方,然后..就悲剧了. 安装步骤没啥说的,官网上有.因为放置的位置不一样所以有些执行 ...