delphi4arab منتديات دلفي للعرب
ما هي الـ Class Methods - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : دلفي للعرب - القسم العام (https://delphi4arab.net/forum/forumdisplay.php?fid=10)
+--- الموضوع : ما هي الـ Class Methods (/showthread.php?tid=13028)



ما هي الـ Class Methods - الفجر الابيض - 27-01-2026

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

من الاشياء الجديدة في دلفي الحديث والتي ارتحت لها هي ما يسمى  Class Methods فمثلا لدينا هذه الفئة

كود :
type   TCryptoHelper = class   public     class function DecryptAES(const EncryptedBase64: String; const KeyStr, IVStr: String): String;   end; implementation class function TCryptoHelper.DecryptAES(const EncryptedBase64: String; const KeyStr, IVStr: String): String; Begin // code here end;

سابقا كان لابد من اشتقاق نسخة من هذه الفئة عن طريق Greate وايضا يجب تحريرها بي Free

الان يمكننا ببساطة استخدام الدالة

كود :
TCryptoHelper.DecryptAES

ببساطة، هي دوال تنتمي إلى الفئة (Class) نفسها وليس إلى كائن (Object) محدد مشتق منها.


شرح تقنية Class Methods
في الحالة العادية، تحتاج لإنشاء نسخة من الكائن في الذاكرة باستخدام Create لتتمكن من الوصول لخصائصه، لكن مع class function:

لا حاجة لـ Create: يمكنك استدعاء الدالة مباشرة باستخدام اسم الفئة: TCryptoHelper.DecryptAES.

توفير الذاكرة: بما أنك لا تشتق كائناً جديداً، فأنت لا تستهلك مساحة في الذاكرة ولا تحتاج للقلق بشأن تحريرها (Free).

التنظيم: تُستخدم غالباً في الدوال "المساعدة" (Utility/Helper functions) التي تؤدي مهمة محددة ولا تعتمد على بيانات متغيرة داخل الكائن.

لماذا نستخدمها؟ (حالات الاستخدام)
المكتبات البرمجية (Utility Libraries): مثل مثال التشفير الذي ذكرته، أو معالجة النصوص، حيث تريد فقط تمرير مدخلات والحصول على مخرجات.

نمط المصنع (Factory Pattern): لإنشاء كائنات معقدة وإرجاعها جاهزة.

العدّادات (Counters): لمتابعة عدد المرات التي تم فيها استدعاء ميزة معينة عبر البرنامج بالكامل.

نصيحة برمجية
في إصدارات دلفي الحديثة، يمكنك أيضاً استخدام ما يسمى Class Helpers أو Records مع طرق (Methods) لتنظيم الكود بشكل أكبر دون الحاجة لتعريف فئة كاملة إذا كانت المهمة بسيطة.

ملاحظة: في مثالك الخاص بالتشفير، استخدام class function هو الخيار الأمثل (Best Practice) لأنه يجعل الكود نظيفاً جداً وقابل للقراءة كأنه نص لغوي: "يا فئة التشفير، فكي شفرة هذا النص".


RE: ما هي الـ Class Methods - mo7ammed - 02-02-2026

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

بارك الله فيك على الشرح، لكن اود توضيح نقطة انه ليست جديدة في دلفي، فأنا استخدمها منذ دلفي 7، اي منذ اكثر من 20 سنة :-)

وهي موجودة في اللغات الاخرى بمسمى static methods.

شكراً لكن وفي انتظار شروحات أخرى منك


RE: ما هي الـ Class Methods - Ndagor - 03-02-2026

سلام غليكم
Class methods موجودة منذ النسخ الاولى لدلفي ما تغير هو طريقة استعمالها في الاصل هي تخص كل ما يتعلق بالكلاس كنوع type مثل ClassName, InstanceSize .. في النسخ الاخيرة اصبحت تستخدم لادارة Namespace الذي لا يدعمه في الاصل دالفي ..هذه الطريقة في البرمجة مجرد قص و لصق من لغات برمجة اخرى C# Java تم اعتمادها دون مراعات خصائص دلفي .. الذين سبق لهم ان تعاملوا مع استعمالاتها الاصلية يدركون مدى التشويش الذي يسببه الاستعمال العشوائي في السورس.. كان الاجدر فصل الكلاس عن namespace ..لان دلفي يعتمد T للكلاس

في النسخ الاخير تم اضافة class methods static و التي لا تختلف كثيرا فقط لا تتوي Self