2011-01-12 11 views
2

Borland C++로 작성된 기존 툴을 향상시키기 위해 프로그래밍 및 C++ 빌더를 처음 사용합니다. 이 작업은 팝업 된 메시지 상자를 기본 양식 자체에 통합하는 것으로, 새 양식을 프로젝트에 추가하고 메시지 상자 대신 호출하여 성공적으로 수행했습니다. 사용자가 옵션을 선택할 때까지 컨트롤이 차단되도록 새 양식 모달을 만들었습니다.Borland C++ 빌더에서 모달 및 모덜리스 폼을 작성하는 방법

이제는 그래프라는 다른 폼을 프로젝트에 추가하여 그래프를 표시하고 사용자가 새 폼의 단추를 클릭 할 때 그래프로 이동하려고합니다.

두 명의 자녀를 모덜리스로 만들고 부모 양식 만 모달 처리하는 방법이 있습니까 (모달). 간단히 말해서 나는 새 프로젝트에 추가 한 양식과 내 기본 양식에 액세스하고 싶지 않습니다. , 나는이 두 가지 형태로 모든 선택을 할 때까지. 친절히 도와주세요!

+0

아이들이 모덜리스를 형성하고 볼랜드 C++ 빌더의 기본 폼 (모달) 만 차단하는 방법이 있습니까? – Dolly

답변

3

오히려 ShowModal()를 사용하는 것보다, 당신은 false로 부모 폼의 Enabled 속성을 설정 두 형태를 보여 Show()를 사용하고, 두 형태가 폐쇄되었을 때 다음 true로 다시 부모 폼의 Enabled 속성을 설정할 수 있습니다.

+0

하지만 부모 폼이 rite를 실행하는 것을 차단하지 않습니까? 대화 상자를 표시하지 않고 부모 양식을 대기 상태로 만들려면 어떻게해야합니까? – GuruC

+0

상위 폼은 여전히 ​​메시지 (타이머, 페인팅 등)를 처리하지만 비활성화 된 사용자는이 메시지와 상호 작용할 수 없습니다. 또한 이전 버전의 C++ Builder를 사용하는 경우 보조 폼의'CreateParams()'메서드를 재정 의하여 부모 폼을 부모 HWND로 지정해야 할 수도 있습니다 (Win32 API의 관점에서 볼 때 VCL) 그 창은 부모 폼의 창 뒤에 사라지지 않을 것입니다 (기본값은 부모 HWND 대신'TApplication' 윈도우를 사용하여 TForm 창이 서로 관련하여 z 순서를 바꿀 수 있습니다) ... –

+0

... 새로운 버전에서,'TForm'과'TApplication'은 새로운'PopupMode'와'PopupParent' 속성을 가지고 있습니다. 의미, 당신은 두 번째 양식의'PopupParent' 속성을 부모 폼으로 설정할 수 있습니다. 그리고 나서 그들은 결코 뒤따라 갈 수 없습니다. –

0

create 중에 자동으로 실행하지 않으려는 기능을 OnCreate() 방법에서 이동할 수 있습니다. 예를 들어로 이동시킬 수 있습니다. OnClick(). 프로그램 create 중에 Show() 메서드가 실행되는 비슷한 상황에 직면했습니다. OnCreate() 대신 OnActivate() 메서드를 구현하고 거기에서 Show() 메서드를 호출했습니다.

관련 문제