AGB  ·  Datenschutz  ·  Impressum  







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

Lebensdauer einer Stringlist

Ein Thema von idefix2 · begonnen am 19. Aug 2015 · letzter Beitrag vom 21. Aug 2015
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Lebensdauer einer Stringlist

  Alt 21. Aug 2015, 06:59
Du musst immer das große Ganze betrachten um zu verstehen

So sieht die Ableitungskette aus: TCustomCombo <- TCustomComboBox <- TComboBox und hier werden die Items erzeugt
Delphi-Quellcode:
constructor TCustomComboBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  // Statt
  FItems := GetItemsClass.Create; // <- da ist
  // wäre auch das hier möglich
  // SetItems( GetItemsClass.Create );
  TCustomComboBoxStrings(FItems).ComboBox := Self;
  FStyle := csDropDown;
  FLastTime := 0;
  FAutoComplete := True;
  FAutoCloseUp := False;
  FAutoCompleteDelay := 500;
  FTextHint := '';
end;
Wenn du auf die Items zugreifst, dann gibt es schon eine Instanz.

Der Grund für diesen Setter liegt darin, dass in TCustomCombo die konkrete TStrings Instanz noch gar nicht bestimmt werden kann. Darum hat man den Setter so gebaut, dass die erste Verwendung die Referenz übernimmt.

Denn wenn du selber mal eine Komponente von TCustomCombo ableiten möchtest, dann hast du keine Möglichkeit an FItems heranzukommen und so bleibt dir der Weg über den Setter.
Delphi-Quellcode:
unit MyCompo;

interface

uses
  Vcl.StdCtrls;

type
  TMyCombo = class( TCustomCombo )
  public
    constructor Create( AOwner: TComponent ); override;
  end;

implementation

constructor TMyCombo.Create( AOwner: TComponent );
begin
  inherited Create( AOwner );
  SetItems( TStringList.Create ); // <- diese Instanz wird jetzt übernommen
end;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 00:31 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