BindAPI: ClassBind

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.

API


Articoli più recenti:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *