ClassBind
L’attributo ClassBind
, posto prima della definizione della classe, indica che la classe stessa dovrà essere collegata a una seconda classe il cui nome corrisponde alla proprietà TargetClassName
.
Proprietà
IsEnabled: boolean
. Se True
, viene effettuato il binding con la classe target, altrimenti il binding non viene effettuato. Default: True
.
TargetClassName: string
. Il nome della classe che contiene campi e proprietà da collegare. Se il suo valore è ‘Self’, le istanze della classe collegheranno campi e proprietà al proprio interno. Obbligatorio.
IsDefault: boolean
. Se True
, il nome della classe può essere omesso negli attributi di tipo BindField
e BindProperty
. E’ utile per evitare di appesantire il codice quando si usano relazioni 1:1 fra le classi. Default: False
.
Esempi
Abilita il binding tra elementi delle classi TfrmBindApiSimpleDemo
e TTestController
:
type [ClassBind(True, 'TTestController')] TfrmBindApiSimpleDemo = class(TForm)
Come sopra, in forma compatta:
type [ClassBind('TTestController')] TfrmBindApiSimpleDemo = class(TForm)
Disabilita il binding tra elementi delle classi TfrmBindApiSimpleDemo
e TTestController
:
type [ClassBind(False, 'TTestController')] TfrmBindApiSimpleDemo = class(TForm)
E’ possibile definire bind su più classi, purché registrate:
type [ClassBind(True, 'TTestController', True)] [ClassBind(True, 'TTestSecond')] TfrmBindApiSimpleDemo = class(TForm) [BindFieldTo('Value', 'TestObject.IntProp')] speValue: TSpinEdit; [BindField('Text', 'StrBidirectional', '', 'TTestSecond')] edtBidirectional: TEdit; private { Private declarations } ... published { Public declarations } ... end;
Il primo attributo ClassBind
definisce la classe come default; in questo modo, non sarà necessario esplicitarne il nome negli attributi che si riferiscono ad essa – in questo caso, il primo attributo [BindFieldTo('Value', 'TestObject.IntProp')]
che non contiene indicazioni sul nome della classe target. Il secondo attributo, al contrario, indica che la classe target verso la quale fare il binding è TTestSecond
.
Articoli più recenti: