delphi4arab منتديات دلفي للعرب

نسخة كاملة : خطأ عند تنفيذ برنامج قديم؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

عند تنفيذ برنامج قديم يظهر هذا الخطأ  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
و عليكم السلام و رحمة الله

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

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

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

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

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

[صورة: G4151WF.gif]
جزاكم الله خير أخي عل التوضيح