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:
