From db19d73ec0309d5d3a5032eebbca0edd050ece7a Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 13 Feb 2016 11:03:51 +0000 Subject: [PATCH] * Add ClearFirst parameter to AddStrings (bug ID 29630) git-svn-id: trunk@33092 - --- rtl/objpas/classes/classesh.inc | 2 ++ rtl/objpas/classes/stringl.inc | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc index 828ce9aa42..eb8137242a 100644 --- a/rtl/objpas/classes/classesh.inc +++ b/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; diff --git a/rtl/objpas/classes/stringl.inc b/rtl/objpas/classes/stringl.inc index 448878d38a..6e045a4aeb 100644 --- a/rtl/objpas/classes/stringl.inc +++ b/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