VCL에서 Control의 위치 및 크기 조정하기
Parent-Window의 크기에 가변적으로
Child-Control 의 크기및 위치를 조정하고자 하는 경우에...
Form의 Resize이벤트 등에 Control의 위치 및 Size를 조정해주곤 한다.
Control->Left = Control->Parent->ClientWidth / 2 ; Control->Top = Control->Parent->ClientHeight / 2 ; Control->Width= Control->Parent->ClientWidth / 4 ; Control->Height= Control->Parent->ClientHeight / 4 ; |
그런데 위와같이 코딩을 여러개의 Control에 적용하면 문제점이 발생할수 있다.
그 이유는 Control의 Left / Top / Width / Height 어느 한가지만 변경하여도
실제 위치및 크기조정 함수가 호출되면 화면 Paint이벤트가 발생하게 된다.
위와같이 Control의 위치및 크기 Property중 1가지 이상 변경하고자 할때는 ..
Control->SetBounds(iLeft,iTop,iWid,iHei); 함수를 호출해줘서
한번에 위치및 크기를 수정해주는것이 좋다.
최대 4배의 시간및 cpu자원의 이득을 얻을수 있을것이다.
Control의 위치및 크기를 조절할때는 SetBounds 함수를 이용하길 권장한다.
'코드 조각' 카테고리의 다른 글
보조 모니터 좌상단 좌표는 (0) | 2012.05.03 |
---|---|
Application->MessageBox() 사용하기 (1) | 2012.04.25 |
DBGrid Multiselect 했을때 각각의 Row 처리 (0) | 2012.04.24 |
TComboBox Enter 키로 DropDown 제어하기 (0) | 2012.04.24 |
ProcessId로 Application의 Hung체크 (0) | 2012.04.24 |