转delphi中nil的用法
转自:http://blog.csdn.net/haiou327/article/details/6666124
delphi中nil的用法
指针表示的就是内存的一个地址~~(数据存放位置)~~
nil就表示空地址~~
例如:
Image1.Picture:=nil;
当一个对象没有创建的时候它的值一般为空,也就是nil
程序在读取数据的时候必须知道数据所存放的位置~~
就是说所有的变量读取都离不开指针~~
由于指针也是数据所以指针也有自己的存储地址~~
当然就可以用一个指针来定位另一个指针~~
指针其实是一32位(4Byte)的数值~~
nil就是数值为0的指针~~
begin
if nil = Pointer(0) then ShowMessage('没有骗你吧!')
end;
能够去思考nil是什么很不错~~
但计算机领域是一个完整并且严谨的体系~~
必须从最基本的地方一步一步去了解~~
要了解nil是什么就必须去思考~~
指针是什么?~~
数据是什么?~~
内存是什么?~~
计算机工作的原理~~
数据存储的机制~~
数据结构和算法~~
编程言语设计思想~~
操作系统的运行环境~~
开发工具的背景资料~~
计算机是很傻的~~
要和它对话就必须按照它所掌握的规则~~
只有在规则之上,你才能自由驾御它~~
NULL与NIL到底有什么区别?
NIL 是指针为空,NIL是空指针型 ;
''也是字符串,不过是空串,但它不是没有,不是null;
Null通常用来表示一个没有初始化的对象;
系统中发生了某个事件,WINDOWS把事件翻译为消息,
防到消息对列中,应用程序从消息队列中接受到这个消息
,把他存放到TMSG记录中应用程序把消息传递给一个适当的窗口,
实际上是这个窗口的窗口过程。窗口过程对这个消息进行处理
有的程序有消息过程?不知道你指的是重载的消息呢还是窗口过程。
对于重载的消息,就是加入你自己的代码,你自己要对这个消息作出反应。
其实也没有什么特别的地方,delphi封装了大部分windows消息,但是也没有剥夺我们对其直接处理的利。
转delphi中nil的用法的更多相关文章
- Delphi中ClientDataSet的用法小结
Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进 ...
- delphi中webbrowser的用法
WebBrowser1.GoHome; //到浏览器默认主页 WebBrowser1.Refresh; //刷新 WebBrowser1.GoBack; //后退 WebBrowser1.GoForw ...
- Delphi 中 断言 Assert 用法
procedure Assert(expr : Boolean [; const msg: string]); 用法: Assert(表达式,[显示信息]); 如果为假, assert会产生一个E ...
- Delphi 中 paramstr 的用法及参数意义
原型 function paramstr(i:index):string 对于任何application paramstr(0)都默认代表的是应用程序的绝对路径.那 ...
- DELPHI中MessageBox的用法
MessageBox对话框 输入控件的 ImeName属性把输入法去掉就默认为英文输入了 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容.信息提示图标,而且可以 ...
- Delphi中paramstr的用法
原型 function paramstr(i:index):string 对于任何application paramstr(0)都默认代表的是应用程序的 ...
- Delphi中nil和null的区别
nil:空指针,空地址,对象也是指针,可以object := nil;null:是一个未定义值的变量,既不是0也不代表空字符串,它是未定义的.
- DELPHI中MessageBox的用法 (转)
MessageBox对话框 输入控件的 ImeName属性把输入法去掉就默认为英文输入了 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容.信息提示图标,而且可以 ...
- delphi中nil、null、UnAssigned区别
nil:空指针,空地址,对象也是指针,所以可以object := nil;null:null是一个未定义值的变量,既不是0也不代表空字符串,它是未定义的.http://www.delphibasics ...
随机推荐
- nginx 配置访问限制
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- java--调整JVM内存的大小
默认占用:64M的内存 修改内存的方式: 1.某一类,右键选择--Run Configurations 2.选择--Arguments 3.在VM argments中输入内容,如:-Xmx80m
- Javac编译与JIT编译
本文转载自:http://blog.csdn.net/ns_code/article/details/18009455 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的 ...
- 第一百二十四节,JavaScriptCookie与存储
JavaScriptCookie与存储 学习要点: 1.cookie 2.cookie局限性 3.其他存储 随着Web越来越复杂,开发者急切的需要能够本地化存储的脚本功能.这个时候,第一个出现的方案: ...
- Linux下服务器环境的搭建和配置之一——Apache篇
最近一个多月(2016-06-20开始至今),一直在忙海外广告平台FAQ系统的开发,既要负责服务器环境的搭建,又要写前端,还要写后台和数据库,甚至还要考虑产品需求和设计.所以是一个很大的挑战,对自身也 ...
- 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut
原文请戳:http://blog.csdn.net/abcjennifer/article/details/8170687 聚类算法是ML中一个重要分支,一般采用unsupervised learni ...
- 查找页面中最大的z-index 的值
var divs = document.getElementsByTagName("div");for(var i=0, max=0; i<divs.length; i++) ...
- Majority Element in an Array
Problem Statement Given a large array of non-negative integer numbers, write a function which determ ...
- 私有云Rabbitmq 集群部署
默认openstack使用rabbitmq做信息队列,如果想要是云高可用,那么需要对每个涉及的组件都进行高可用配置,本文介绍如何使用rabbitmq 做高可用 高可用方法 通过 Erlang 的分布式 ...
- Myeclipse10、Maven构建Javaweb项目
主要介绍如何使用 Myeclipse 10 构建 Maven Web 项目,关于 Maven 的介绍就略过了. 工具/原料 myeclipse apache-maven-3.1.0 方法/步骤 ...