خطأ عند تنفيذ برنامج قديم؟
#1
السلام عليكم

عند تنفيذ برنامج قديم يظهر هذا الخطأ  E2003 Undeclared identifier: 'SListIndexError

السطر الذي ظهر فيه الخطأ

كود :
procedure TIniItems.Delete(Index: Integer); begin   if (Index < 0) or (Index >= FCount) then Error(@SListIndexError, Index);   Finalize(FList^[Index]);   Dec(FCount);   if Index < FCount then     System.Move(FList^[Index + 1], FList^[Index],       (FCount - Index) * SizeOf(TIniItem)); end;

الخطأ هنا  @SListIndexError

هل الدالة  Error(@SListIndexError, Index) لم تعد تعمل ؟ وما هو دورها؟لم أفهمها

بحثت ولم أجد سوى هذه الإجابة
الآن هي موجودة في unit RTLConsts ولم تعد موجوده في unit Consts
لم أفهم شيء  Huh
الرد
#2
و عليكم السلام و رحمة الله

الظاهر ان هذه الأوامر تابعة لمكون FastIniFile

SListIndexError هي مجرد قيمة نصية ثابة يتم اضافتها الى ressources الملف التنقيذي و يتم استدعائها من مؤشرها عند حدوث استثناء...

مبرمج المكون اعتمد بشكل كبير على  Compiler Version Directives كمحاولة دعم عدة منصات و اصدارات...
و بما ان المكون لم يتم تحديثة لدعم اصدارات دلفي الأخيرة  تسببت Compiler Version Directives في عدم اضافة وحدات مثل RTLConsts...

كحل سريع تابع اخي الصورة المتحركة...

المكون يحتاج الى اعادة كتابة Compiler Version Directives لدعم اصدارات دلفي الحديثة و فحص تأثيرها على سير تنفيذ الأوامر...

[صورة: G4151WF.gif]
[-] كل من 5 users say قال شكرا ل Insid3Code على المشاركة المفيدة
  • ALG2009, haniid, takaya5, Delphi4Us, wadoud
الرد
#3
جزاكم الله خير أخي عل التوضيح
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم