![]() |
Zugriffversetzlung beim übergeben einer TSringlist
Hallo,
ich hab mir eine Funktion gebastelt die als Ergebnis eine TStringlist übergeben soll, allerdings erhalte ich dabei eine Zugriffsverletzung die funktion die als ergebnis die Tstringlist liefert:
Delphi-Quellcode:
wenn ich diese Funktion nun aufrufe läuft diese auch
function ripstring(Source: String): TStringlist;
var Mylist: TStringlist; Cut: string; begin Mylist:= TStringList.Create; Mylist.Duplicates:= dupIgnore; Mylist.Sorted:= true; .... if Cut <> '' then Mylist.Add(Cut); .... Result:= Mylist; Mylist.Free; end; durch und liefert das erwartete Ergebnis, wenn ich nun aber versuche die Stringliste an Tmplist zu übergeben erhalte ich eine Zugriffsverletzung:
Delphi-Quellcode:
hat jemand vielleicht eine idee?
var
Tmplist: TStringlist; begin .... Tmplist:= TStringList.Create; Tmplist.Addstrings(ripstring(MyString)); //oder auch //Tmplist.Assign(ripstring(MyString)); |
Re: Zugriffversetzlung beim übergeben einer TSringlist
Hallo endeffects,
Delphi-Quellcode:
bye
function ripstring(Source: String): TStringlist;
var Mylist: TStringlist; Cut: string; begin Mylist:= TStringList.Create; Mylist.Duplicates:= dupIgnore; Mylist.Sorted:= true; .... if Cut <> '' then Mylist.Add(Cut); .... Result:= Mylist; // hier wird nur ein Zeiger auf Mylist an Result übergeben ... Mylist.Free; // und hier gibts Du die Liste frei ... knall ... wenn Du auf das Result der Funktion zurückgreifst. end; Claus |
Re: Zugriffversetzlung beim übergeben einer TSringlist
oh danke für die hilfe :)
aber wie geb ich Myliste denn wieder frei, muss ich diese dann global deklarieren und nach dem übergeben der liste freigeben?
Delphi-Quellcode:
Tmplist.Addstrings(ripstring(MyString));
Mylist.free; |
Re: Zugriffversetzlung beim übergeben einer TSringlist
Hallo endeffects,
Code:
function ripstring(Source: String): TStringlist;
var Cut: string; begin Result := TStringList.Create; Result.Duplicates:= dupIgnore; Result.Sorted:= True; .... if Cut <> '' then Result.Add(Cut); .... end;
Code:
bye
procedure Irgendwas;
var MyList: TStringList; begin Mylist := ripstring('OK, bald ist Weihnachten ...'); Mylist.Free; // Stringliste freigeben end; Claus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz