![]() |
|
ارجاع اكثر من قيمة باستخدام Function - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13) +--- الموضوع : ارجاع اكثر من قيمة باستخدام Function (/showthread.php?tid=10271) |
ارجاع اكثر من قيمة باستخدام Function - S.FATEH - 26-06-2019 السلام عليكم هل يمكن للـ Function ان نعيد بها اكثر من قيمة في الدلفي يمكن للـ Function ان تعيد Record او Object او Varible و بالتالي يمكننا ان نجعل الـ Function ان تعيد لنا Record يحتوي على سلسلة من المتغيرات او Object يحتوي على العديد من الحقول Fields او نستخدم تمرير البرامترات بالمرجع .. 1- اعادة اكثر من قيمة باستخدام السجلات Records اولا نقوم بتعيرف بنية الـ Record في الـ Type Section PHP كود : typeنقوم بانشاء Function حيث الناتج سيكون Record PHP كود : function Ident(AFullName: string): TPerson; PHP كود : function TForm1.Ident(AFullName: string): TPerson;للإستخدام نقوم بتعريف متغير من نمط الـ Record ثم نستدعي الدالة PHP كود : procedure TForm1.Button1Click(Sender: TObject);2- اعادة اكثر من قيمة باستخدام الاغراض Objects نقوم بتعريف هيكلية الكلاس ملاحظة الذي تراه لا يتبع القواعد السليمة للـ OOP فقط لتوضيح فكرة اعادة اكثر من قيمة باستخدام Objects PHP كود : TPerson = classالـ Function الخاصة بنا PHP كود : function TForm1.Ident(AFullName: string): TPerson;و إستدعاء الـ Function PHP كود : procedure TForm1.Button1Click(Sender: TObject);هل يفضل استخدام الـ Records او Classes و ما الفرق بنهما عندما تقوم بتمرير Record بين Functions في الحقيقة انت تنسخ البيانات من مكان الى مكان في الذاكرة بينما عندما تمرر Class فانت تمرر مؤشر Pointer لذلك اذا كان Record صغير لا ضير في ذلك في حالة كان الهيكل كبير الحجم يفضل استخدام الكلاسات 3- اعادة اكثر من قيمة باستخدام تمرير البرامترات بالمرجع ProtoType الـ Function نستخدم ناتج الإفتراضي للـ Function لإعادة FirstName و نستخدم التمرير بالمرجع لاعادة LastName PHP كود : function Ident(AFullName: string; var ALastName: string): string; الـ Function PHP كود : function TForm1.Ident(AFullName: string; var ALastName: string): string;و الإستدعاء PHP كود : procedure TForm1.Button1Click(Sender: TObject);RE: ارجاع اكثر من قيمة باستخدام Function - Ben.Ja - 26-06-2019 بورك فيك, يمكن أيضًا استخدام Array of string or int, etc, بعد تعريفه كنوع بيانات خاص: Dynamic: PHP كود : typeor Static: PHP كود : typeثم استخدامه: PHP كود : function myFunc(aPrm: type): TMyArrayOfStrings; |