当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 初用Delphi中的动态数组时,有些迷惑.1、动态数组是指针吗?动态数组通常会表现出指针功能,先看下面的例子:procedure DymArrTest();var A, B: array of Integer;begin SetLength(A, 3); A[0] := 0; B := A; B...
 

 

    摘要:摘自《delphi 程序设计大学教程(刘艺 编著 机械工业出版社2005)asp?boardid=6&id=300&page=1">http://www.liu-yi.net/bbs/dispbbs.asp?boardid=6&id=300&page=1计算机程序设计既是一门概念复杂,知识面广的理论课,也是一门面向实战、需要动手的实践课。几乎所有的初学编程者都梦想着......
 ·用程序模拟键盘和鼠标键盘     »显示摘要«
    摘要: 在windows大行其道的今天,windows界面程序受到广大用户的欢迎。对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制。有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入,而用程序来模拟键盘及鼠标的输入呢?答案是肯定的。这主要是通过两个api函数来实现的。     下面以delphi为例来介绍一下如何实现这两个功能。模拟键盘我们用keybd_event这个api函数,......


Ojbect Pascal动态数组浅说

初用delphi中的动态数组时,有些迷惑.

【程序编程相关:防止全局hook入侵Delphi版,20

1.动态数组是指针吗? 【推荐阅读:防止全局hook入侵Delphi版,20

【扩展信息:枚舉並設置界面的Caption之多語言方

动态数组通常会表现出指针功能,先看下面的例子:

procedure dymarrtest();

var

  a, b: array of integer;

begin

  setlength(a, 3);

  a[0] := 0;

  b := a;

  b[0] := 1;

  showmessage(inttostr(a[0]));

end;

在以上程序中,a.b数组指向的是相同的地址,所以改变了b[0],结果a[0]会等于1.

虽然动态数组暗含指针功能,但它的内存管理却是生存期管理类型,无需手工释放.

2.为什么改变形参却没有改变实参的值?

虽然动态数组会表现出指针的功能,在直接用它声明形参,改变形参值时,却是不会改变实参的,看下面的例子:

procedure dymarrparam(arr: array of integer);

var

  i: integer;

begin

  for i := 0 to length(arr) - 1 do


...   下一页
    摘要:unit unit1; interface uses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, stdctrls, extctrls; type tform1 = class(tform) timer1: ttimer;......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE