ORMBr Livebindings - ORMBr Livebindings for Delphi

ORMBr Livebindings

ORMBr Livebindings for Delphi

Compartilhe: ORMBr Livebindings - Isaque Pinheiro ORMBr Livebindings - Isaque Pinheiro ORMBr Livebindings - Isaque Pinheiro ORMBr Livebindings - Isaque Pinheiro ORMBr Livebindings - Isaque Pinheiro Faça Doação

O LiveBinding é um mecanismo de DataBinding que foi incorporado na versão XE2 do Delphi e que tem o objetivo de fazer a ligação de fontes distintas de dados através de expressões. Já o ORMBr LiveBinding for Delphi traz todo esse recurso para o mundo POO, através de atributos facilitando e muito a vida do desenvolvedor, para isso basta herdar suas classes da classe pai TORMBrLiveBindings e decorar as propriedade com o atributo LiveBindingsControl() passando nele o nome que ao componente na tela e o nome da propriedade do componente que irá receber e fornecer informações a propriedade decorada.

Download Fontes

 
type
  TProduto = class(TORMBrLiveBindings)
  private
    FID: Integer;
    FPreco: Double;
    FSoma: Double;
    procedure SetPreco(const Value: Double);
    procedure SetID(const Value: Integer);
  public
    constructor Create; override;
    
    // ABAIXO ESTOU RELACIONANDO A MESMA PROPERTY A VÁRIOS COMPONENTES, Só 
    // PARA TESTAR, SE A MUDANÇA REFLETE EM TODOS ELES, NOS TESTES FOI OK
    
    [LiveBindingsControl('EditID', 'Text')]
    [LiveBindingsControl('LabelID', 'Caption')]
    [LiveBindingsControl('ComboEditID', 'ItemIndex')]
    [LiveBindingsControl('ProgressBarID', 'Position')]
    property ID: Integer read FID write SetID;

    [LiveBindingsControl('EditPreco', 'Text')]
    [LiveBindingsControl('LabelPreco', 'Caption')]
    property Preco: Double read FPreco write SetPreco;

    [LiveBindingsControl('EditSoma', 'Text', 'TProduto.ID * TProduto.Preco')]
    property Soma: Double read FSoma write FSoma;
  end;
implementation

uses Bindings.Helper;

constructor TProduto.Create;
begin
  inherited;
end;

procedure TProduto.SetID(const Value: Integer);
begin
  FID := Value;
  TBindings.Notify(Self, 'ID');
end;

procedure TProduto.SetPreco(const Value: Double);
begin
  FPreco := Value;
  TBindings.Notify(Self, 'Preco');
end;

end.