delphi4arab منتديات دلفي للعرب
خطأ عند تنفيذ برنامج قديم؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : خطأ عند تنفيذ برنامج قديم؟ (/showthread.php?tid=12353)



خطأ عند تنفيذ برنامج قديم؟ - ALG2009 - 21-07-2023

السلام عليكم

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


RE: خطأ عند تنفيذ برنامج قديم؟ - Insid3Code - 22-07-2023

و عليكم السلام و رحمة الله

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

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

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

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

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

[صورة: G4151WF.gif]


RE: خطأ عند تنفيذ برنامج قديم؟ - ALG2009 - 22-07-2023

جزاكم الله خير أخي عل التوضيح