Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
10. Mai 2011
Korrekt, das hatte ich ja auch bereits 2 mal erklärt ;)
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
9. Mai 2011
Die Frage verstehe ich nicht. Je nachdem, ob die Methode öffentlich ist oder nicht, kann sie ja von außen aufgerufen werden. Ist sie nur intern, kannst Du natürlich auch den ResultList-Parameter weglassen und stattdessen gleich die Stringliste der Klasse dafür einsetzen.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
9. Mai 2011
Du setzt sie doch vorher auf nil, wie willst Du sie denn wieder freigeben? Wie gesagt, wenn Du die Befehle umdrehst zeigt Result dann nach dem Freigeben auf eine nicht mehr existente Instanz, das ist also auch nicht die Lösung. Versuch es doch einmal so:
procedure TProcessHandler.GetAllRunningProcs(ResultList: TStrings);
// returns all currently running processes
var
s: string;
// User:...
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
9. Mai 2011
Nochmal: GetAllRunningProcs erzeugt je Aufruf eine neue Instanz von TStringlist. Ich sehe aber nicht, wo diese wieder freigegeben wird. Daher mein Rat, die Liste außerhalb zu erzeugen und an die Routine zu übergeben, dann kannst Du sie auch wieder freigeben, da Du es nur mit einer Instanz zu tun hast.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
9. Mai 2011
Und was hat das mit der oben geposteten Routine zu tun?
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
9. Mai 2011
Überleg einmal, was Du hier machst. Selbst, wenn Du es umdrehst, bekommst Du Kummer, da ja dann Result freigegeben wurde. Mach besser aus der Funktion eine Prozedur, die die Stringliste als Parameter entgegennimmt und befüllt.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
9. Mai 2011
Es scheint, dass Du immer wieder Stringlisten anlegst, ohne diese wieder freizugeben.