我有一个2 RadioButtons
(具有相同的GroupName)的表单,我需要在字段Status中保存'A'
(如果选择了RadioButton1)或'I'
(如果选择了RadioButton2)使用LiveBindings。
一个组件到一个字段很容易,但在这种情况下,我有两个组件从一个字段获取和设置值。
我创建了一个函数,通过radiobutton
返回Groupname
选择并手动填充字段,但我想要更自动的东西。
先谢谢!
答案 0 :(得分:2)
以下是完成此任务的步骤。
RadioButton1
和RadioButton2
。Bindable Members
,然后选中复选框IsChecked
,然后单击确定按钮。 IsChecked
属性与您要绑定的字段之间的链接(请注意,这可以是字符串字段)。现在你几乎失败了,但是你需要将字符串转换为布尔值,以便IsChecked
属性具有布尔值。为此,请从LiveBindings Designer中为单选按钮选择绑定链接。然后在其CustomFormat
属性中,分配以下字符串
IfThen(ToStr(%s)="Poor",True, False)
这将允许在基础数据库值为“差”时检查单选按钮
对其他单选按钮执行相同操作,但使用不同的字符串
IfThen(ToStr(%s)="Excellent",True, False)
现在,为了让单选按钮能够更改底层数据库字段,您需要附加代码才能执行此操作。让我们使用单选按钮的OnClick
事件(连接到两个单选按钮)。此代码假定您的基础数据集名为FDCustomer
,并且您的字段名为Status
。请注意,事件发生时尚未检查单选按钮,因此我们会将IsChecked
视为错误。
if Sender = RadioButton1 then
begin
if not TRadioButton(Sender).IsChecked then // checking
begin
fdcustomer.Edit;
fdcustomer.FieldByName('Status').AsString:= 'Poor';
end;
end
else if Sender = RadioButton2 then
begin
if not TRadioButton(Sender).IsChecked then
begin
fdcustomer.Edit;
fdcustomer.FieldByName('Status').AsString:= 'Excellent';
end;
end;