Jaymol
asked on
Passing TStrings without creating them.
Hi.
This is, I know, a silly question, but I'm sure I've seen it done.
If you have this procedure, (the procedure itself is irrelevant to this question).....
procedure DoStuff(sValues: TStrings);
.....rather than create a TString and add the lines so that you can send it to the procedure, I'm sure that I've seen something - not this - but like this....
DoStuff(['value1', 'value2', 'value3']);
(I know that that's a set, but it's something similar to that.)
Does anyone know what I mean?
John.
This is, I know, a silly question, but I'm sure I've seen it done.
If you have this procedure, (the procedure itself is irrelevant to this question).....
procedure DoStuff(sValues: TStrings);
.....rather than create a TString and add the lines so that you can send it to the procedure, I'm sure that I've seen something - not this - but like this....
DoStuff(['value1', 'value2', 'value3']);
(I know that that's a set, but it's something similar to that.)
Does anyone know what I mean?
John.
sounds strange, are u sure that parameter of TStrings type?
ASKER
Yes.
use this declaration
procedure DoStuff(strings : array of String);
then you can use
DoStuff(['value1', 'value2', 'value3']);
for iterating use
for i := low(strings) to high(strings) do ...
meikl ;-)
procedure DoStuff(strings : array of String);
then you can use
DoStuff(['value1', 'value2', 'value3']);
for iterating use
for i := low(strings) to high(strings) do ...
meikl ;-)
ASKER
Thanks, but that's not what I want. I could do that no problem but I want to know how to pass a TString in that manner.
John.
John.
Don't think it possible :)
ASKER
Sorry to disagree, but myself and a colleague are sure we've seen this.
John.
John.
so, I will like to see it too
Was it perhaps an overloaded function?
procedure DoThings(value: TStrings);overload;
procedure DoThings(value: array of strings);overload;
DoThings(value: array of strings);
var
iList: TStrings;
begin
//
end;
reddarin
procedure DoThings(value: TStrings);overload;
procedure DoThings(value: array of strings);overload;
DoThings(value: array of strings);
var
iList: TStrings;
begin
//
end;
reddarin
no, you may misseen this,
or you see a method for adding in an already created Tstring-Object
or you see a method for adding in an already created Tstring-Object
ASKER
No. I've seen what I've asked how to do - honestly!
John.
John.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
good point, reddarin ;-)
ASKER
meikl : nice.
kretzschmar,
I'm curious or maybe simple ninded but how do you release the TStringlist in the
Function GetStringList(Strings : array of string) : TStringList;
var i : Integer;
begin
Result := TstringList.Create;
for i := low(strings) to high(strings) do
Result.add(strings[i]);
end;
?
I'm curious or maybe simple ninded but how do you release the TStringlist in the
Function GetStringList(Strings : array of string) : TStringList;
var i : Integer;
begin
Result := TstringList.Create;
for i := low(strings) to high(strings) do
Result.add(strings[i]);
end;
?
martin_g,
i didn't free it, because it is used later,
therefore i have added this sentence
>keep in mind you must free the stringlist after
meikl ;-)
i didn't free it, because it is used later,
therefore i have added this sentence
>keep in mind you must free the stringlist after
meikl ;-)
I guess I just need an example. What I was thinking, probably in error : ) is that a stringlist created within a function had to be freed within that function.
To free the function result stringlist, would you do something like the following:
Procedure DoSomething;
var
myStringlist:TStringlist;
begin
MyStringList:=GetStringLis t(MyString s);
>>MyStringList.Free;
end;
Does MyStringlist.Free free the GetStringList Tstringlist result?
To free the function result stringlist, would you do something like the following:
Procedure DoSomething;
var
myStringlist:TStringlist;
begin
MyStringList:=GetStringLis
>>MyStringList.Free;
end;
Does MyStringlist.Free free the GetStringList Tstringlist result?
>Does MyStringlist.Free free the GetStringList Tstringlist result?
yes
yes
ASKER
Thanks guys.