AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Problem mit FastReports und kaputt gehendem Interface
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit FastReports und kaputt gehendem Interface

Ein Thema von TurboMagic · begonnen am 19. Feb 2023 · letzter Beitrag vom 19. Feb 2023
 
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Problem mit FastReports und kaputt gehendem Interface

  Alt 19. Feb 2023, 18:36

Zu Interfaces also Const Parameter: vermutlich wird da der Referenzzähler dann nicht
hochgesetzt...
Ja, sobald const verwendet wird kommt es nicht zur Erhöhung des Referenzzählers (und das ist gut so). Ausserdem wird kein try..finally generiert.
Es ist aber nicht notwendig, nun jedes const vor einem Interface-Parameter zu entfernen. Es gibt nur eine Konstellation, bei der das const zu einem Fehler führt:

Angenommen diese Methode soll verwendet werden:

procedure Frob(const Grob: IGrobber); Dann kommt es zu einem Fehler bei der Referenzzählung wenn sie so aufgerufen wird:

Frob(TGrobberImplementer.Create); Dies dagegen funktioniert:

Delphi-Quellcode:
grob := TGrobberImplementer.Create;
Frob(grob);
(Beispiele aus: "Should I not pass an interface as const?" - https://stackoverflow.com/a/31028671/80901)

Ich verwende generell const für Interface-Parameter, und achte einfach nur darauf, immer erst eine Instanz zu erstellen und diese dann zu übergeben.

Da sich fehlerhafte Referenzzählung unter anderem zu nicht freigegebenen Objekten führen kann, verwende ich ausserdem das gute alte ReportMemoryLeaksOnShutdown := True.
Michael Justin
habarisoft.com
  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 03:28 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