2011-12-22 4 views
1

지난 5 년 동안 만든 수동으로 만든 양식이 최소한 300 개 이상 변형되어이 문제를 본 적이 없습니다. 나는 물론 주된 형식을 가지고 있고, 그 다음에는 더 작은 자식 형태들을 가지고있다. 이 자식 폼은 자동 생성이 아니며 코드에서 수동으로 선언되고 만들어집니다. 이 프로젝트는 여전히시기 상조이며,이 프로젝트에 제가 누락 된 코드가별로 없다는 것을 의미합니다. 하지만 문제는 폼을 만들고, 폼을 부모에게 할당하고, 폼을 보여줄 코드가 없다는 것입니다. 어쨌든 폼 자체를 보여줍니다.나없이 양식을 자동으로 보여주는 양식?

FControlPanel:= TfrmControlPanel.Create(nil); 
FControlPanel.Parent:= Self; 

그게 내가 만드는 모든 코드입니다. 실제 자식 폼에는 코드가 전혀 없습니다. 표시 되려면 적어도 FControlPanel.Show이 필요하지만 어쨌든 표시되는 이유가 있습니다.

나는이 행동이 무엇으로 시작되었는지 몰랐습니다. 그러나 나는 둘을 함께 둘 수 없다. 필자는 MDI 양식 기능을 사용하여 양식을 기본 양식 내에 보관하려고했습니다. 그러나 많은 시행 착오 시나리오 이후, 나는 포기하고 재산을 되찾았습니다. 내가 변경 한 유일한 속성은 FormStyle이었습니다 - fsMDIForm, fsNormal 및 fsStayOnTop간에 전환 한 주요 양식 (시험용). 자식 폼 나는 그들을 fsMDIChild로 바 꾸었습니다. 내가 포기하고 나자, 나는 그들을 모두 기본값 인 fsNormal로 되돌려 놓았다. 이 "자동 쇼"가 일어나기 시작했을 때 주변에서 놀고 난 후에.

또한 중요한 메모 인이 하위 양식은 마스터 양식에서 상속됩니다. 이 마스터 양식은 사실상 코드가 없으며 적어도 코드를 표시 할 수있는 코드는 없습니다. 내 코드 중 어디에도이 자식 폼을 표시하지는 않지만 어쨌든 않습니다. 그리고 나는 그들이 자동 창조적이지 않다는 것을 안다.

무엇을 잘못 할 수 있습니까?

추신 : 일반적으로 MDI를 구현할 때의 문제는 다른 질문이 있습니다. MDI에 대해 묻지는 않지만 구성 요소의 속성을 변경하면 영구적으로 예를 들어 TPanel에서 "ParentBackground"를 true로 전환 한 다음 다시 false로 전환하면 XPMan을 사용할 때 지정된 색상이 올바르게 표시됩니다.

답변

6

서식의 서식을 fsMDIChild으로 설정하면 양식의 Visible 속성이 True으로 변경됩니다. 이제는 양식을 만들 때마다 기본적으로 표시됩니다 ... Visible 속성을 다시 False으로 변경하면 "자동 표시"동작이 종료됩니다.

+0

빙고! 많은 감사합니다 - 양식에 Visible 속성이 있다는 것을 잊어 버렸습니다. 한번도 사용하지 않았습니다 ...+1 그리고 수락 : D –

+0

그래서 그 경우, 나는 'Visible' 속성이 생성시 표시되는지 여부를 지정하기위한 것입니다. 나는 항상 양식에 표시/숨기기를 사용했습니다 ... –

+0

예. 나는 그것이 자동 생성 된 양식에 사용하기 위해 indended 것 같아요. – ain

0

MDIChild 폼에서 Visible 속성을 False로 변경할 수 없습니다.

  • 열기 프로젝트 -> 옵션
  • 을 "형태를 자동 생성"에서 각 MDI 자식 폼을 선택 목록을 클릭 :

    는 다음을 수행 델파이 7에서 MDIChild 폼의 자동 보여주는를 해결하려면 ">"단추를 사용하여 양식을 "사용 가능한 양식"목록으로 이동하십시오.

  • 예를 들어 MDI 기본 양식, 로그인 양식 및 데이터 모듈과 같이 "자동 생성"하려는 양식 만 입력하도록하십시오.

넬슨 산토스

관련 문제