我在运行时动态创建FMX控件以编辑ListBox中的数据:
除了TComboTrackBar
和TSpinBox
之外,它适用于大多数组件,尽管代码如下,但没有显示任何值。
这里是SpinBox:
// Create the SpinBox
SpinBox:= TSpinBox.Create(InternalLayout);
With SpinBox do
begin
Parent:= InternalLayout;
Name:= 'sb' + ASubParameter.Name;
BeginUpdate;
Align:= TAlignLayout.Client;
Size.PlatformDefault:= False;
HitTest:= True;
Margins.Top:= 1;
Margins.Bottom:= 1;
Min:= ASubParameter.Minimum;
Max:= ASubParameter.Maximum;
DecimalDigits:= 3;
KeyboardType:= TVirtualKeyboardType.NumberPad;
case AParameter.ParamType of
TParameterType.ptShortInt, TParameterType.ptInteger:
begin
ValueType:= TNumValueType.Integer;
Value:= ASubParameter.ValueDefault.ToInteger;
end;
TParameterType.ptSingle, TParameterType.ptDouble:
begin
ValueType:= TNumValueType.Float;
Value:= ASubParameter.ValueDefault.ToSingle;
end;
end;
Enabled:= not(ASubParameter.ReadOnly);
OnChange:= ASubParameter.OnChanged;
EndUpdate;
end;
在这种情况下,所有SpinBox都应该显示0作为默认值。 如果我点击右箭头,我会得到1.如果我点击左箭头,我得到0。 所以行为是正确的,但控件不能正确显示起始值。
知道我的代码中可能有什么错误或遗漏?
在Windows上,这可以正常工作。在Android上,这不行。
答案 0 :(得分:0)
这在10.2中修复,在10.1看起来像0是特殊值,对我有用的是先将它分配给其他一些值,例如
SpinBox.Value := 1;
SpinBox.Value := 0;
在这种情况下,值显示