Jeg bryder mig i det hele taget ikke om idéen at lade et object kreere et
andet sted end der hvor det bruges.
Jeg mener helt klart at man (for overskuelighedens skyld) bør kreere sin
StringList hvor den bruges og derefter nedlægge den igen samme sted.
Dette kan nemt gøres ved blot at overføre den som en parameter...
Procedure Test(StrList : TStringList);
Begin
if not assigned(StrList) then exit;
StrList.Add('Test');
End;
Det behøver ikke engang være en var-parameter, eftersom man i virkeligheden
kun overfører en pointer til listen, men det ville dog øge læseligheden af
koden hvis der blev benyttet en var-parameter. Fordelen i IKKE at bruge en
var-parameter er så at man burde (har ikke lige testet det lige nu) kunne
overføre eksempelvis en Listbox's Items-property (denne er erklæret som en
TStrings, og ikke en TStringList) og en var-parameter skal jo være af
nøjagtig samme type før det går godt...
Ovenstående er jo mindst lige så saimpelt at bruge som en funktion der
returnerer en StringList.
.....
MyStrings := TStringList.Create;
Test(MyStrings);
//Gør noget med MyStrings
MyStrings.Free;
.....
Håber ikke dette var alt for kludret at forstå... ???
Barf...
- Hardware: The part you kick.
"Mads M." <wa
up@punkass.com> wrote in message
news:okvg3u80jhmqmifuubrqjhpi929c6v6khc@4ax.com...
> Hej NG
>
> Jeg kunne godt tænke mig at lave en funktion som returnerer en
> Stringlist, men det driller lidt. F.eks. deklarationen:
>
> Function test(Invar : String): TStringlist
>
> Skal man create' Result variablen eller hur?
>
> /Mads N