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

C++빌더 Q&A
C++Builder Programming Q&A
[45342] Re:Constraints에 대해 질문이 있습니다.
박지훈.임프 [cbuilder] 798 읽음    2006-06-18 14:41
리사이즈할 때 폼이 지정한 값(300)보다 일단 작아졌다가 다시 300으로 리사이즈되기 때문에 생기는 현상입니다.
왼쪽 위를 드래그하면 일단 300보다 작아졌다가 다시 300으로 리사이즈된 거죠.

그런데 이건... VCL의 버그라고 보이네요. 일반 컨트롤과 달리 폼에서는 일단 리사이즈된 후에 다시 Constraints에서
지정한 사이즈로 리사이즈되는 것이 아니라, WM_GETMINMAXINFO 메시지를 이용해서 드래그하는 중에도 Constraints
이하로는 리사이즈되지 않도록 되어 있는데요. 방금 폼의 VCL 소스를 보니 그 루틴이 절대로(영원히!) 실행되지 않도록 된
로직 버그가 있군요. 볼랜드에 레포트하도록 하겠습니다.

어쨌든... VCL에서 그런 버그가 있더라도 직접 WM_GETMINMAXINFO 메시지를 처리해주면 됩니다.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=5895

참고로, WM_GETMINMAXINFO 메시지를 직접 처리하는 경우에는 Constraints를 잡아주면 안됩니다.

그럼...


서비 님이 쓰신 글 :
: this->Constraints->MinWidth = 300;
:
: 1. 폼에 최소 너비값을 300을 주고 리사이징을 합니다.
: 2. Right, Bottom 영역에서 마우스로 폼을 리사이징 할 때는 정상적으로 동작합니다.
: 3. Left, Top 영역에서 마우스로 폼을 리사이징 할 때는 폼이 최소 사이즈가 되었을 때 마우스가 움직이는 방향으로 폼도 같이 움직이게 됩니다.
:
: 이건 원래 빌더에서 그렇게 정책적으로 정한건지 좀 부자연스러운 동작으로 보입니다.
: 해결 할 수 있는 방법이 있을련지요.
:
: 매번 도움이 필요할 때만 찾아와서 죄송스럽네요 ^^

+ -

관련 글 리스트
45326 Constraints에 대해 질문이 있습니다. 서비 712 2006/06/16
45342     Re:Constraints에 대해 질문이 있습니다. 박지훈.임프 798 2006/06/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.