既然你使用了面向对象的方式,那么就请全部通过面向对象的访问方式,不要夹杂面向过程。你应该继承一个TList,以下为简单示例。
type
  TSendRecord = class
  private
    FUrl: string;
    FImage: TMemoryStream;
  public
    constructor Create(const url: string);
    destructor Destroy; override;
    property Url: string read FUrl write FUrl;
    property Image: TMemoryStream read FImage;
  end;  TSendList = class(TList)
  private  public
    function CreateRecord(const url: string): TSendRecord;
    procedure DeleteRecord();
  end;implementation{ TSendRecord }constructor TSendRecord.Create(const url: string);
begin
  FImage := TMemoryStream.Create;
  FUrl := url;
end;destructor TSendRecord.Destroy;
begin
  FImage.Free;
end;{ TSendList }function TSendList.CreateRecord(const url: string): TSendRecord;
begin
  Result := TSendRecord.Create(url);
  Add(Result);
end;function TSendList.DeleteRecord(): Boolean;
begin
  Result := False;
  if Count = 0 then
    Exit;
  TObject(Items[0]).Free;
  Delete(0);
  Result := True;
end;end.使用首先建立一个全局的TSendList对象
var
  SendList: TSendList;SendList := TSendList.Create;然后通过以下2种方式加载Image。
SendList.CreateRecord('123').Image.LoadFromStream()
SendList.CreateRecord('123').Image.LoadFromFile()通过以下方式删除第一条记录。
SendList.DeleteRecord();使用SendList.Count可以直接获取"验证码个数"。这只是一个简单实例,按照自己需求,照着这个思路改吧。