Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

흔하게 마주치는 VCL과 파이어몽키(FMX)의 차이점들 요약


Recommended Posts

Docwiki에 있는 "Commonly Encountered Differences Between the VCL and FireMonkey"를 번역한 글 (최종 번역일: 2023년 7월)

 

위로 가기: GUI Application Frameworks

 

파이어몽키(FMX)VCL과 표면적으로 유사하게 설계되었다. 하지만, 여러 가지 작은 차이점으로 인해, VCL에 익숙한 사람이라면 당황할 수 있다. 이 글은 이러한 차이점 중 일부를 다룬다.

목차


 

1 액션(Actions/동작)

VCL 액션(Action)과 달리, 파이어몽키(FMX) 액션액션 매니저(action manager)를 지원하지 않는다. 그러므로, VCL 액션 매니저(Action Manager) 에디터는 파이어몽키(FMX) 액션을 관리하는데 사용할 수 없다.


2 체크 박스(Check Boxes)

파이어몽키(FMX)에서 체크박스의 체크 상태 변화에 반응하려면 OnChange 이벤트를 사용해야 한다 (참고로,  VCL에서는 OnClick 이벤트를 사용해야 한다) 체크 상태를 반영하는 프로퍼티(Property)는 IsChecked이다 (참고로, VCL에서는 Checked임).

3 자식-부모 관계(Child-Parent Relationships)

VCL에서 다른 컴포넌트의 부모가 될 수 있는 오브젝트는 TForm, TFrame, TPanel, 데이터 모듈(Data Module) 뿐이었다. 파이어몽키(FMX)에서는 어떤 오브젝트든 다른 오브젝트의 부모가 될 수 있다. 그리고 그 관계는 스트럭처 뷰(Structure View)에서 쉽게 설정할 수 있다.

4 색상(Colors)

파이어몽키 색상에는 RGB 외에도 알파(불투명도, opacity) 요소가 있다. 색상은 시스템 타입(system type)인 TAlphaColorTAlphaColorRec로 표현된다. 파이어몽키(FMX)는 System.UIConsts 유닛의 색상 상수를 사용한다. 이러한 색상 상수 앞에는 접두사 "cla"가 붙는다 (참고로, VCL에서는 "cl"이 붙음, VCL의 색상을 참고).

5 컨트롤 위치잡기(Control Positioning)

VCL에서, 컨트롤의 위치는 TopLeft 프로퍼티로 표현된다.

파이어몽키(FMX)에서, 컨트롤의 위치는 Position 프로퍼티를 사용한다. 이 프로퍼티은 XY 프로퍼티가 들어있는 TPosition 타입이다. 3D 컨트롤에서 Position 프로퍼티TPosition3D의 인스턴스이며, Z 좌표도 있다. 파이어몽키(FMX)에서 크기는 Width와  Height를 사용한다 (3D 컨트롤에는 Depth도 있다)

6 데이터베이스 그리드 이벤트(Database Grid Events)

VCL 이벤트인 OnDrawDataCell 또는 OnDrawColumnCell은, 파이어몽키(FMX)에서 TStringGrid라이브 바인딩(LiveBindings)을 함께 사용하여 대체할 수 있다.

7 텍스트 표현(Display Text)

파이어몽키(FMX) 레이블(Label)에 표시되는 텍스트는 Text이다 (참고로, VCL에서는 Caption임).

8 글꼴 크기(Font Size)

VCL에서, 글꼴 크기는 포인트(point) 단위를 사용한다. 1 (논리적) 인치당 72포인트이다.

파이어몽키(FMX)에서, 글꼴 크기는 장비 독립적인 픽셀(DIP, Device-Independent Pixel) 단위를 사용한다. 1 (논리적) 인치당 96픽셀이다.

따라서 동일한 Font.Size를 사용하면, 파이어몽키(FMX)에서 더 작게 텍스트가 표현된다.

9 마스킹되는 에디트(Masked Edit)

VCL의 TMaskEditTEdit은 파이어몽키(FMX)에서 TEdit과 해당 Password 프로퍼티를 사용하여 구현할 수 있다.

10 라디오 버튼과 그룹(Radio Buttons and Groups)

VCL TRadioGroup은 파이어몽키(FMX)에서 TPanel 또는 TGroupBox를 사용하여 변환할 수 있다.

참고: 파이어몽키(FMX)에서, 라디오 버튼과 같은 항목은 TPanel에서 지원하지 않는다.

각 VCL TGroupBox 안에 있는 라디오 버튼들은 독립적이다. 여러 VCL TGroupBox를 파이어몽키(FMX) TGroupBox로 변환하면, 그 안에 있던 라디오 버튼들이 독립적이지 않게 된다(한 그룹에서 선택하면 다른 그룹에서 선택이 취소됨). 파이어몽키(FMX)로 변환된 각 라디오 버튼들의 독립성을 복원하려면, 각 TRadioButton에서 GroupName 프로퍼티를 수동으로 지정해야 한다.

11 기타 자료 (See Also) 

Migrating VCL Applications to FireMonkey
 

이 댓글 링크
다른 사이트에 공유하기

RAD 스튜디오에서 제공하는 GUI 프레임워크는 크게 두 가지입니다. 

  • 윈도우 전용으로 오래 전부터 널리 알려진 VCL 프레임워크 (since 1995)
  • 멀티-플랫폼용으로 (윈도우, 안드로이드, 맥OS, iOS 등을 하나의 코드 베이스로 개발하는) 파이어몽키(FMX) 프레임워크 (since 2011)

위에 간략히 소개된 일부 차이점보다 더 자세히 파이어몽키(FMX)을 이해하고 싶을 때 참고할 추천 자료:

기타, 추천 자료가 있으면 댓글로 남겨주세요.

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.