Handbook之016:Delphi开放数组

开发数组,参数用const限定词,Slice为取部分长度的数组成员。也可以直接用 [] 的方式传参

 

代码如下:

unit Unit1;

interface

uses
  Winapi.Windows,
  Winapi.Messages,
  System.SysUtils,
  System.Variants,
  System.Classes,
  Vcl.Graphics,
  Vcl.Controls,
  Vcl.Forms,
  Vcl.Dialogs,
  Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses
  System.Diagnostics,
  System.Math;

type
  TDays = array of Integer;
//函数定义

procedure ShowOpenArrays(const AArrayInt: array of Integer);
var
  I: Integer;
begin
  for I := Low(AArrayInt) to High(AArrayInt) do
  begin
    Form1.Memo1.Lines.Add(‘开放数组[‘ + I.toString + ‘] := ‘ + AArrayInt[I].toString);
  end;
end;

//计时
procedure TForm1.Button1Click(Sender: TObject);
var
  m_ArrayInt: array[0..2] of Integer;
begin
  m_ArrayInt[0] := 6;
  m_ArrayInt[1] := 8;
  m_ArrayInt[2] := 12;
  //Slice为取数组部分成员
  ShowOpenArrays(Slice(m_ArrayInt, 2));
  ShowOpenArrays([33,44,520]);
end;

end.
时间: 2024-10-19 18:32:58

Handbook之016:Delphi开放数组的相关文章

Handbook之009:开放数组赋值和传参

开发数组的参数赋值和传参如下:   代码如下: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1:

Delphi Byte数组与String类型的转换

string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符,实际长度是字符长度+1,是Delphi的简单类型: Str[0]存储着字符的个数,

delphi char数组、string和Pchar的相互转换

因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组.string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原理. 1.string转换成pchar 可以使用pchar进行强制类型转换,也可以使用StrPCopy函数 var s:string; p,p1:PChar; begin s:='Hello Delphi'; p:=PChar(s); ShowMessage(p); p1:=StrAlloc(Len

Delphi Byte数组与Int String之间的相互转换

http://www.cnblogs.com/lcw/p/3352864.html string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符

delphi XE7 数组操作中缺少的find(POS)功能

delphi xe7 中对数组操作做了很多扩充,比如加入了类似字符串处理的功能. 例如,数组相加 var A: array of integer; B: TBytes = [1,2,3,4]; //Initialization can be done from declaration begin ... A:=[1,2,3]; // assignation using constant array A:=A+[4,5]; // addition - A will become [1,2,3,4,

delphi 动态数组的使用

var RowArray: array of string; i: integer; begin SetLength(ArrayRow, G2.ColumnCount-1); // 动态数组初始化 先定义长度 for i := 0 to G2.ColumnCount-1 do begin ArrayRow[i] := G2.Cells[i, G2.Selected]; // 将点击的行存入数组内,若比较不相等时,则post提交保存数据. end; end;

Handbook之013:静态数组

静态数组赋值方法如下:   代码如下: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TBut

Handbook之014:动态数组的复制

动态数组直接 := 赋值给新数组,那么这2个数组还是同一个数组,修改任意一个数组成员值,另外一个数组也跟随着变化. 如果动态数组用Copy赋值,那么则不会跟着随动变化   代码如下: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialo

Handbook之015:动态数组相加

动态数组支持直接相加,方法如下: 代码如下: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: T