자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Q,

ClassGroup은 10.2부터 추가된 건가요? 그리고, 멀티플랫폼 개발에서 unit작성할때마다 필수로 추가해야 하나요?

 

A,

CLASSGROUP 지시어는 VCL과 멀티플랫폼을 지원하는 경우 아래와 같이 다르게 지정해야 합니다.

 

VCL인경우

{%CLASSGROUP 'Vcl.Controls.TControl'}

멀티플랫폼 지원하는 경우

{%CLASSGROUP 'System.Classes.TPersistent'}

 

위와 같이 지정하는 이유는

웹모듈(WebModule)과 데이터모듈(DataModule)은 VCL(윈도우전용)과 멀티플랫폼 지원하는 경우(콘솔, FMX 등) 모두에서 사용하는 유닛입니다.

웹모듈과 데이터 모듈에는 논비주얼 컴포넌트를 추가할 수 있는데, CLASSGROUP에 따라 컴포넌트가 참조하는 유닛이 달라집니다.

 

예를 들어 FireDAC의 Wait 유닛의 경우

VCL인 경우 FireDAC.ConsoleUI.Wait,

멀티플랫폼 지원의 경우 FireDAC.VCLUI.Wait를 사용해야 합니다.

 

만약 멀티 플랫폼에서 FireDAC.VCLUI.Wait를 사용하는 경우 Vcl관련 라이브러리를 참조하기 때문에 컴파일 오류가 발생합니다.