转自: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. [Python]-类型转换

    1.字符串到数值的转换:int(s [,base ]) 将表达式s转换为一个整数 ,s可以是整数,与数字有关的字符串,布尔类型long(s [,base ]) 将表达式s转换为一个长整数 s可以是整数 ...

  2. html+css基础篇

    2016年11月19号,计划把基础在看一下,听大神说好的东西就要多看几遍,知识是学来用的解决问题的,加油 接下来的是我在自学中的小笔记吧,每天都在保持几个小时的学习思考状态,由于要升本所以学前端的时间 ...

  3. js 设计模式-接口

    js模拟java接口检测函数:确保子类实现接口中的方法:(出自js设计模式) 上代码: <script type="text/javascript" > <%-- ...

  4. 关于angularjs+typeahead的整合

    和angularjs-xeditable的基本相似,主要区别在于前者用于普通input中,后者用于xeditable中 在angularjs-xeditable需要自动提示的地方要用e-uib-typ ...

  5. Swift原理

    背景与概览 Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务,并于 2010 年贡献给 OpenStack 开源社区作为其最初的核心子项目之一,为其 Nova 子项目提供虚 ...

  6. Python Data Visualization Cookbook 2.9.2

    import numpy as np import matplotlib.pyplot as plt def is_outlier(points, threshold=3.5): if len(poi ...

  7. ios UIImageView处理图片大小问题

    UIImageView视图可以显示图片 实例化UIImageView有两种方法 第一种方法: UIImageView *myImageView = [[ UIImageView alloc] init ...

  8. flex 4 datagrid 奇偶行颜色设置

    <s:DataGrid width="100%" height="100%" alternatingRowColors="[#ffFFff,#e ...

  9. 5.MyBaits调用存储过程

    1.创建一个javaweb项目MyBatis_Part4_Procedure 2.在src下创建procedure.sql文件 --创建表 create table p_user( id number ...

  10. 关于sbutils中的sblaunch插件的疑惑

    一.sbutils介绍 sbutils是一个开源的越狱手机基础功能的插件包,其中包含sblaunch这个启动插件,该插件可以实现命令行下面打开app并传递一个url. sbutils下载地址:http ...