StringList使用
在Delphi中,如果程序需要动态创建大量的对象,那么我们可以利用StringList对象来管理这些动态生成的对象。具体步骤如下:
1、创建StringList对象: OBJ := TStringList.Create;
2、保存动态生成的对象: OBJ.AddObject('标识','对象名');
3、调用生成的对象: (OBJ.Objects[序号/OBJ.IndexOf('标识')] as 对象类型).方法或属性 或: 对象类型(OBJ.Objects[序号/OBJ.IndexOf('标识')]).方法或属性
4、释放动态生成的对象: (OBJ.Objects[序号/OBJ.IndexOf('标识')] as 对象类型).Free; 对象类型(OBJ.Objects[序号/OBJ.IndexOf('标识')]).Free;
释放对象后记得要删除StringList里对应的记录: OBJ.Delete(序号/OBJ.IndexOf('标识'));
5、StringList的释放: if Assigned(OBJ) then OBJ.Free;
查询是否存在
如果在StringList里面查询某一项是否存在,我们可以用下面的例子进行:
var S : TStrings; begin S := TStringList.Create; S.Add('中国'); S.Add('人民'); S.Add('真伟大'); if S.IndexOf('中国') <> -1 then begin Showmessage('包含"中国"这个字符串'); end; S.Free; end;
排序查找
如果在StringList里面进行排序并查找,可以用下面的方法:
procedure TForm1.FormCreate(Sender: TObject); var MyList: TStringList; Index: Integer; begin MyList := TStringList.Create; try MyList.Add('Animals'); MyList.Add('Flowers'); MyList.Add('Cars'); MyList.Sort; { Find will only work on sorted lists! } if MyList.Find('Flowers', Index) then begin ListBox1.Items.AddStrings(MyList); Label1.Caption := 'Flowers has an index value of ' + IntToStr(Index); end; finally MyList.Free; end; end;
-END-