Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   noch was zu: "Nach 20/30 starts aus der IDE speicher voll" (https://www.delphipraxis.net/213901-noch-zu-nach-20-30-starts-aus-der-ide-speicher-voll.html)

himitsu 17. Okt 2023 08:56

AW: noch was zu: "Nach 20/30 starts aus der IDE speicher voll"
 
Darum verwende ich z.B. statt einer StringList (Rückgabetyp besser TStrings) immer öfters Arrays.

Sowohl mit TStrings/TStringList, als auch mit dem String-Array, lassen sich viele gleiche Dinge tun,
aber Variante mit den Objekten hat eben auch Nachteile.
Delphi-Quellcode:
for var S in getSL do // egal ob StringArray oder StringList (nur am Speicherleck ist man dann selber Schuld)
  ShowMessage(S);

SL.Clear;
SL.AddStrings(getSL);
Memo.Lines.AddStrings(getSL);

A := SL.ToStringArray;

...


Interfaces ....

Ja, es gibt von Microsoft ein IStrings, aber das ist mit unserem TStrings nicht kompatibel,
mit IStringsAdapter macht es keinen Spaß
und von IXPStrings wollen wir garnicht erst reden.

schorsch666 17. Okt 2023 09:56

AW: noch was zu: "Nach 20/30 starts aus der IDE speicher voll"
 
moin in die runde,
erstmal, cool, so viele antworten, tks..

und - ohne jetzt auf die einzelnen punkte naeher einzugehen - so wirklich schlauer bin ich jetzt zwar auch nicht, aber es handelt sich hier um uralte funktionen, die ich mittlerweile ganz anders loese. es hat mich halt einfach mal interessiert..

und dass man keine objekte zurueckgeben soll, hmmm.. - naja, ich mach das sehr gerne. auch habe ich ne menge stringlisten, denen ich objekte anhaenge, weil man dann auf diese so schoen mit dem namen zugreifen kann.

ich faends halt super, wenn es ein "modul" oder irgendwas gaebe, in welchem man ganz genau sehen koennte, "welche variable wurde wo nicht freigegeben"..

wuensch euch was..

..de Schorsch

himitsu 17. Okt 2023 10:07

AW: noch was zu: "Nach 20/30 starts aus der IDE speicher voll"
 
Zitat:

nicht soll
Es wird nicht grade empfohlen, aber verboten ist es nicht.

ABER von Vorteil wäre es, wenn man dem Funktionsnamen dieses Verhalten ansieht.

Delphi-Quellcode:
//var FSL: TStringList;
function GetSL: TStrings;
begin
  Result := FSL;
  Result.Clear;
  Result.Add('blub');
end;

SL := GetSL;
...



function CreateSL: TStrings; // MakeSL oder sowas
begin
  Result := TStringList.Create;
  Result.Add('blub');
end;

SL := CreateSL;
...
SL.Free;

// bezüglich Fehlerbehandlung Try-Except/Finally siehe oben
Delphi-Quellcode:
procedure GetSL(SL: TStrings);
begin
  SL.Clear; // ohne Clear, wenn man optional anhängen können möchte (außerhalb Clear oder nicht)
  SL.Add('blub');
end;

Rolf Frei 17. Okt 2023 13:10

AW: noch was zu: "Nach 20/30 starts aus der IDE speicher voll"
 
[Hier stand Blödsinn oder nicht genau das was gesucht wurde]

haentschman 18. Okt 2023 07:18

AW: noch was zu: "Nach 20/30 starts aus der IDE speicher voll"
 
Moin...8-)
Zitat:

"welche variable wurde wo nicht freigegeben"
...nennt sich FastMM. :zwinker: Nicht die Delphi Version sondern das Original. Da kannst du dir die Leaks anschauen (gespeicherte Datei) incl. der Zeile der Erzeugung. :wink:
https://github.com/pleriche/FastMM5

schorsch666 19. Okt 2023 10:30

AW: noch was zu: "Nach 20/30 starts aus der IDE speicher voll"
 
Danke, werde ich mir mal angucken.

uebrigens wegen der benamsung: das war doch nur fuer euch als beispiel. natuerlich heissen meine funktionen "get, set, create, MachDiesUndMachDas" ;-)

..de Schorsch


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz