易截截图软件、单文件、免安装、纯绿色、仅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 列出目录下的文件

function ListFiles(Dir: String):TStrings;
var
FSearchRec: TSearchRec;
FileList: TStrings;
FindResult: Integer;
begin
if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';
FileList :=TStringList.Create;
FindResult:=FindFirst(Dir+'*.*,faAnyFile+faDirectory,FSearchRec);
while FindRes ......

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

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

DELPHI用户登录方案

3.2  用户登录方案
在进入一个系统时,必须先在登录窗体中输入正确的用户名和密码才能进入。这样可以确保系统的安全性和保密性,登录窗体的制作按照系统的大小及用处,可以分为不同的登录窗体样式,在系统第一次登录前,首先要对操作员信息进行相应的设置。本节将对登录窗体及操作员管理窗体的制作过程进行详细的说明 ......

Delphi操作注册表的一般步骤

Delphi操作注册表步骤如下:
-------------------------------------
1)在Uses中添加Registry单元;
2)声明TRegistry对象;
3)创建TRegistry对象;
4)指定根键;
----------------try------------------
5)打开需要操作的主键;
6)读写操作;
7)保存并关闭主键;
--------------finally----------------
......

Delphi操作INI文件的一般步骤

Delphi操作INI文件步骤如下:
-------------------------------------
1)在Uses中添加iniFile单元;
2)声明TiniFile对象;
3)创建TiniFile对象;
----------------try------------------
4)INI文件读写操作;
--------------finally----------------
5)释放TiniFile对象;
---------------end--------------- ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号