数组加入到TLIST中的问题!(200分)

  • 主题发起人 主题发起人 snb_ywx
  • 开始时间 开始时间
S

snb_ywx

Unregistered / Unconfirmed
GUEST, unregistred user!
type
TProductFieldList=(Midx,Idx,Barcode,DepotaddId,countx,RealCount);
TProductField=array[Midx..RealCount] of Variant;

ProductOp=class
private
FProducts:Tlist;
FProductOther:Tlist;
procedure AddRecord(SourceStr:string);
public
procedure LoadFromFile(FileName:string);
procedure ss;
constructor Create
overload;
destructor Destroy
override;
Property Products:TList read FProducts;
property ProductOther:TList read FProductOther;

end;

procedure TProductOp.AddRecord(SourceStr:string);
var
FFieldv:TProductFieldList;
i,l:integer;
vProduct:TProductField;
PProduct:^TProductField;
vsTemp:string;
begin
FFieldv:=Midx;
l:=length(SourceStr);
for i:=1 to l do
if ((SourceStr=',') or (i=l)) then
begin
vProduct[FFieldv]:=vsTemp;
vsTemp:='';
if FFieldv=RealCount then break
else FFieldv:=Succ(FFieldv);
end
else if SourceStr<>' ' then vsTemp:=vsTemp+SourceStr;
//PProduct:= @vProduct;

if vProduct[Midx]='' then FProductOther.Add(@vProduct)
else FProducts.Add(@vProduct);
//FProducts.Count
PProduct:=FProducts[FProducts.Count-1];
showmessage(PProduct^[barcode])
//此时间数据内有数据!
end;

以后再防问就防问不到了,问:
1、数组型变量离开这个过程之后是否被清空;
2、怎么样才能不被清空;
 
没人用过吗?? [:(]
 
var
vProduct:TProductField

//我的理解是应该是在栈分配的,所以当过程推出之后也就释放了.所以你再访问就访问不到
//你可以定义为一个指针类型,使用new分配内存,再添加进去.记得推出要释放内存dispose
 
应该会被清空。
你还想在什么时候访问呢?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
682
import
I
后退
顶部