鱼C论坛

 找回密码
 立即注册
查看: 2546|回复: 2

关于delphi的low()和High()问题

[复制链接]
发表于 2012-7-15 09:28:03 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 乐yi忘忧 于 2012-7-16 14:09 编辑

1.JPG 这是改代码运行前的样子

2.JPG 这是运行后的样子




我想知道为什么使用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 帮助文档中的栗子:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-15 09:28:04 | 显示全部楼层
low() 返回在一定范围内的最低值, 或者序数最低值。
high() 则相反。
这里哥们的问题是,忘记给 Num 复制了。。。。。。

这是 Delphi 帮助文档中的栗子:

  1. function Sum( var X: array of Double): Double;

  2. var
  3.   I: Word;
  4.   S: Real;
  5. begin
  6.   S := 0; { Note that open array index range is always zero-based. }
  7.   for I := 0 to High(X) do S := S + X[I];
  8.   Sum := S;
  9. end;

  10. procedure TForm1.Button1Click(Sender: TObject);

  11. var
  12.   List1: array[0..3] of Double;
  13.   List2: array[5..17] of Double;
  14.   X: Word;
  15.   S, TempStr: string;
  16. begin
  17.   for X := Low(List1) to High(List1) do
  18.       List1[X] := X * 3.4;
  19.   for X := Low(List2) to High(List2) do
  20.       List2[X] := X * 0.0123;
  21.   Str(Sum(List1):4:2, S);
  22.   S := 'Sum of List1: ' + S + #13#10;
  23.   S := S + 'Sum of List2: ';
  24.   Str(Sum(List2):4:2, TempStr);

  25.   S := S + TempStr;
  26.   MessageDlg(S, mtInformation, [mbOk], 0);

  27. end;
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-15 15:39:42 | 显示全部楼层

对哦,嘿嘿,谢谢鱼哥:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 16:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表