关于delphi的low()和High()问题
本帖最后由 乐yi忘忧 于 2012-7-16 14:09 编辑这是改代码运行前的样子
这是运行后的样子
我想知道为什么使用Low()和High()后返回值是0,-1……不理解,求指点
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
edt1: TEdit;
btn1: TButton;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
btn2: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Num:array of string;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
k,i:Integer;
begin
edt1.Text:=' ';
for i:=0 to 5 do
begin
k:=Random(90);
edt1.Text:=IntToStr(k)+','+edt1.Text;
end;
edt1.Text:=copy(edt1.Text,0,Length(edt1.Text)-2);
end;
procedure TForm1.btn2Click(Sender: TObject);
begin
lbl1.Caption:=IntToStr(Low(Num));
lbl2.Caption:=IntToStr(High(Num));
lbl3.Caption:=IntToStr(Length(Num));
end;
end.
low() 返回在一定范围内的最低值, 或者序数最低值。
high() 则相反。
这里哥们的问题是,忘记给 Num 复制了。。。。。。
这是 Delphi 帮助文档中的栗子:
function Sum( var X: array of Double): Double;
var
I: Word;
S: Real;
begin
S := 0; { Note that open array index range is always zero-based. }
for I := 0 to High(X) do S := S + X;
Sum := S;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
List1: array of Double;
List2: array of Double;
X: Word;
S, TempStr: string;
begin
for X := Low(List1) to High(List1) do
List1 := X * 3.4;
for X := Low(List2) to High(List2) do
List2 := X * 0.0123;
Str(Sum(List1):4:2, S);
S := 'Sum of List1: ' + S + #13#10;
S := S + 'Sum of List2: ';
Str(Sum(List2):4:2, TempStr);
S := S + TempStr;
MessageDlg(S, mtInformation, , 0);
end;
小甲鱼 发表于 2012-7-15 14:43 static/image/common/back.gif
low() 返回在一定范围内的最低值, 或者序数最低值。
high() 则相反。
这里哥们的问题是,忘记给 Num 复制 ...
对哦,嘿嘿,谢谢鱼哥:lol
页:
[1]