在學習 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;