Ver código fonte

* Add ClearFirst parameter to AddStrings (bug ID 29630)

git-svn-id: trunk@33092 -
michael 9 anos atrás
pai
commit
db19d73ec0
2 arquivos alterados com 20 adições e 2 exclusões
  1. 2 0
      rtl/objpas/classes/classesh.inc
  2. 18 2
      rtl/objpas/classes/stringl.inc

+ 2 - 0
rtl/objpas/classes/classesh.inc

@@ -664,7 +664,9 @@ type
     function AddObject(const Fmt: string; Args : Array of const; AObject: TObject): Integer; overload;
     procedure Append(const S: string);
     procedure AddStrings(TheStrings: TStrings); overload; virtual;
+    procedure AddStrings(TheStrings: TStrings; ClearFirst : Boolean); overload; 
     procedure AddStrings(const TheStrings: array of string); overload; virtual;
+    procedure AddStrings(const TheStrings: array of string; ClearFirst : Boolean); overload; 
     Procedure AddText(Const S : String); virtual;
     procedure Assign(Source: TPersistent); override;
     procedure BeginUpdate;

+ 18 - 2
rtl/objpas/classes/stringl.inc

@@ -720,13 +720,15 @@ end;
 
 
 
-Procedure TStrings.AddStrings(TheStrings: TStrings);
+Procedure TStrings.AddStrings(TheStrings: TStrings; ClearFirst : Boolean);
 
 Var Runner : longint;
 
 begin
   beginupdate;
   try
+    if ClearFirst then
+      Clear;
     For Runner:=0 to TheStrings.Count-1 do
       self.AddObject (Thestrings[Runner],TheStrings.Objects[Runner]);
   finally
@@ -734,13 +736,27 @@ begin
   end;
 end;
 
+Procedure TStrings.AddStrings(TheStrings: TStrings);
+
+begin
+  AddStrings(TheStrings,False);
+end;
+
 Procedure TStrings.AddStrings(const TheStrings: array of string);
 
+begin
+  AddStrings(TheStrings,False);
+end;
+
+Procedure TStrings.AddStrings(const TheStrings: array of string; ClearFirst : Boolean);
+
 Var Runner : longint;
 
 begin
+  beginupdate;
   try
-    beginupdate;
+    if ClearFirst then
+      Clear;
     if Count + High(TheStrings)+1 > Capacity then
       Capacity := Count + High(TheStrings)+1;
     For Runner:=Low(TheStrings) to High(TheStrings) do