<p>Am 31.03.2012 20:27 schrieb "Andrew Haines" <<a href="mailto:AndrewD207@aol.com">AndrewD207@aol.com</a>>:<br>
><br>
> I was thinking about TStrings possibly having an overloaded function Add<br>
> or AddStrings where the argument is an array of string?<br>
><br>
> procedure Add(strs: array of string); overload;<br>
> or<br>
> procedure AddStrings(strs: array of string); overload;<br>
><br>
> Specifically I want this for TProcess.Parameters. since it's a bit of a<br>
> pain to type<br>
> Proc.Parameters.Add('-Arg1');<br>
> Proc.Parameters.Add('Arg1_Value');<br>
> Proc.Parameters.Add('-Arg2');<br>
> Proc.Parameters.Add('Arg2_Value');<br>
> Proc.Parameters.Add('-Arg3');<br>
> Proc.Parameters.Add('Arg3_Value');<br>
><br>
> even "with Proc.Parameters do begin Add(n); ... end; " is a bit ugly<br>
> when parameters have arguments.<br>
><br>
> when I could type:<br>
><br>
> Proc.Parameters.Add(['-Arg1', 'Arg1_Value']);<br>
> Proc.Parameters.Add(['-Arg2', 'Arg2_Value']);<br>
> Proc.Parameters.Add(['-Arg3', 'Arg3_Value']);<br>
><br>
> or even<br>
><br>
> Proc.Parameters.Add(['-Arg1','Arg1_Value','-Arg2','Arg2_Value','-Arg3',<br>
> 'Arg3_Value']);<br>
><br>
> A less generic alternative would be adding a procedure to TProcess<br>
> AddArgs(args: array of string);<br>
><br>
> Is this a good idea?<br>
><br>
> If yes then I can create a patch.</p>
<p>Independently of whether a patch will be accepted or not, you can do the following beginning with 2.6.0:</p>
<p>=== source begin ===</p>
<p>type<br>
  TStringsHelper = class helper for TStrings<br>
   procedure AddStrings(const aStr: array of String); overload; // this is needed if we don't want to hide the original AddStrings method<br>
  end;</p>
<p>procedure TStringsHelper.AddStrings(const aStr: array of String);<br>
var<br>
  s: String;<br>
begin<br>
  for s in aStr do<br>
    Add(s);<br>
end;</p>
<p>// anywhere you want to use AddStrings with a TStrings instance or one of its descendants you need to put the unit of TStringsHelper into the uses-clause and then do<br>
YourTStringsVar.AddStrings(['Hello', 'World']);<br></p>
<p>=== source end ===</p>
<p>You can do something similar for TProcess.</p>
<p>Regards,<br>
Sven</p>