문제

우선, VB6을 사용하고 있기 때문에 친절한 제안을 VB6에 적용되는 기술로 제한하십시오.

alt text

위의 그림에서 볼 수 있듯이 서로 관련된 일련의 컨트롤이 있습니다. 여기에는 여러 treeviews, 분할 막대, 목록보기, 하위 형태 (USERControl) 등이 포함됩니다.

왼쪽의 TreeView 노드를 클릭하거나 변경하면 오른쪽 컨트롤이 그에 따라 디스플레이를 변경하고 그 반대도 마찬가지입니다.

현장 뒤의 데이터는 액세스 데이터베이스에서 유지됩니다.

이 데이터 관리 및 디스플레이 세트는 여러 다른 응용 프로그램에 사용됩니다. 그래서 나는 논리를 구현하기 위해 여러 수업을 작성하고 응용 프로그램 에이 클래스 모듈을 계속 포함 시켰습니다.

그래서 나는 실제로 있습니다 재사용 "복사 및 붙여 넣기"모드의 수업. 작동하지만 문제가 있습니다. 수업을 변경하면 여러 응용 프로그램에서 변경해야합니다.

요즘 나는 그것들을 소위 ActiveX 구성 요소로 만들려고 생각하고 있습니다. 그러나 전체 아키텍처를 재사용하기 위해 어떤 종류의 ActiveX 구성 요소를 개발 해야하는지 잘 모르겠습니다.

간단히 말해서 알고 싶습니다 어떻게 더 우아하게 재사용 할 수 있습니까? "복사 및 붙여 넣기"보다. 아래는 새로운 "우아한 재사용"에 대한 몇 가지 아이디어 나 기대이지만 그들에게는 구속되지 않습니다.

(1) 설계 시간 동안 일부 속성을 설정할 수 있도록 속성 페이지가있는 ActiveX 컨트롤처럼 보일 수 있기를 바랍니다.

(2) 다른 응용 프로그램의 경우 오른쪽의 하위 형태는 다른 정보를 표시 할 수 있으며 다른 컨트롤이 있으며 추가 코딩 및 설계가 필요할 수 있습니다.

(3) 또한 다른 응용 프로그램에 대한 TreeView 및 ListView에 대한 새로운 동작을 코딩해야 할 수도 있습니다. 이 요구 사항은 전체 양식에 대한 전체 usercontrol을 적합하지 않습니다. MSDN은“ActiveX Controls에 대한 언급은 클라이언트 응용 프로그램에 반환해서는 안됩니다”라고 말했습니다.

도움이 되었습니까?

해결책

  • ActiveX DLL 만들기 (제어하지 않음)
  • 양식의 인터페이스를 정의하십시오
    DLL
  • 모든 논리를 DLL에서 하나 이상의 클래스로 옮기고 인터페이스를 통해 루틴이 양식과 상호 작용하도록합니다.
  • 양식에서 인터페이스를 구현하십시오
  • 앱의 하나의 초기화에는 ActiveX DLL에 양식 레지스터 자체가 있습니다.

이렇게하면 다른 앱간에 복사 및 붙여 넣기가 효과적으로 제거됩니다.

예를 들어 금속 절단 응용 프로그램의 경우 모양 형태, 모양 스크린 클래스 및 다양한 모양 클래스가 있습니다. Shape Class의 두 가지 방법은 유형 Shapescreen의 매개 변수를 갖는 드로우 스크린이며 유형 Shapescreen의 매개 변수를 갖는 getValues입니다.

Drawscreen은 Shapescreen 방법을 사용하여 Ishapeform 인터페이스를 통해 입력 화면 및 모양 화면 설정을 설정합니다. getValues는 모양 화면 메소드를 사용하여 입력 된 모양 값을 얻습니다.이 값은 ishapeform을 사용하여 양식에서 값을 얻습니다.

이 설정은 고객 요청에 응답하여 다른 모양 입력 양식을 개발해야 할 때 유용한 것으로 판명되었습니다. 새로운 양식은 방금 ishapeform 인터페이스를 구현했으며 나머지 소프트웨어는 손대지 않았습니다.

다른 팁

어쩌면 각 컨트롤을 사용자 컨트롤에 캡슐화 한 다음 이러한 컨트롤을 통일 된 것으로 구성하기 위해 가상 ActiveX 컨트롤 (시각적 인터페이스 없음)을 만들어야합니다.

당신이 가진 것은보기, 도메인 논리 및 데이터 인 것 같습니다. 내가 예측 한 주요 문제는 항목 2이며, 앱에서 앱으로의 외관과 논리가 정적이 아닙니다. 어쩌면 필요한 것은 두 가지 별도의 컨트롤일까요? 왼쪽 패널 및 오른쪽 패널. 올바른 패널은 아마도 정적이되지 않기 때문에 일부 유형의 컨트롤 배열을 구현할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top