Delphi XE2 之 FireMonkey 入门(24) - 数据绑定: TBindingsList: TBindExpression.Direction

本文介绍如何使用TBindExpression实现Delphi中Edit控件的双向数据绑定,并通过Direction属性控制数据流向。


在学习 BindingSource 属性时, 可以让两个控件互为绑定源; TBindExpression 对应的功能是 Direction 属性.

先在窗体上添加 Edit1、Edit2、BindingsList1; 然后激活 Edit1、Edit2 和窗体的默认事件.


 

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TBindExpression.Create(BindingsList1) do
  begin
    ControlComponent := Edit2;
    ControlExpression := 'Text';
    SourceComponent := Edit1;
    SourceExpression := 'Text';
//    Direction := TExpressionDirection.dirSourceToControl; //默认
//    Direction := TExpressionDirection.dirControlToSource; //反向
    Direction := TExpressionDirection.dirBidirectional;     //双向
    Active := True;
  end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  BindingsList1.Notify(Sender, '');
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  BindingsList1.Notify(Sender, '');
end;


如果没有 Direction 属性, 代码或许会是:


 

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TBindExpression.Create(BindingsList1) do
  begin
    ControlComponent := Edit2;
    ControlExpression := 'Text';
    SourceComponent := Edit1;
    SourceExpression := 'Text';
    Active := True;
  end;

  with TBindExpression.Create(BindingsList1) do
  begin
    ControlComponent := Edit1;
    ControlExpression := 'Text';
    SourceComponent := Edit2;
    SourceExpression := 'Text';
    Active := True;
  end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  BindingsList1.Notify(Sender, '');
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  BindingsList1.Notify(Sender, '');
end;

转载于:https://www.cnblogs.com/dzdd/p/3346857.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值