파워빌더의 기본 컴포넌트는 화면 크기에 따라 자동으로 리사이즈되는 기능이 없다. 그래서 여기저기 뒤지다가, 파워빌더 Code Exchange(https://powerbuilder.codexchange.sybase.com/ 로그인 필요)에서 resize.pbl이라는 샘플을 얻을 수 있었다.
그런데 한가지 문제는 DataWindow의 컬럼의 리사이즈를 단지 Zoom속성으로 처리 했다는 것이다.
그러면 화면이 이렇게 된다.
Resize - OLD 화면 리사이즈 전
Resize - OLD 화면 리사이즈 후
다른 컴포넌트들은 잘 리사이징 되어서 이 소스를 수정해서 컬럼 사이즈도 리사이즈 되게 했다.
Resize - NEW 화면 리사이즈 후
Resize - NEW 화면 리사이즈 후
소스는 첨부된 resize.zip파일로 올렸다.
모든 기능은 uo_resize 오브젝트가 처리한다.
윈도우 오브젝트의 open이벤트에 다음과 같이 작성해 준다.
iuo_resize = CREATE uo_resize
iuo_resize.of_setTag(This)
그리고 resize이벤트에는 다음과 같이 작성해 준다.
iuo_resize.of_doResize(This)
이러면 끝!
of_setTag 함수로 Tag 속성에 화면 대비 컴포넌트의 X, Y, Height, Width 비율을 설정해 두었다가, of_doResize함수에서 그비율을 화면크기랑 곱해서 각 컴포넌트의 사이즈를 결정하도록 하고 있다. 말로 설명한게 이해가 잘 안가면 uo_resize오브젝트를 뚤어져라 분석하면... (후다닥~!)
첨부한 샘플은 10.5버젼이다. new uo_resize 폴더에 있는 두개의 Export받은 오브젝트들은 새로운 uo_resize용이고 기존 소스샘플은 파워빌더 Code Exchange를 참고 하시길 바랍니다.

파워빌더 화면 Resize Sample: resize.zip
'관심꺼리.log > 정신노동.dat' 카테고리의 다른 글
SyntaxHighlighter 테스트 (0) | 2009.04.29 |
---|---|
[파워빌더 Tip] 상속받은 오브젝트의 부모 오브젝트명 알아내기 (0) | 2008.10.02 |
파워빌더 기본 함수 (0) | 2008.09.30 |
파워빌더 Datawindow 페이지단위 스크롤 처리 Tip (0) | 2008.04.30 |
TOAD의 SQL Monitor를 이용한 오라클 쿼리 캡쳐 (0) | 2008.04.29 |
PowerBuilder for RIA 2008 (0) | 2008.04.28 |