2009-02-14 9 views
5

Sto sviluppando vari componenti e regolarmente incontro all'esigenza di avere una proprietà che abbia una relazione "uno-a-molti", da componente a proprietà-membro. I componenti sono spesso componenti visive, ma non sempre, e talvolta devono essere registrati con l'IDE (ad esempio, l'Ispettore proprietà), ma non sempre. Mi trovo insicuro su quale percorso intraprendere quando si impostano queste proprietà - utilizzando una proprietà array, un TList, una TStringList, una TCollection o qualcos'altro (forse una nuova classe che eredita da una di quelle).Proprietà array, TList, TStringList o TCollection, ecc. (Delphi Win32)

Quali sono le "migliori pratiche"/linee guida per le quali utilizzare quando/dove?

risposta

11

Se sono proprietà, è possibile discendere da TCollection, quindi IDE e Object Inspector forniranno automaticamente il supporto tramite l'editor Proprietà di TCollection.

+1

Nick, per il supporto OI, non è TOwnedCollection? –

+1

No, TCollection va bene - –

2

TObjectList e TInterfaceList/IInterfaceList sono i miei preferiti. E c'è TThreadList per gli elenchi thread-safe. Tutti sono disponibili in Delphi 6 (o anche prima).

+0

Interessante - grazie! – Jamo