既然你使用了面向对象的方式,那么就请全部通过面向对象的访问方式,不要夹杂面向过程。你应该继承一个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可以直接获取"验证码个数"。这只是一个简单实例,按照自己需求,照着这个思路改吧。
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可以直接获取"验证码个数"。这只是一个简单实例,按照自己需求,照着这个思路改吧。
private public
function CreateRecord(const url: string): TSendRecord;
function DeleteRecord(): Boolean;
end;