AGB  ·  Datenschutz  ·  Impressum  







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

Interfaces und nil setzen

Ein Thema von MyRealName · begonnen am 1. Jun 2018 · letzter Beitrag vom 2. Jun 2018
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.356 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Interfaces und nil setzen

  Alt 2. Jun 2018, 15:54
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke ( 2. Jun 2018 um 15:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
673 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Interfaces und nil setzen

  Alt 2. Jun 2018, 18:56
ok, cool, das probier ich mal
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz