본문 바로가기
코드 조각

VCL에서 Control의 위치 및 크기 조정하기

by 알 수 없는 사용자 2012. 5. 31.


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 함수를 이용하길 권장한다.