몇 년 동안이 문제가 있었지만 지금은 쉽게 해결할 수 있습니다. 여러 개의 TEdit 컨트롤이있는 패널을 배치해야하며 클래스의 게시 된 속성을 표시하고 편집 할 수 있어야합니다. 전통적으로 나는 TEdit (또는 Raize 또는 Developer Express 라이브러리의 수치 파생물)을 사용하고 OnKeyPress 및 OnExit 이벤트를 '연결'하고 편집 텍스트와 속성 유형간에 변환 등을 수행합니다. Delphi 1 (모두 큰 생일 곧있다!).클래스의 게시 된 속성에 단순히 Delphi TEdit (또는 유사한)을 연결할 수 있습니까?
요즘 우리는 RTTI와 라이브 바인딩을 가지고 있으므로, 이상적으로는 하나의 게시 된 속성에 대해 TEdit (또는 다른 유사한 컨트롤)에 말하고 필요한 양방향 링크가 모든 배선 및 전환. 오브젝트 인스펙터는 당연히이 작업을 수행합니다. 그러나 레이블이 지정된 편집 컨트롤을 사용하여보다 공식적인 사용자 정의 레이아웃을 원합니다. 단순히 integer, float 및 string에 대처하는 것이 좋을 것입니다. 그리고 필드 이름이 내 속성 이름이었던 TDBEdit과 같은 것이 좋을 것입니다.
저는 '시각적으로 묶는 것'디자이너 (저는 XE3을 가졌습니다)를 살펴 봤지만 확실하지는 않습니다. 누구든지이 일을 할 수있는 방법을 제안 할 수 있습니까? 감사.
[LiveBindings tutorial] (http://docwiki.embarcadero.com/RADStudio/XE3/en/Tutorial%3A_Linking_Controls_via_LiveBindings_Designer)이 매우 간단하고 컨트롤을 객체 속성에 바인딩하는 것에 대해 매우 완벽하다는 것을 알게되었습니다. XE3 도움말 파일에도 있습니다 (Topics-> RAD Studio-> RAD Studio Topics-> Tutorials). [TPrototoypeBindSource 사용하기 및 LiveBinginds 디자이너 자습서] (http://docwiki.embarcadero.com/RADStudio/XE3/en/Tutorial%3A_Using_TPrototypeBindSource_and_the_LiveBindings_Designer)와 다른 컨트롤과 함께 TEdit을 사용하는 구체적인 예가 있습니다. –
모든 컨트롤이 라이브 바인딩에서 완벽하게 지원되는 것은 아니며 일부 이벤트를 연결해야합니다. 대체 방법으로 MVVM 패턴을 살펴 봐야합니다. –
@Brian : 일반 오래된 클래스 [여기] (http://docwiki.embarcadero.com/CodeExamples/XE3/en/LiveBindings.BOCollection_Sample)에 바인딩하는 예제를 발견했습니다. 도움이 될 수 있습니다. 이 파일은'Users \ Public \ Documents \ RAD Studio \ 10.0 \ Samples \ LiveBindings \ BOCollectons' 폴더에 있습니다. –