Как получить SelectedValue ComboBox из кода?
Я пытаюсь построить что-то вродеTLookupComboBox
используя LiveBindings.
Я поместил нормальныйTComboBox
в форме VCL. У меня также есть набор данных с некоторыми строками, которые имеют два поляid
а такжеtext
.
Затем я использовал редактор LiveBindings, чтобы создатьTBindSourceDB
иTBindingsList
.
В нем есть только одна привязка:
object BindingsList1: TBindingsList
Methods = <>
OutputConverters = <>
UseAppManager = True
Left = 244
Top = 229
object LinkFillControlToField1: TLinkFillControlToField
Category = 'Quick Bindings'
Control = ComboBox1
Track = True
FillDataSource = BindSourceDB1
FillValueFieldName = 'id'
FillDisplayFieldName = 'text'
AutoFill = True
BufferCount = -1
FillExpressions = <>
end
end
Как видите, у меня есть разные поля дляFillValueFieldName
а такжеFillDisplayFieldName
.
Дизайнер LiveBindings выглядит так:
ComboBox заполняется значениями из поляtext
так что я думаю, что настроил правильно.
Как я могу получитьSelectedValue
из кода?
Я мог бы визуально связать значение сTLabel
и тогда я смог прочитатьTLabel.Caption
, но наверняка есть более простой способ?
PS: я не хочу хранить значение в БД, иначе я бы просто использовалTDBLookupComboBox
.
Редактировать: Я пытался использоватьTPrototypeBindSource
, но это не имеет очевидного способа получить доступ к полям из кода. Я также пытался использовать второйTBindSourceDB
вместе сTClientDataSet
который работает, но это похоже на использование кувалды, чтобы сломать орех.