转自: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. 为jEasyUi的日期控件添加一个“清空”按钮----通过修改1.4的easyui.min.js

    为 jQuery EasyUI 1.4 的datebox或datetimebox添加一个清空按钮 使用场景:为用户指定了日期的格式,且日期可以为空 修改语言包easyui-lang-zh_CN.js ...

  2. 在tableview的headerView中添加webView,webView自适应高度

    最近在项目中需要添加一个webView加载的页面,下面显示的是对这个webView所显示的内容的一个评论列表 ,列表要根据后台加载过来的HTML自适应的变化高度,tableview的cell在webV ...

  3. android平台短视频技术之 视频编辑的经验分享.

    android平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...

  4. PHP检测文件能否下载

    用php代码检测一个文件是否可以下载,网上没有找到合适的代码,自己实现了一个还挺好用的,分享给有需要的朋友. 基本原理:使用http的HEAD方法,检测报文的头里httpcode是否为200. pub ...

  5. [HMLY]4.CocoaPods详解----制作

    作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/20067595 转载请注明出处   学会使用别人的pods依赖库后,你一 ...

  6. Ajax中参数带有html格式的 传入后台保存【二】

    KindEditor.ready(function (K) { //编辑器插件 window.editor1 = K.create('#ctjs', { uploadJson: '/Hotelgl/U ...

  7. #js#简单的在线计算器

    啊因为懒得去找素材了,所以做了一个仿win10计算器的灰白色计算器. 参考:http://www.html5tricks.com/jquery-calculator.html HTML源码: < ...

  8. 《Intel汇编第5版》 汇编拷贝字符串

    一.字符串定义 二.dup指令 三.调用Writestring过程 四.代码以及效果 TITLE String Copy INCLUDE Irvine32.inc includelib Irvine3 ...

  9. DrawerLayout,ToolBar 和 TabHost 的使用

    ActionBar 定义起来不方便 toolbar: 最重要的特性,显示menu菜单,右上角三个点的菜单按钮,使用灵活 使用:1,布局文件,包裹LinearLayout 放imageView, 或者I ...

  10. JavaFX基础学习之OkHttp/Gson2

    222 package application; import java.io.IOException; import java.net.URL; import java.util.ResourceB ...