Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Interfaces und nil setzen (https://www.delphipraxis.net/196595-interfaces-und-nil-setzen.html)

jaenicke 2. Jun 2018 15:54

AW: Interfaces und nil setzen
 
Zitat:

Zitat von MyRealName (Beitrag 1403705)
Deswegen ja die Frage in welchen kombinationen man es manuell freigeben muss und wann nicht, um meinen Code nach möglichen problemen zu durchsuchen

Das Datenmodul musst du nie manuell freigeben, wenn es einen passenden Owner hat.

Aber wie schon geschrieben:
Ich kann nur sehr davon abraten Interfaces direkt in visuellen Komponenten zu implementieren. Sprich so etwas:
Delphi-Quellcode:
TBlub = class(TDataModule, ITest)
...
Das macht nur recht schwer zu findende Probleme, wenn man nicht sehr aufpasst. Den Fehler haben wir auch mal gemacht, aber sind dann schnell davon abgekommen und haben noch einmal eine saubere Architektur entworfen.

Das sieht dann so ca. aus:
Delphi-Quellcode:
IData = interface
end;

TMyButton = class(TButton)
  FData: IData;
end;

IButton = interface
  Instance: TMyButton;
  Data: IData;
end;
Dazu noch entsprechende Events zur Kommunikation von Änderungen, der Freigabe des TMyButton Controls, wobei die Instanz von TMyButton auf nil gesetzt wird.

Das ist bei uns noch umfangreicher, aber das ist die Grundidee.

MyRealName 2. Jun 2018 18:56

AW: Interfaces und nil setzen
 
ok, cool, das probier ich mal :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 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