AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Abort verursacht MemoryLeak ?

Ein Thema von Int3g3r · begonnen am 22. Sep 2020 · letzter Beitrag vom 25. Sep 2020
 
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Abort verursacht MemoryLeak ?

  Alt 25. Sep 2020, 07:49
Zitat:
.. wenn Du exit anstelle von abort verwenden würdest:
Exit verlässt nur die aktuelle Methode. Beim Beispiel unten würden "erstelleMail" und "sendMail" ausgeführt.
Darum verwende ich abort und nicht exit. Klar könnte ich jede Methode als Funktion schreiben und danach ein true/false zurückgeben. Dann kann ich aber nicht auf mehere Feher in der funktion reagieren.

Delphi-Quellcode:
// Dies ist imaginärer Code nur zum verdeutlichen warum ich Abort verwende:
procedure TForm1.Button1Click(Sender: TObject);
begin
  setParameter;
  erstelleMail;
  sendMail;
end;

procedure TForm1.erstelleMail;
begin
  //Mail Erstellen
end;

procedure TForm1.sendMail;
begin
  //Mail Senden
end;

procedure TForm1.setParameter;
begin
  //Parameter Setzen
  exit;
end;

Zitat:
Fehlerbehandlung mit ShowMessage, dafür sollte man auch gesteinigt werden.
Gehe ich davon aus. Leider Programmiert mein Ausbildner genau so.
Wie mache ich es besser ? Ein Bespiel / Tutorial wäre hilfreich.


Zitat:
wo ist denn z.B. mailListText definiert?
Warum ist das keine lokale Variable?
mailListText ist ein Klassenmember. Benötige ich nur 1x und ich muss von mehreren prozeduren/funktionen innerhalb der Klasse darauf zugreifen können.


Einmal über das Problem schlafen und man findet das Problem in 10 Minuten ....

Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var list: TStringList;
begin
  list := TStringList.Create;
  list.Add('C:\...\bin\Win32\attach\Leaks.PNG');
  list.Add('C:\...\bin\Win32\attach\recompile.PNG');
  list.Add('C:\...\bin\Win32\attach\TelSpick.exe');
  list.Add('C:\...\bin\Win32\attach\Unbenannt.PNG');

  Mail := TMail.Create;
  Mail.sendMassMail('mail@gmx.ch','MassMail',10); //<- Abort

  list.Free; //<- Wird bei Abort nicht mehr Freigegeben ....
end;
Danke für die Hilfe !

Gruss Int3g3r
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 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-2025 by Thomas Breitkreuz