تصحيح البلاط غير الرسمي لتمكين دعم ANSistring في Delphi Generation
System.bytestrings لـ Delphi 10.2-10.3
Delphi 10.1+ Berlin يعيد تقديم UTF8STRING و RAWBYTESTRING لمرسلات NextGen (Android ، IOS ، Linux). ولكن لا يزال المفقودين. يتمتع المترجم بدعم كامل لهم ، لكن لا يمكنك استخدامه لأنه يتم إعلانه مع ترتيب ترفيسي رائد في النظام. PAS ما الذي يجعلها لا يمكن الوصول إليها لأن "_" يتم تجميعها إلى "@" ما لا يمكنك استخدامه لمعرف المعرف.
من خلال تصحيح ملفات DCU ، من الممكن جعل هذه الأنواع المخفية متاحة.
نظام الوحدة.
أضف system.bytestrings.dcu مسار البحث عن المترجم وأضف الوحدة إلى استخدام الجمل.
لا يوجد ملف system.bytestrings.pas لأن DCU مصححة باستخدام محرر Hex للوصول إلى الأنواع المخفية.
بشكل عام ، لم تعد هناك حاجة إلى System.ByTestrings في 10.4+ ، من أجل التوافق ، يمكنك استخدامه مثل هذا:
يستخدم {$ if rtlversion <34.0} system.bytestrings ، {$ endif} ...
انظر Delphi 10.4: https://www.embarcadero.com/products/rad-studio/whats-new-in-10-4-sydney
إدارة الذاكرة الموحدة
أصبحت Delphi Memory Management الآن موحدة عبر جميع المنصات المدعومة - الأجهزة المحمولة وسطح المكتب والخادم - باستخدام التنفيذ الكلاسيكي لإدارة ذاكرة الكائن. بالمقارنة مع العد المرجعي التلقائي (ARC) ، يوفر هذا توافقًا أفضل مع التعليمات البرمجية الحالية والترميز البسيط للمكونات والمكتبات وتطبيقات المستخدمين النهائيين. يبقى نموذج ARC لإدارة السلسلة ومراجع نوع الواجهة لجميع المنصات. بالنسبة إلى C ++ ، يعني هذا التغيير أن إنشاء وحذف فئات طراز Delphi في C ++ يتبع إدارة الذاكرة العادية تمامًا مثل أي فئة C ++ المخصصة للمواد ، مما يقلل بشكل كبير من التعقيد.