delphi4arab منتديات دلفي للعرب
ما سبب ظهور الرسالة Override method should match ancestor عند التعامل مع Thread - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : ما سبب ظهور الرسالة Override method should match ancestor عند التعامل مع Thread (/showthread.php?tid=3843)



ما سبب ظهور الرسالة Override method should match ancestor عند التعامل مع Thread - abdelmalek - 29-01-2012

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

الرسالة :
PHP كود :
[DCC Hint] Unit1.pas(30): H2365 Override method TUploaderThread.execute should match case of ancestor TThread.Execute 
وهل تشكل خطر ؟؟

في أمان الله,,


ما سبب ظهور الرسالة Override method should match ancestor عند التعامل مع Thread - virtual - 29-01-2012

هذا تحذير وليس خطأ

عندما تقوم بعمل overried لدالة virtual موجودة في الصنف الاب . المترجم يتوقع منك بعض implementation ولكن اذا وجد الدالة فارغة . يقوم بحذيرك فقط


ما سبب ظهور الرسالة Override method should match ancestor عند التعامل مع Thread - kachwahed - 29-01-2012

وعليكم السلام ورحمة الله وبركاته
جرب توجيه reintroduce عوض override لحذفها.



ما سبب ظهور الرسالة Override method should match ancestor عند التعامل مع Thread - abdelmalek - 30-01-2012

بارك الله فيكم

إقتباس :عندما تقوم بعمل overried لدالة virtual موجودة في الصنف الاب . المترجم يتوقع منك بعض implementation ولكن اذا وجد الدالة فارغة . يقوم بحذيرك فقط
الإجراء Execute ليس فارغ أنظر الكود :
PHP كود :
protected
  
procedure Execute; override;
  
Procedure Upload;
-------------------------------------------------
procedure TUploaderThread.execute;
begin
  
If (Not Terminated) Then
     Upload
;
end; 
ماذا لو وضعة inherited; ذاخل الاجراء Execute :
PHP كود :
procedure TUploaderThread.execute;
begin
  inherited
;
  If (
Not Terminated) Then
     Upload
;
end; 
إقتباس :جرب توجيه reintroduce عوض override لحذفها.
[COLOR="DarkGreen"]نعم اخي الكريم حذفة الرسالة .....
[/COLOR]لكن ما الفرق بينهما (اصلا لم اعرف طبيعة هدا التحدير) ؟؟!

في أمان الله .


ما سبب ظهور الرسالة Override method should match ancestor عند التعامل مع Thread - kachwahed - 07-02-2012

inherited تقوم باستدعاء الحدث الأصلي قبل التعليمات التي بعده
reintroduce لإشعار الـ Compiler بإننا نريد (بالقوة) إعادة التعريف المنهج من جديد، وبالتالي لا ينذر يأي شيء
لا فرق (فيما أعلم) بينها وبين override من الناحية العملية.