3

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

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

4

1 回答 1

3

您必须通过 Bindinglist 添加绑定,定义 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;

在此处输入图像描述

于 2013-01-24T11:37:33.660 回答