LiveBindings를 사용하여 TLookupComboBox
과 같은 것을 만들려고합니다.코드에서 ComboBox의 SelectedValue를 가져 오는 방법은 무엇입니까?
VCL 양식에 보통 TComboBox
을 삽입했습니다. 또한 두 개의 필드가 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 디자이너는 다음과 같습니다
콤보 상자는 필드 text
의 값으로 채워, 그래서 내가 올바르게 설정 생각한다.
코드에서 SelectedValue
을 얻으려면 어떻게해야합니까?
시각적으로이 값을 TLabel
에 바인딩 한 다음 TLabel.Caption
을 읽을 수는 있지만 더 쉬운 방법이 있을까요?
추신 : 나는 DB에 값을 저장하고 싶지 않습니다. 그렇지 않으면 TDBLookupComboBox
을 사용합니다.
편집 :TPrototypeBindSource
을 사용해 보았습니다 만 코드에서 필드에 액세스하는 분명한 방법이 없습니다. 나는 또한 TClientDataSet
과 함께 두 번째 TBindSourceDB
을 사용하려고 시도했지만, 너트를 깨기 위해 슬레지 해머를 사용하는 것과 같은 느낌이 들었다.