关于ListBox1.items.AddObject('dd',Tobject(pnode)),然后我要清除ListBox时,总出错误 ListBox1.items.object[i].free;,清帮忙看一下好吗?
就在删除对象的时候总是除错误????——————
procedure TfmSetSZSL_main.aDelTreeExecute(Sender: TObject);
var
i:integer;
begin
inherited;
for i:=0 to self.ListBox1.Items.Count-1 do
self.ListBox1.Items.Objects[0].free; //出错误
// 环城这样也出错self.ListBox1.Items.Objects[i].free;
self.ListBox1.Items.Clear;
end;
procedure TfmSetSZSL_main.amaketreeExecute(Sender: TObject); //add Tobject to ListBox1
var
pnode:Tpnode;
begin
inherited;
qryTMP.Close;
qryTMP.SQL.Text:='Select * from sys';
qryTMP.Open;
while not qryTMP.Eof do
begin
new(pnode);
pnode.szmc:=qryTMP.fieldbyname('aa').AsString;
pnode.szdm:=qryTMP.fieldbyname('bb').AsString;
ListBox1.Items.AddObject(pnode.szmc,Tobject(Pnode));
qryTmp.Next;
end;
end;
就在删除对象的时候总是除错误????——————
procedure TfmSetSZSL_main.aDelTreeExecute(Sender: TObject);
var
i:integer;
begin
inherited;
for i:=0 to self.ListBox1.Items.Count-1 do
self.ListBox1.Items.Objects[0].free; //出错误
// 环城这样也出错self.ListBox1.Items.Objects[i].free;
self.ListBox1.Items.Clear;
end;
procedure TfmSetSZSL_main.amaketreeExecute(Sender: TObject); //add Tobject to ListBox1
var
pnode:Tpnode;
begin
inherited;
qryTMP.Close;
qryTMP.SQL.Text:='Select * from sys';
qryTMP.Open;
while not qryTMP.Eof do
begin
new(pnode);
pnode.szmc:=qryTMP.fieldbyname('aa').AsString;
pnode.szdm:=qryTMP.fieldbyname('bb').AsString;
ListBox1.Items.AddObject(pnode.szmc,Tobject(Pnode));
qryTmp.Next;
end;
end;
for i:=0 to self.ListBox1.Items.Count-1 do
Tpnode(ListBox1.Items.Objects[0]).free; //出错误
// 环城这样也出错self.ListBox1.Items.Objects[i].free;
self.ListBox1.Items.Clear;
for i:=0 to self.ListBox1.Items.Count-1 do
begin
if Assigned(ListBox1.Items.Objects[0])) then
Tpnode(ListBox1.Items.Objects[0]).free; //这样能更好点!
end;
self.ListBox1.Items.Clear;
type
Ppnode:^Tpnode;
var
i:integer;
begin
inherited;
for i:=self.ListBox1.Items.Count-1 down to 0 do
Dispose(PPnode(self.ListBox1.Items.Objects[i]));
self.ListBox1.Items.Clear;
end;
type
Ppnode:^Tpnode;
var
i:integer;
begin
inherited;
for i:=self.ListBox1.Items.Count-1 down to 0 do
Dispose(PPnode(self.ListBox1.Items.Objects[i]));
self.ListBox1.Items.Clear;
end;