c++ builder > 고찰 > 50 x 3개의 컴포넌트를 가진 디자인 변경 대응 > (x) 컴포넌트 복사/(o) 디자인 복사

동작 확인
C++ Builder XE4

문제



50 x 3개의 TComboBox가 있는 양식이 있다고 가정합니다.

그 폼의 디자인은 향후 변경될 가능성이 있는 경우, 어떻게 하면 향후 작업이 단시간에 대응할 수 있을까.

방법



1. 변경 요구가 나올 때마다 하나씩 디자인을 변경한다


  • 단점 : 디자인을 변경할 때마다 시간이 걸립니다

  • 2. 템플릿이 되는 컴퍼넌트를 작성해, 그 컴퍼넌트를 동적으로 카피한다


  • 템플릿 예제 > 5개의 TComboBox
  • 폼 디자인 시 : 5개의 TComboBox만 있다
  • 전부 50 x 3개 사용한다고 한다
  • 양식 시작시 5 개를 (10 * 3 - 1) 회 복사
  • 복사를위한 로직을 구현하십시오
  • 단점 : 로직을 구현하는 데 시간이 걸립니다
  • 장점 : 일단 로직을 구현하면 다음 번에 템플릿 만 디자인을 변경하고 단시간에 작업 할 수 있습니다

  • 종래는 항목 1로 대응하고 있던 것을 항목 2로 했다.

    항목 2의 문제는, 동적 카피했을 경우에 동적으로 생성된 컴퍼넌트의 이름이 자동 생성되어, 자신이 사용하는 소프트용으로 이름을 붙이는 처리가 필요.

    이 점이 걸려 있었다.

    문득 세 번째 방법을 생각해 냈다.

    3. 디자인 복사 > 디자인 템플릿이 되는 컴포넌트를 만들어 그 컴포넌트의 디자인만을 기존 컴포넌트로 복사


  • 폼 디자인 타임 : 5 개의 디자인 템플릿 용 TComboBox가 있으며 145 개의 TComboBox가 있습니다

  • 세로 일렬 구성 요소
  • Left 속성 복사
  • Width 속성 복사


  • 가로 줄의 구성 요소
  • Top 속성 복사

  • Height 속성 복사 (TComboBox는 Height를 변경해도 무효)


  • 구현 예



    양식 디자인 화면
    왼쪽 상단 중 하나는 디자인 템플릿의 구성 요소입니다.



    정렬 후



    주의점으로서는, 폼 디자인과 실행시의 표시가 너무 괴리하면, 소프트 개발자(자신도 포함해)에 알기 어렵기 때문에, 미조정을 하는 정도로의 사용법이 좋은 것일지도 모른다.

    2016/02/02 추가



    상기 정도의 변경이라면, Ctrl을 누르면서 컴퍼넌트를 복수 선택해, Left, width등을 정리해 바꾸는 것이 간단한 생각이 되어 왔다.

    좋은 웹페이지 즐겨찾기