2013-07-29 3 views
-1

이전 버전의 Access와 비슷한 인터페이스를 구현하려고합니다. 이전 버전의 Access는 양식을 양식 내에 양식 안에 포함시킵니다.부모가있는 양식을 활성화하는 방법은 무엇입니까?

Screenshot of old Access with forms inside forms

은 내가 폼 (Form1) 및 TPanel과 (에 Panel1) 그 안에있다. 나는 다른 두 가지 형식을 만들어 부모 = Panel1;

enter image description here

문제는 내가 제목 표시 줄을 클릭하지 않는 한 내가 Form2를 활성화 (Form3의 앞에 그녀를 넣어) 할 수 없다는 것입니다. 폼 자체를 클릭해도 아무 효과가 없습니다. 폼을 드래그 할 때도 Form3 뒤에 있습니다. 폼을 클릭하거나 드래그하여 자동으로 "활성"(Form3 앞에 있음)으로 설정해야합니다.

어떻게 하시겠습니까? Delphi & C++ Builder 솔루션 모두 허용됩니다.

+3

왜 양식을 부모 용 패널에 사용하고 있습니까? MDI 인터페이스를 재발견하는 것 같습니다. MDI 자식 폼을 사용해보십시오. 필요에 따라 작동합니다. 다른 컨테이너와 유사한 오브젝트이고 다른 양식에 임베드되도록 설계된 프레임을 조사 할 수도 있습니다. –

+0

문제는 MDI 폼이 일반 폼의 움직이지 않는 부분으로 필요하며 MDI 폼 내부에 MDI 자식이있을 수 있다는 것입니다. – Tracer

+0

나는 그 의견을 이해하지 못한다. 당신은 더 자세히 설명해 줄 수 있습니까? –

답변

2

나머지는 MDI 대신 사용하는 것에 동의하지만 패널에 이러한 양식을 넣으면 양식이 아닌 요청자 제어가됩니다. 따라서 각 양식에 대한 Click 이벤트를 수신 한 다음 수신 할 때 BringToFront를 호출해야합니다.

procedure TForm3.FormClick(Sender: TObject); 
    begin 
    BringToFront; 
    end; 
난 당신이 이러한 환경에서 (제어 이벤트가 대신 발생 여부) 형태의 컨트롤 중 하나를 클릭하지만,이 일을하는 것은 당신에게 효과를한다면 이벤트가 작동하는 방법을 모르는

찾고있어.

+0

매우 간단합니다. 감사합니다. 비록 MDI 폼이 표준 컨트롤과 같이 움직이지 않는 파트이므로 일반 폼에 배치 할 수 있는지 확인하고 싶습니다. – Tracer

+0

작동하는 경우이 대답을 수락하는 것을 잊지 마십시오. –

관련 문제