|
@@ -975,20 +975,23 @@ Var
|
|
I: Integer;
|
|
I: Integer;
|
|
|
|
|
|
begin
|
|
begin
|
|
- if FOwnsObjects then
|
|
|
|
|
|
+ if FromIndex < FCount then
|
|
begin
|
|
begin
|
|
- For I:=FromIndex to FCount-1 do
|
|
|
|
|
|
+ if FOwnsObjects then
|
|
|
|
+ begin
|
|
|
|
+ For I:=FromIndex to FCount-1 do
|
|
|
|
+ begin
|
|
|
|
+ Flist^[I].FString:='';
|
|
|
|
+ freeandnil(Flist^[i].FObject);
|
|
|
|
+ end;
|
|
|
|
+ end
|
|
|
|
+ else
|
|
begin
|
|
begin
|
|
- Flist^[I].FString:='';
|
|
|
|
- freeandnil(Flist^[i].FObject);
|
|
|
|
|
|
+ For I:=FromIndex to FCount-1 do
|
|
|
|
+ Flist^[I].FString:='';
|
|
end;
|
|
end;
|
|
- end
|
|
|
|
- else
|
|
|
|
- begin
|
|
|
|
- For I:=FromIndex to FCount-1 do
|
|
|
|
- Flist^[I].FString:='';
|
|
|
|
|
|
+ FCount:=FromIndex;
|
|
end;
|
|
end;
|
|
- FCount:=FromIndex;
|
|
|
|
if Not ClearOnly then
|
|
if Not ClearOnly then
|
|
SetCapacity(0);
|
|
SetCapacity(0);
|
|
end;
|
|
end;
|
|
@@ -1184,6 +1187,8 @@ begin
|
|
begin
|
|
begin
|
|
if NewCapacity = 0 then
|
|
if NewCapacity = 0 then
|
|
begin
|
|
begin
|
|
|
|
+ if FCount > 0 then
|
|
|
|
+ InternalClear(0,True);
|
|
FreeMem(FList);
|
|
FreeMem(FList);
|
|
FList := nil;
|
|
FList := nil;
|
|
end else
|
|
end else
|