XE3 Visual LiveBindings:TSpinBox和TTrackBar之间的双向连接(FireMonkey)

时间:2013-01-24 10:06:23

标签: delphi firemonkey delphi-xe3 livebindings

我正在使用带有SP1的Delphi XE3。我创建了一个FireMonkey桌面应用程序,并在主窗体上删除了一个TSpinBox和一个TTrackBar。我现在使用Visual Livebindings连接了TSpinBox和TTrackBar的“Value”属性。 IDE已自动创建“TLinkControlToProperty”来连接它们。当我移动TTrackBar上的滑块时,TSpinBox中的值会发生变化。但是当我更改TSpinBox中的值时,TTrackBar的值不会更新。

如何使用LiveBindings将其更改为双向连接?我的目标是在TSpinBox的“Value”发生变化时更改TTrackBar的“Value”属性。此外,我感兴趣的是一个不使用“TSpinBox”的“OnChange”事件的解决方案。如果没有派生出“TSpinBox”的后代,这可能吗?

1 个答案:

答案 0 :(得分:3)

您必须通过Bindinglist添加Binding,定义Source和Destination,将Direction设置为dirBiDirectional并将以下代码添加到源:

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

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

可以减少到

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

enter image description here