2013-03-05 3 views
0

그래서, 내가 winform에 패널을 가지고 있고, 특정 지점에 표시하고 특정 너비와 높이가 winform에 있어야한다고 말하자. 게다가, 나는 런타임 중에 그것을하고 싶다.컨트롤의 범위와 컨트롤의 X, Y, 너비, 높이 설정의 차이점은 무엇입니까?

그래서, 패널의 치수를 이동하고 설정하는 올바른 방법과 차이점은 무엇입니까?

이 방법 :

Panel1.bounds.X:=10; 
Panel1.bounds.Y:=10; 
Panel1.bounds.width:=100; 
Panel1.bounds.height:=103; 

또는이 방법 :

Panel1.Left := 10; 
Panel1.Top := 10; 
Panel1.width:=100; 
Panel1.height:=103; 

또는 두 가지 방법이에 Panel1에 같은 효과를 가져야한다.

내 프로그램에 실제로 어떤 문제가 있는지 알아 내려고합니다 ... 내 문제와 관련된 질문을했지만 아무도 답변을 시도하거나 심지어 의견을 남길 수는 없었습니다. 그래서, 나는 내 문제를 이해하기 위해 약간의 질문을하고있다.

+1

[이 질문에 대한 참조 (http://stackoverflow.com/q/15210229/62576), 막연하게 생각할 수 없기 때문에 나는 그것에 답하거나 의견을 말할 수 없었다. 당신이 묻고있는 것을 맞춰보세요. (같은 이미지를 사용했지만 혼란스럽고 대답을하지 않은 버전 이전 버전과 같아요.)이 버전은 훨씬 더 명확하고 실제로 사용자가 원하는 내용을 분명히합니다. 이전 버전을 수정하여 명확하게 작성하면 아마도 거기에 대한 답변도 얻을 수 있습니다. :-) –

답변

1

Bounds을 설정하려면 사각형을 사용해야합니다. (내 예제에서 구문의 실수를 용서해주세요. 내 델파이 조금 녹슨)

BoundsRect: Rectangle; 
BoundsRect.X = 10; 
BoundsRect.Y = 10; 
BoundsRect.Width := 100; 
BoundsRect.Height := 103; 
Panel1.Bounds := BoundsRect; 

일반적으로 사용하는 거라고 설정하거나 여러 속성을 변경하려면 그. 당신은 단지 하나 개 또는 두 개의 속성을 설정하려는 경우, 당신은 Width, Top을 사용할 수있는 등

또 다른 차이점은 당신이 그 속성 중 하나 (중 Bounds, 또는 개별 속성 중 하나)을 설정할 때마다, 그것을 (창 이동 및 다시 그리기 등) 많은 작업을 초래합니다. 사각형에서 Bounds 속성을 설정하면 작업량이 줄어 듭니다.