30-03-2013, 01:19 PM
السلام عليكم ورحمة الله و بركاته
اليوم و أنا أحاول كتابة دوال جديدة لمشروعي .. صدف و أن وجدت Bug في الدالة Ord
الدالة Ord لا تدعم ال Unicode !! في جميع نسخ دلفي الحديثة ..
المشكل هو أن حجم ال Char في اليونيكود = word , لكن في الدالة ord ال Result من نوع Byte
لقد قمت بالتبليغ عن هذه المشكلة في ال QC
الحل : الحل بسيط جدا
PHP كود :
function FastORD (c:Char):{$IFDEF UNICODE} WORD {$ELSE} Byte {$ENDIF};
asm
{Note : The RTL ORD Function Does not support Unicode }
{Use FastORD to support Unicode }
{Do nothing !!}
end;
كما تلاحظ تستطيع استخدام الدالة FastOrd لدعم اليونيكود
PHP كود :
Edit1.Text := IntToHex(Ord('ج'), 4); // Return 00CC
Edit2.Text := IntToHex(FastORD('ج'), 4); // Return 062C

