Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#7

AW: Freigabe von verknüpften Komponenten

  Alt 13. Jun 2016, 10:59
Selbstgebaute Komponenten?

Die entwickelt man natürlich richtig und nutzt die Notifications von TComponent, damit sich Verlinkungen aufräumen.
Beispiel: TDBGrid.DataSource ... das Property wird automatisch nil, wenn man die TDataSource freigibt.

Delphi-Quellcode:
type
  TMyComponentA = class(TComponentDescendant)
  private
    FLink: TMyComponentB;
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  public
    property Link: TMyComponentB read FLink write FLink;
  end;

procedure TMyComponentA.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (FLink = AComponent) then
    FLink := nil;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Jun 2016 um 11:10 Uhr)
  Mit Zitat antworten Zitat