2017-12-07 25 views
3

Point/Rect/Bounds (등)과 같은 기능이 ClassesTypes 단위로 선언되어 구현 된 것으로 나타났습니다.클래스와 유형 단위 모두에서 "Point"/ "Rect"/ "Bounds"(등)와 같은 함수가 선언되는 이유는 무엇입니까?

이유가 있습니까? 최신 델파이 버전에서도 마찬가지입니까?

은 이러한 유형 및 기능 Classes에서 선언 된 이전 버전에서

+0

모듈'클래스 '에는'유형'이 포함되어 있으므로 추측하지 못하는 이유가 있습니다. 그리고 그것은 도쿄에서 동일합니다 (아마도 하위 호환성을 위해서입니다). – Victoria

답변

13

을 (내 생각 엔 필요할 때 하나는 Classes 오버 헤드를 피하기 위해 Types 장치를 사용할 수 있다는 것입니다). 특히 크로스 플랫폼을 지원하기 위해 RTL이 개발됨에 따라 Classes을 포함하지 않는 유닛에서 이러한 유형을 사용할 수있게되었습니다.

Types 단위가 도입되었습니다. Types 장치에는 uses 종속성이 없으므로 아무리 낮은 수준이든 관계없이 다른 장치에서 안전하게 사용할 수 있습니다.

마스터 선언은 Types으로 이동되었으며 ClassesClasses에서 가져 오는 기존 코드의 이점을 위해 이러한 유형과 함수를 다시 내 보냅니다. 예를 들어 SysUtilsTypes을 사용하지만 Classes은 사용할 수 없습니다. 이러한 유형 및 기능을 Types과 같은 종속성없는 유닛으로 이동하면 해당 유형 및 기능을 사용할 수 있습니다.

이 변경 사항은 델파이 크로스 플랫폼 개발의 시작이었던 델파이 5와 델파이 6 사이에서 변경되었습니다. 그 경우 Kylix 였지만 RTL의 구조 조정은 Kylix가 포기 되었더라도 미래의 교차 플랫폼 개발에 도움이되었습니다.