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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[1169] 모바일 디바이스의 해상도에 따른 자동 해상도 맞추기
개성제어 [kscontrol] 8097 읽음    2015-11-21 09:51
보통 앵커와 레이아웃 콤포넌트를 사용하여 해상도에 따른 자동 배치를 많이 하는 걸로 검색되는데
대부분의 프로그램은 느슨하게 배치하여 가능하지만, 자동제어프로그램 처럼 버튼과 박스가 꽉차는 형태는 원형을 유지하기가
쉽지 않더군요. 그래서 배치가 완전 비례하고 폰트까지 같이 비례하는 Scale이라는 프로퍼티를 사용해보시길 권합니다.
 
첨에 모든 콤포넌트를 일일이 비례적으로 배치하고 스케일링도 해야되나 걱정했는데 바탕이되는 판넬이나 탭콘트롤 위에 올려진 콤포넌트들은 바탕만 바꾸면 모든 스케일이 같이 바뀌더군요.

참고로, 화면의  사이즈를 아는 방법은
float cWidth,cHeight,wRatio,hRatio;

  TSize *ScreenSize;
  cWidth=Screen->Width;
  cHeight=Screen->WorkAreaHeight;
  wRatio=cWidth/dWidth;
  hRatio=cHeight/dHeight; 

//where cHight/cWidth=current Height/Width , dHeight/dWidth=designed Height/Width


위와 같고 안테나표시를 제외한 워크에리어의 사이즈를 구하는 것은 Height 대신 WorkAreaHeight입니다.
리사이즈할 바탕 콤포넌트의 Position->X/Y 및 Scale->X/Y에 wRatio/hRatio만 곱하면 됩니다.

바탕을 하나의 판넬로 채웠을 경우 비율을 구하고 폼생성시 네 줄의 위치 및 스케일 조정으로 끝납니다.
디자인 해상도는 요즘 추세를 봐서는 FHD가 적당합니다. 줄이거나 늘이는 비가 작기 때문에....

+ -

관련 글 리스트
1169 모바일 디바이스의 해상도에 따른 자동 해상도 맞추기 개성제어 8097 2015/11/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.