자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey [FMX] System.IOUtils 설정 위치는 implementation 밑에 있어야 하나요?
2017.03.24 17:31
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
또 궁금증이 발동해서 개발자 여러분들께 여줘봅니다.
TPath 등을 사용하기 위해서는 System.IOUtils를 설정해줘야 합니다.
[VCL]에서는 Interface 밑에 전역으로 설정합니다만
[FMX]에서는 implementaion 밑에 넣어야만 TPath 등이 인식을 합니다.
뭔가 델파이에는 차이가 있나요?
감사합니다.
Firemonkey [FMX] System.IOUtils 설정 위치는 implementation 밑에 있어야 하나요?
2017.03.24 17:31
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
또 궁금증이 발동해서 개발자 여러분들께 여줘봅니다.
TPath 등을 사용하기 위해서는 System.IOUtils를 설정해줘야 합니다.
[VCL]에서는 Interface 밑에 전역으로 설정합니다만
[FMX]에서는 implementaion 밑에 넣어야만 TPath 등이 인식을 합니다.
뭔가 델파이에는 차이가 있나요?
감사합니다.
VCL과 FMX 모두 동일하게 uses절을 구성해도 됩니다.
즉, VCL과 FMX 모두 interface나 implimentation 섹션의 uses 절에 System.IOUtils 유닛을 선언해도 됩니다.
두가지 방식의 차이점을 이해하려면 interface와 implimentation 섹션에 대한 이해가 필요합니다.
interface 섹션은 해당 유닛 뿐아니라 다른 유닛에서 참조할 수 있는 영역입니다.
implimentation 섹션은 해당 유닛만 참조하는 영역입니다.
interface uses 절에 추가하는 경우 해당 유닛 뿐 아니라 해당 유닛을 참조하는 다른 유닛에게 까지도 영향을 줍니다.
즉, interface 절이 변경하면 해당 유닛을 참조하고 있는 다른 유닛들도 다시 컴파일하게됩니다.
또, 두개 유닛이 서로를 참조하는 순환참조하는 경우 implimentation uses 절에 선언해야 하는 등의 목적으로 많이 사용됩니다.
결과적으로 어떤 섹션의 uses 절에 넣어도 크게 상관없습니다.
두 섹션의 차이점은 가시성입니다.
interface 섹션의 uses 절에 선언할 경우 해당 유닛의 모든 구역과 다른 유닛에서도 참조여부를 알수 있습니다.
implimentation 섹션의 uses 절의 경우 해당 유닛의 구현부(implimentation 이후)에서만 유닛의 내용을 참조할 수 있습니다.
위의 차이로, 2개의 유닛이 순환참조하는 경우 implimentation의 uses 절에 순환참조하는 유닛을 넣어 해결할 수 있습니다.
그 외에는 코드의 작서