易截截图软件、单文件、免安装、纯绿色、仅160KB

delphi中move函数的用法

我们能看到以下代码
var pSource,pDest:PChar;
     len: integer;
.......................//一些代码
Move(pSource,pDest,len); //错误
Move(pSource^,pDest^,len); //正确
看起来确实好像是传值,而不是传地址,但是各位别忘了,这不是C,C++,而是Delphi
Object Pascal,所以,绝不能从函数调用的方法判断是传值还是串地址!!必须看函数的
定义,只有定义才能说明是传值还是传地址,再说一遍,这不是C,C++!!
我们看到的函数定义是这样的
procedure Move(const Source; var Dest; Count: Integer);
从定义上看,很清楚,Dest是传地址,而不是传值,那么Source呢,其实大家不太清楚
这里的Const修饰符有两个含义,第一个大家都知道就是Source一常量方式在函数体内,
不可以改变它的值,第二个可能知道的人不多,那就是Source的传递方式和Dest一样,
是传地址!也就是说const和var一样,都是传地址,只不过一个在函数内不允许修改,
另一个是修改后影响调用的变量值
所以Move是传地址,而恰恰不是传值!
Move(const   Source;   var   Dest;   Count:   Integer);  
  Source   and   Dest都是指向一个首地址,  
  如  
  var                                                                 首地址  
      P:   Pointer;                                                P^  
      P:   PChar            &


相关文档:

Delphi 中的 Var buffer 开类型参数

以下是在网上收集的一些对无类型参数的说明.个人理解无类型变量就是一个指针.
象Delphi中function   Read(var   Buffer;   Count:   Longint):   Longint;   override;象Buffer这样没有类型的参数究竟应该怎么给参数????  
  这说明Buffer是通过地址方式传递的,一般说来只 ......

delphi三层架构

三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。
这样做的好处是层次分明,维护好做,系统资源也好分布式处理。
数据库层哪就不说了,用MSSQL、Orcale随你了,就是数据服务层
业务逻辑的话要分析清楚,就是中间层
界面,也叫客户端。这里就是得到数据和显示数据的部分了,不做其它处理。但是数据有 ......

在Delphi和VC中创建和调用动态链接库

大家在软件开发时经常会遇到这样的情况,在不同的开发环境中为实现一些功能相同的过程,由于开发所使用的设计语言不同,因而不得不编写许多类似的代码,甚至有时要在同一个开发环境不同项目中重写代码,这就造成了很大的资源浪费。动态链接库能较好的解决这个问题,重复利用代码将大大提高了开发效率。一般,用户在应用程序 ......

Delphi to Excel 一些方法

一)   使用动态创建的方法   
  
  首先创建   Excel   对象,使用ComObj: 
  var   ExcelApp:   Variant; 
  ExcelApp   :=   CreateOleObject(   'Excel.Application'  ......

DELPHI用户登录方案

3.2  用户登录方案
在进入一个系统时,必须先在登录窗体中输入正确的用户名和密码才能进入。这样可以确保系统的安全性和保密性,登录窗体的制作按照系统的大小及用处,可以分为不同的登录窗体样式,在系统第一次登录前,首先要对操作员信息进行相应的设置。本节将对登录窗体及操作员管理窗体的制作过程进行详细的说明 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号