Delphi Deep Exploration-데이터베이스-Clear ActiveX 컨트롤
강력한 데이터베이스 개발 기능은 의심할 여지 없이 Delphi의 핵심입니다. 최소 80%의 사람들이 매일 Delphi를 사용하여 데이터베이스 프로그램을 개발합니다. 빌딩 블록 VCL 데이터베이스 제어와 Dev ExPRess 및 Woll2Woll과 같은 회사에서 제공하는 강력한 타사 데이터베이스 지우기 제어를 기반으로 속성을 설정하고 마우스를 드래그하기만 하면 된다고 해도 과언이 아닙니다. 프로그램 개발을 매우 빠르게 완료하는 데 몇 번이 걸립니다. Delphi의 데이터베이스 기능이 너무 강력하기 때문에 많은 사람들은 ActiveX가 유연한 데이터베이스 바인딩도 제공할 수 있다는 사실을 간과합니다. 불행하게도 Delphi 자체에서 제공하는 여러 타사 ActiveX 컨트롤 중 어느 것도 데이터베이스에 정통한 컨트롤이 아니므로 간접적으로 오해가 발생합니다. , 이로 인해 많은 사람들이 Delphi가 명확한 데이터가 포함된 ActiveX 컨트롤을 지원하지 않는다고 잘못 믿게 되었습니다(오래 전의 저를 포함하여). 물론 이것은 잘못된 견해이다. Delphi에서 데이터 지우기 ActiveX 컨트롤 사용 다음 예에서는 데모를 위해 Office 2000이 설치된 시스템에 설치된 Microsoft Calendar 9.0 컨트롤을 사용합니다. Component | Import ActiveX Control을 선택하고 Microsoft Calendar 9.0(아래 그림 1.12 참조)을 선택한 다음 시스템에 있는 동일한 이름의 원래 컨트롤과의 충돌을 피하기 위해 클래스 이름을 TCalendar에서 TAXCalendar로 변경한 다음 설치 버튼을 클릭하여 설치합니다. 제어.
새 프로그램을 만들고 폼에 TAXCalendar 컨트롤을 배치합니다. 다른 DataSource 및 Table 컨트롤을 추가합니다. DataSource의 Dataset을 Table1로 설정한 다음 Table1의 DataBaseName 속성을 DBDEMOS로, TableName 속성을 EMPLOYEE.DB로 설정하고 마지막으로 Table1.Active 속성을 True로 설정합니다. 다음으로 데이터베이스를 바인딩할 차례입니다. 소개된 TAXCalendar에는 DataSource와 DataBindings라는 두 가지 속성이 있는데 이는 일반 ActiveX 컨트롤과 다릅니다. 이는 ActiveX 가져오기 마법사가 도입하기 전에 먼저 데이터베이스 친화적인 컨트롤인지 여부를 판단하기 때문입니다. 그렇다면 ActiveX 컨트롤을 상속할 기본 클래스로 사용하세요. TBOleControl은 DataBindings 및 DataSource 속성을 구현합니다. AXCalendar1.DataSource 속성을 Datasource1로 설정합니다. 이때 폼에서 TAXCalendar 컨트롤을 마우스 오른쪽 버튼으로 클릭하면 오른쪽 클릭 메뉴에 추가 DataBindings... 메뉴 항목이 나타납니다(아래 그림 1.13 참조).
메뉴 항목을 클릭하면 데이터 바인딩 속성 편집 상자가 표시됩니다(아래 그림 1.14 참조). FieldName 목록 상자에서 HireDate를 선택하고 속성 이름 목록 상자에서 Value(12)를 선택한 다음(12는 값의 Dispid 수) 바인딩 단추를 클릭하여 데이터베이스 필드와 값 속성 간의 데이터 연결을 설정합니다.
마지막으로 DBGrid 및 DBNavigator 컨트롤을 폼에 배치하고 해당 DataSource를 DataSource1로 설정합니다. 프로그램을 실행하고 현재 데이터 위치를 이동하면 ActiveX의 날짜 표시도 데이터베이스의 Hiredate와 일치하여 그에 따라 변경되는 것을 확인할 수 있습니다. 그림 1.15에 표시된 대로:
데이터가 명확한 ActiveX 컨트롤 만들기 Delphi가 실제로 데이터가 명확한 ActiveX 컨트롤을 사용할 수 있다는 것을 이미 알고 있지만 Delphi 자체가 데이터가 명확한 ActiveX 컨트롤을 만들 수 있습니까? 델파이는 ActiveX 컨트롤의 원스텝 변환과 생성을 제공하기 때문에 많은 사람들은 ActiveX를 지원하는 다른 개발 환경에서 데이터베이스 프로그램을 개발할 때에도 델파이에서와 같은 경험을 누릴 수 있도록 델파이의 강력한 데이터베이스 컨트롤을 ActiveX 컨트롤로 변환하기를 희망합니다. . 같은 편안하고 행복한 느낌. 그러나 첫 번째 부분에서 언급했듯이 Delphi의 데이터 지우기 제어 내부 메커니즘은 ActiveX 데이터베이스 제어의 내부 메커니즘과 너무 다르기 때문에 Delphi는 강력한 데이터베이스 제어를 직접 변환할 수 없습니다. 그렇다면 우리가 할 수 있는 일은 아무것도 없다는 뜻인가요? 물론 그렇지 않습니다. 실제로 유형 라이브러리 편집기를 사용하면 명확한 데이터가 포함된 ActiveX 컨트롤을 매우 쉽게 구현할 수 있습니다. TEdit 컨트롤을 사용하여 이를 테스트하고 수행 방법을 살펴보겠습니다. New | ActiveX Control 메뉴 명령을 선택하여 ActiveX 컨트롤 변환 마법사를 시작하고 TEdit 컨트롤을 변환 개체로 선택한 다음 EditX ActiveX 프레임워크를 생성합니다. 다음으로 데이터 바인딩을 지원하도록 TEdit의 Text 속성을 변환하겠습니다. View | Type Library를 선택하여 Delphi에서 생성된 유형 라이브러리를 보고 Text 속성을 선택한 다음 Flags 속성 페이지로 전환합니다(아래 그림 1.16 참조).
Flags 속성 페이지에는 많은 확인란이 있으며 우리는 데이터 바인딩과 관련된 옵션에만 관심이 있습니다. 바인딩 가능, 디스플레이 바인딩 가능, 기본 바인딩 가능, 즉시 바인딩 가능 및 편집 요청 옵션이 있습니다. 속성을 바인딩 가능으로 표시하고 이를 데이터베이스 필드에 바인딩한 후 사용자가 속성을 수정하면 컨트롤은 값이 변경되었음을 데이터베이스에 알리고 업데이트 상태를 기록하도록 데이터베이스에 요청합니다. 기록 업데이트가 성공했습니다. Bindable 옵션은 속성이 데이터 바인딩을 지원함을 나타냅니다. 속성이 바인딩 가능으로 표시되면 속성은 해당 값이 변경될 때 해당 컨테이너에 알립니다. 요청 편집은 속성이 사용자가 속성 값을 수정할 수 있는지 여부를 컨트롤이 컨테이너에 요청할 수 있도록 하는 OnRequestEdit 알림 메시지를 지원함을 나타냅니다. 디스플레이 바인딩 가능은 컨테이너가 이 속성이 바인딩 가능하다는 것을 사용자에게 보여줄 수 있음을 의미합니다. 기본 Bindable은 이것이 유일한 기본 바인딩 가능 속성임을 의미하며, 이를 사용하려면 Bindable 속성도 동시에 표시되어야 합니다. Immediate Bindable이 표시되면 모든 변경 사항이 통보되며 바인딩 가능 및 편집 요청 플래그를 설정해야 합니다. 다음으로 EditX 컨트롤의 Text 속성을 Bindable, Display Bindable, Default Bindable 및 Request Edit로 표시합니다. 그런 다음 새로 고침 버튼을 클릭하여 유형 라이브러리를 새로 고치고 마지막으로 Run | Register ActiveX Server를 선택하여 ActiveX 컨트롤을 등록합니다. 새로운 EditX ActiveX 컨트롤을 도입하면 데이터 바인딩 기능이 구현된다는 것을 알 수 있습니다. 다음은 데이터 지우기를 사용하는 EditX 프로그램의 작동 다이어그램입니다. (Delphi의 ActiveX 데이터 지우기 기능 구현은 실제로 간단합니다. 그리고 멋지지 않나요?