2014-12-18 2 views
0

현재 화면 중앙에 표시 할 전체 화면 응용 프로그램을 개발 중입니다. 나는 양식에 다음과 같은 설정을 설정 한 :중앙 집중식 전체 화면 응용 프로그램

WindowState:= wsMaximized 
FormStyle:= fsStayOnTop 

그러나 때문에 양식 높이와 너비 화면의 실제 해상도보다 훨씬 낮은 것에 양식은 왼쪽 위 모서리에 정렬됩니다. 또한 폼의 위치 설정을 사용하려고 시도했지만 원하는 설정은없는 것으로 보입니다. 그것들은 영향을 미치지 않거나 최대화 된 전체를 아래쪽 - 오른쪽 모서리쪽으로 이동시켜 뒤에있는 양식을 볼 수있게합니다 (나는 이것을 충분히 설명했으면 좋겠다).

감사합니다

+2

어떻게 하나가 전체 화면 중앙에 창을 가질 수있다? 중앙에 배치하거나 전체 화면으로 설정할 수 있습니다. 내가 여기서 뭔가를 놓치고 있니? – TLama

+0

응용 프로그램이 전체 화면이지만 양식이 오른쪽 및 아래쪽 방향으로 최대화되어 있기 때문에 최대화 된 양식이 화면의 가운데에 있지 않습니다. – Seryth

+1

양식이 최대화되었지만 양식의 구성 요소가 양식의 왼쪽 상단 모서리에 있다는 것을 의미합니까? 그렇다면 구성 요소를 패널에 배치하고 해당 패널을 양식 OnShow 이벤트의 가운데에 배치하십시오. –

답변

3

이해하는 방법 귀하의 질문은 양식, 등, 제대로 극대화한다는 것입니다,하지만 구성 요소에 설정된 자신의 왼쪽과 위쪽 속성에 따라 최대 폼의 왼쪽 상단 모서리에있는 폼 디자이너. 예를 들어

, 디자이너 설계로 형태 : 최대 때 나타납니다 (이 문제입니다)

enter image description here

양식과 같이

enter image description here

내 이해하는 경우 문제가 해결되면 해결 방법은 모든 구성 요소를 TPanel에 배치 한 다음 해당 TPanel을 폼의 가운데에 배치하는 것입니다.

두 가지 방법으로 TPanel을 가운데에 맞 춥니 다
1) 주석에 TLama가 제공 한 link과 같이 패널의 모든 앵커를 지우십시오 (false로 설정).
2) 센터 형태의 패널하여 onResize 이벤트 결과는 같습니다

procedure TForm4.FormResize(Sender: TObject); 
begin 
    Panel1.Left := (ClientWidth - Panel1.Width) div 2; 
    Panel1.Top := (ClientHeight - Panel1.Height) div 2; 
end; 

어느 방법 :

enter image description here

+0

감사합니다. 누군가가 설명에 대한 나의 나쁜 변명을 이해할 수있어서 기쁩니다. 이것은 효과가있다! – Seryth

관련 문제