Como obtenho o SelectedValue de uma ComboBox do código?
Eu estou tentando construir algo como umTLookupComboBox
usando o LiveBindings.
Eu coloquei um normalTComboBox
em um formulário VCL. Eu também tenho um conjunto de dados com algumas linhas que têm os dois camposid
etext
.
Então eu usei o editor do LiveBindings para criar umTBindSourceDB
e umTBindingsList
.
Há apenas uma ligação nele:
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
Como você pode ver, tenho campos diferentes paraFillValueFieldName
eFillDisplayFieldName
.
O designer do LiveBindings fica assim:
A ComboBox é preenchida com os valores do campotext
, então acho que configurei corretamente.
Como posso obter oSelectedValue
do código?
Eu poderia vincular visualmente o valor a umTLabel
e então eu pude ler oTLabel.Caption
, mas certamente existe uma maneira mais fácil?
PS: Eu não quero armazenar o valor no banco de dados, caso contrário, eu apenas usaria umTDBLookupComboBox
.
Editar: Eu tentei usar umTPrototypeBindSource
, mas isso não tem uma maneira óbvia de acessar os campos a partir do código. Eu também tentei usar um segundoTBindSourceDB
junto com umTClientDataSet
que funciona, mas é como usar uma marreta para quebrar uma noz.