Perché in questo modo si potrebbe mettere un altro TStrings
discendente nella variabile SL
(probabilmente sarei chiamare che Strings
, non SL
).
Nel tuo caso, questo è discutibile, poiché la logica intorno a SL
contiene la creazione di uno TStringList
e nessuna assegnazione esterna o analisi dei parametri.
Tuttavia, se si separa la logica dall'assegnazione, è possibile trarre vantaggio dall'utilizzo di qualsiasi discendente TStrings
.
Per esempio, un TMemoy.Lines
, TListBox.Items
, TComboBox.Items
, ecc
Dall'esterno sembra che sono TStrings
, ma internamente non usano un TStringList
ma loro discendente.
Alcuni esempi di classi che scendono dal TStrings
:
source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\XP_OTAEditorUtils.pas:
TXPEditorStrings = class(TStrings)
source\fmx\FMX.ListBox.pas:
TListBoxStrings = class(TStrings)
source\fmx\FMX.Memo.pas:
TMemoLines = class(TStrings)
source\rtl\common\System.Classes.pas:
TStringList = class(TStrings)
source\vcl\Vcl.ComCtrls.pas:
TTabStrings = class(TStrings)
TTreeStrings = class(TStrings)
TRichEditStrings = class(TStrings)
source\vcl\Vcl.ExtCtrls.pas:
TPageAccess = class(TStrings)
THeaderStrings = class(TStrings)
source\vcl\Vcl.Grids.pas:
TStringGridStrings = class(TStrings)
TStringSparseList = class(TStrings)
source\vcl\Vcl.Outline.pas:
TOutlineStrings = class(TStrings)
source\vcl\Vcl.StdCtrls.pas:
TCustomComboBoxStrings = class(TStrings)
TMemoStrings = class(TStrings)
TListBoxStrings = class(TStrings)
source\vcl\Vcl.TabNotBk.pas:
TTabPageAccess = class(TStrings)
fonte
2012-02-21 21:23:18
mia ragione superiore: TStrings comporta meno di battitura :) – mjn
@mjn Perché non andare fino in fondo e aggiungere 'TSL = TStringList' ad un file di inclusione che includi in ogni unità ....... ;-) –
Ottima domanda !! Credo che l'origine di questa domanda risieda nel codice sorgente VCL che comunemente usa il tipo di antenato radice per variabili, come 'TControl'. I codificatori (incluso me) tendono a radicare ogni variabile, ma non ha alcun significato. Grazie per avermi fatto riflettere. – NGLN