动态数组的问题(100分)

  • 主题发起人 主题发起人 hary90
  • 开始时间 开始时间
H

hary90

Unregistered / Unconfirmed
GUEST, unregistred user!
定义了一个记录类型。
TInvInfo = Record
ID : String
//物料ID
No : String
//物料编号
Name : string
//物料名称
CatName :string
//类型
Param:string
//规格
UnitID: String
//单位编号
UnitName:string
//单位名称
Qty:double
//数量
end;


然后,我想定义一个动态数组,数组类型是TInvInfo的:
var
arry_Inv : Array of TInvInfo;
begin

SetLength(arry_Inv,2)
//这里就编译不通过,应该是类型不匹配的原因吧。

end;
请问用什么办法可以定义记录类型的动态数组呢?
 
用列表tlist存储结构提指针就可以了,不用数组吧
定义pTInvInfo =^TInvInfo ;
你看一下帮助就知道了.

你那样定义也是没有问题的,怎么会编译不过???
 
可以编译过的,看一下是不是其它代码编译不过!
 
是编译不过,提示:incompatible types
 
把SetLength()注释就可以通过。
 
我说了,可以编译的,也可以运行,检查你的标点符号.
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

Type
TInvInfo = Record
ID : String
//物料ID
No : String
//物料编号
Name : string
//物料名称
CatName :string
//类型
Param:string
//规格
UnitID: String
//单位编号
UnitName:string
//单位名称
Qty:double
//数量
end;

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

var
Form1: TForm1;
arry_Inv : Array of TInvInfo;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(arry_Inv,2);
arry_Inv[0].Name:='bbscom';
ShowMessage(arry_Inv[0].Name);
end;

end.


QQ:136293586
 
多人接受答案了。
 
后退
顶部