delphi4arab منتديات دلفي للعرب
ال Overload ,, ما هو ؟ - نسخة قابلة للطباعة

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



ال Overload ,, ما هو ؟ - AL-MOB4RM3G - 10-12-2009

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

اخواني الكرام,, كثيرا ما ارى هذه الكلمة Overload في اوآخر الفونكشن مثلا
+ انه لو تم حذف هذه من الفونكشن فإن الفونكشن في بعض الأحيان لا يعمل
مثآل
PHP كود :
function read(data: pointer; len: unsigned): unsigned; overload; 
فما معناهى هذه بارك الله لكم ؟
والسلام عليكم


ال Overload ,, ما هو ؟ - TF6M - 10-12-2009

السلام عليكم
ببساطة هو "توجيه" يسمح بتعريف دالتين أو إجرائين "لهما نفس الإسم" .... (التحميل الزائد)
يتيح لنا إستدعاء الدالة 1 أو 2 حسب البرارامترات :

PHP كود :
Procedure Read (S:String);OverLoad;
Begin
 ShowMessage
(S);
End;

Procedure Read (V:Byte);OverLoad;
Begin
 ShowMessageFmt
('Value : <%d>',[V]);
End; 

لاحظ :

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
 Read 
(150);
 
Read ('TF6M');
end; 

بالتوفيق ,,


ال Overload ,, ما هو ؟ - AL-MOB4RM3G - 10-12-2009

اها, نعم, جزاك الله خيرا اخي الكريم,,

واضح الآن بالنسبة لي,


ال Overload ,, ما هو ؟ - S.FATEH - 24-03-2015

tf6m كتب :السلام عليكم
ببساطة هو "توجيه" يسمح بتعريف دالتين أو إجرائين "لهما نفس الإسم" .... (التحميل الزائد)
اضافة على ما قال الاخ ..
ببساطة هو "توجيه" يسمح بتعريف دالتين أو أكثر إجرائين أو أكثر"لهما نفس الإسم" (التحميل الزائد) مع برامترات مختلفة دلفي يتعرف على المنهاج (دالة او اجراء) حسب نوع البرامترات الممررة ...
كمثال:

دوال الـ IIF

PHP كود :
function iif(Test: boolean; TrueR, FalseR: integer):Integer;overload;
function 
iif(Test: boolean; TrueR, FalseR: string):string;overload;
function 
iif(Test: boolean; TrueR, FalseR: double):double;overload; 

PHP كود :
function iif(Test: boolean; TrueR, FalseR: integer):Integer;
begin
  
if Test then Result := TrueR else Result := FalseR;
end;

function 
iif(Test: boolean; TrueR, FalseR: string):string;
begin
  
if Test then Result := TrueR else Result := FalseR;
end;

function 
iif(Test: boolean; TrueR, FalseR: double):double;
begin
  
if Test then Result := TrueR else Result := FalseR;
end;