Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[159] 팁! TRect 관련 팁들...
박지훈.임프 [cbuilder] 18917 읽음    1999-06-04 00:00
임펠리테리입니다.
오늘은 TRect, RECT 구조체와 관련된 내용들을 긁어모아봅시다.

TRect를 헬프에서 뒤져보면, 실제의 데이터멤버인 Left, Top, Right, Bottom은 왼쪽
위 좌표인 TopLeft와 오른쪽아래 좌표인  BottomRight와 유니언으로 되어있습니다.
그래서 만약 TRect r; 과 같이 정의했다면, r.TopLeft는 이 사각형 영역의 왼쪽위
좌표를 나타내는 TPoint형 객체입니다.

지정된 좌표로 TRect형 구조체 객체를 얻는 데 가장 많이 쓰이는 함수는 vcl 함수
Rect()입니다.left, top, right, bottom 값을 받아서 TRect형 구조체를 돌려줍니다.
이것은 Point() 함수가 x, y 값을 받아서 TPoint형 구조체를 돌려주는 것과 마찬가
지입니다.

이와 비슷하게 left, top, width, height 값으로 TRect형 구조체를 받아올 수 있는
함수는 vcl 함수 Bounds()입니다. 네개의 값을 넣어주면 TRect형으로 돌려줍니다.
width와 height로 지정하므로 무식하게 width = right - left; 이렇게 계산하는 것
보단 더 편리하겠죠.

컨트롤들은 TControl::BoundsRect 프로퍼티로 그 사각형 영역을 알아내거나 거꾸로
영역을 지정할 수 있습니다. TControl::SetBounds() 함수가 left, top, width,
height 등으로 좌표를 지정하는 것과 좋은 비교가 되죠.
만약 TRect r = Rect(10, 10, 400, 350); 이라고 선언된 r의 좌표대로 폼의 좌표를
맞추려면 this->BoundsRect = r; 이라고만 하면 됩니다. (this->~ 라고 한 것은
그냥 이 코드가 폼 상에 있음을 강조하려고 한거죠..)


TRect형은 윈도우즈의 RECT형과 상호 호환이 되죠. 그래서 RECT 형을 다루는 많은
API 함수들을 그대로 사용할 수 있습니다. InflateRect() 함수는 지정된 x, y만큼
넓이/높이를 증가/감소시켜줍니다. 이와 비슷하게 OffsetRect() 함수는 위치를
지정해준 만큼 옮겨(move)줍니다. UnionRect()를 사용하면 두 RECT형 좌표가 공유하
는 영역을 돌려줍니다.
PtInRect() 함수는 한 점이 RECT형 영역내에 있는지를 알려주는 불린형 함수입니다.
요긴하게 쓰이죠.


쩝... 너무 피곤해서.. 별도로 팁을 준비하기가 힘들어 그냥 떠오르는대로 주절거려
봤습니다. 하지만, 생각보단 쓸만하겠죠? ^^;;;

그럼 이만... (자야지.. 쿨....)




독립문에서 임펠리테리였습니다.



+ -

관련 글 리스트
159 팁! TRect 관련 팁들... 박지훈.임프 18917 1999/06/04
(링크)     C++Builder Tip'N Tricks > 팁! TRect 관련 팁들...
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.