이전 사용자 지정 양식 디자이너를 Delphi의 폼 디자이너로 바꾸려고합니다. 우리의 응용 프로그램은 우리 자신의 보고서 작성자가 사용할 수있는 양식을 생성하는 사용자 정의 프로그램을 사용했습니다. 이전 응용 프로그램을 유지하기 어렵고 폼 디자이너를 위해 Delphi를 사용하는 것이 좋은 방법 인 것 같습니다. 이 양식을 사용하는 응용 프로그램은 Delphi로 작성되었지만 실제로 양식으로 표시되지는 않습니다. 구성 요소를 반복하고 보고서를 생성합니다.양식의 다른 구성 요소를 옮길 때 사용자 지정 구성 요소 업데이트
현재 양식 디자이너의 기능 중 하나는 "이웃 목록"입니다. 이웃 목록은 양식의 모든 셀에 대해 다음 위, 아래, 오른쪽 및 왼쪽 셀을 추적합니다. 오래된 디자이너는 디자인 단계에서 양식을 저장할 때이 목록을 업데이트합니다.
다른 모든 것들은 일반적인 컨트롤 속성 (위치, 높이, 너비 등)을 매우 쉽게 추적 할 수 있어야합니다. dfm에서이 유형의 이웃 정보를 생성하고 저장하는 방법을 알아낼 수 없습니다.
디자인 타임에 폼의 구성 요소가 변경되면 이벤트가 발생하도록하는 방법이 있습니까? 또는 양식을 저장할 때의 이벤트입니까?
나는이 문제에 대해 두 가지 접근법을 생각했다. 1) 각 개별 컨트롤에 이웃 정보를 유지한다. 그것은 일종의 일이지만 업데이트 할시기를 알 수있는 이벤트를 얻을 수 없다면 양식의 다른 컨트롤을 이동할 때 동기화 상태가 해제되는 문제가 있습니다.
2) 목록을 추적하는 비 시각적 구성 요소가 있습니다. 목록을 다시 생성 할 수있는 "업데이트"단추가있는 사용자 지정 속성 편집기 페이지를 추가 할 수는 있지만 최종 버전을 저장하기 전에이를 클릭해야한다는 것을 기억해야합니다. 나는 그 단계가 빠져있는 것을 볼 수 있으며 오히려 그냥 작동하는 무언가를 가질 것입니다.
또한 런타임에 이웃을 동적으로 찾기 위해 응용 프로그램을 변경할 수도 있지만 디자인 타임에 작동하도록하는 방법을 찾을 수 있기를 기대했습니다.
모든 버전의 Delphi 용 솔루션이 효과적입니다.
이것이 일반적인 생각이 아닌 이유에 대한 의견은 내가 올바른 방법이라고 100 % 확신하지 못했기 때문에 일반적으로 좋지 않을 것입니다. :-)
처음부터 이웃 목록을 가지고있는 이유를 밝히지 않았기 때문에 이것이 좋은 아이디어인지는 말하기 어렵습니다. 왜 그런 목록이 필요한지 우리에게 말하면, 우리는 유지 보수를 자동화하려고 시도하는 것이 좋은 생각인지 말할 수 있습니다. –
Rob의 질문에 대한 결론 : 현재 VCL Form에서 탭 순서를 지원하고 이웃 목록을 잊지 않는 이유는 무엇입니까? –
다음과 이전보다 더 많은 것을 필요로하기 때문에 이웃리스트가 필요합니다. 또한 위, 아래, 왼쪽, 오른쪽이 필요합니다. 현재 사용자는 화살표 키를 사용하여 서식을 따라 이동하여 데이터를 입력 할 수 있습니다. 또한 "다음"및 "이전"개념이 탭 키에 매핑됩니다. 그리드를 생각해보십시오. 각 셀은 위쪽, 아래쪽, 왼쪽 및 오른쪽을 가질 수 있지만 탭 키를 사용하면 다음 열의 맨 위로 이동할 수 있습니다. "좋은 아이디어"라는 질문은 현재 사용자 정의 빌드 디자이너를 업데이트하는 대신 일반적으로 Delphi 폼 디자이너를 사용하는 것에 관한 것입니다. –