2011-10-20 3 views
4

객체가 있습니다. 구성 요소가 아닌 Controller라고 부르 자. 활성화 된 속성이 있습니다. 라이브 바인딩을 사용하여 폼의 일부 구성 요소의 활성화 된 속성에 바인드한다고 말할 수 있습니까? 즉, 내 구성 요소의 enabled 속성이 변경되면이 구성 요소에 바인딩 된 구성 요소의 enabled 속성이 적절하게 설정됩니까?라이브 바인딩을 사용하여 여러 구성 요소를 (비 구성 요소) 객체에 바인딩 할 수 있습니까?

TController가 TComponent 자손 인 경우 어떻게하는지 알 수 있습니다. 구성 요소에 TController를 래핑 할 수 있다는 것을 알고 있지만이 작업을 수행하는 직접적인 방법이 있는지 묻는 중입니다.

답변

4

BindScope에서 가능합니다. BindScope1.DataObject : = Controller;

object BindingsList1: TBindingsList 
    Methods = <> 
    OutputConverters = <> 
    UseAppManager = True 
    Left = 464 
    Top = 56 
    object BindExpression1: TBindExpression 
     Category = 'Binding Expressions' 
     ControlComponent = Label1 
     SourceComponent = BindScope1 
     SourceExpression = 'enabled' 
     ControlExpression = 'visible' 
     NotifyOutputs = False 
     Direction = dirSourceToControl 
    end 
    object BindExpression2: TBindExpression 
     Category = 'Binding Expressions' 
     ControlComponent = CheckBox1 
     SourceComponent = BindScope1 
     SourceExpression = 'enabled' 
     ControlExpression = 'IsChecked' 
     NotifyOutputs = False 
     Direction = dirSourceToControl 
    end 
    end 

TBindings.Notify (컨트롤러, '사용중'); 모든 관련 표현을 평가할 것입니다. 위의 예제에서 Label1.Visible과 Checkbox1.IsChecked

1

며칠 전에 필자는 로컬 Be-Delphi에서 Delphi XE2의 LiveBindings에 대한 프리젠 테이션을했습니다. 내 웹 사이트에 슬라이드와 완벽한 '백서'또는 'Tutoriald'문서를 게시했습니다. 마지막 장에서는 런타임에 작성된 TPerson 인스턴스에 구성 요소를 바인딩하는 방법을 설명하려고했습니다. 아마 당신에게 흥미로운 정보가있을 것입니다 :

Introduction to LiveBindings in Delphi XE2

관련 문제