1.stringlist添加记录
New(Record);
Record^.Name := '1';
Record^.Unit := '克';
stringlist1.AddObject(Record^.Name,Pointer(Record));2.现在需要删除stringlist中的记录应该怎么办?
以下这种方法不行!
stringlist1.Objects[3].Free;
stringlist1.Delete(3);这个删除应该怎么做?
New(Record);
Record^.Name := '1';
Record^.Unit := '克';
stringlist1.AddObject(Record^.Name,Pointer(Record));2.现在需要删除stringlist中的记录应该怎么办?
以下这种方法不行!
stringlist1.Objects[3].Free;
stringlist1.Delete(3);这个删除应该怎么做?
stringlist1.delete(3);
stringlist1.Add('222')
stringlist1.Add('333')
stringlist1.Delete(2);
这样可以删除第三个。
关键是你用的是addobject,用stringlist1.Delete(3);是不行的。
直接用stringlist1.delete(3);就好了。
肯定是可以的。
看是否删除成功的效果的话,你只需要用放一个MEMO上去,然后memo1.lines:=stringlist1;就可以知道是否删除成功了。
以下是我测试的代码
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; pw=^mm; mm=record name:string;
number:string;
end;var
Form1: TForm1;
x:tstringlist;
w:pw;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
begin
x:= tstringlist.Create;
x.Add('1111');
x.Add('2222');
memo1.Lines:=x;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
new(w);
w^.name:='test';
x.AddObject(w^.name, pointer(w));
memo1.Lines:=x;
end;procedure TForm1.Button4Click(Sender: TObject);
begin
x.Delete(2);
memo1.Lines:=x;
end;end.
stringlist1.delete(3);