![]() |
|
استخدآم كلمة self لأدل على المكون, كيف؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : استخدآم كلمة self لأدل على المكون, كيف؟ (/showthread.php?tid=1038) الصفحات:
1
2
|
استخدآم كلمة self لأدل على المكون, كيف؟ - AL-MOB4RM3G - 10-07-2009 السلام عليكم ورحمة الله اخواني الكرام ,, كلمة self في الكود,, ماذا تعني ؟ انا جربت استخداماها ولكنّها تدل على الفورم,, اي Form1 اود استخدامها او كلمة اخرى تفي بلغرض لأدل على المكون الذي اكتب الكود فيه,, ,, للتوضيع عندي ما يقارب ال 70 button;; وكلهم اود ان اكتب فيهم نفس الكود وهو edit1.text := self.caption اي الكابشن للبوتون وليس الفورم بارك الله لكم,, فهل من حلّ لذلك جزاكم الله خيرا؟ ان شاء الله السؤآل وآضح الآن ؟ والسلام عليكم ورحمة الله استخدآم كلمة self لأدل على المكون, كيف؟ - AL-MOB4RM3G - 10-07-2009 اخواني للدوضيح اكثر,, هل هناك طريقة او كلمة ككلمة سيلف يمكن استخدآمها لأدل على المكون وليس الفورم الذي اكتب فيه الكود ؟ يعني مثلا SelfComponent او شئ من هذا
استخدآم كلمة self لأدل على المكون, كيف؟ - me_delphi - 10-07-2009 السلام عليكم بالنسبة ل Self لتفهم جيدا لابد من ان تكون تعاملت مع البرمجة الكائنية التوجه و Self شبيهة ب This في ++C و Me في VB.NET http://www.delphibasics.co.uk/RTL.asp?Name=Self أما المكونات فحلقة تكرارية كافية... PHP كود : procedure TForm1.FormCreate(Sender: TObject);استخدآم كلمة self لأدل على المكون, كيف؟ - AL-MOB4RM3G - 11-07-2009 نعم اخي الكريم,, اشكرك على توضيحك ![]() اخي الكريم هل ممكن الإستفآدة من الكود الذي ذكرته وتحويله مثلا الى Procedure فيكون مثلا على الشكل التآلي,, PHP كود : Procedure buttPress;وهل يشترط ان يكون الكود التآلي موجود؟ PHP كود : if (Components[i] is TButton) then بعدها استدعي البروسيدور عند الحآجة اليه ؟ لأني لن استخدم الكود في 70 بوتون متوآصل ,, ما رأيك ؟ استخدآم كلمة self لأدل على المكون, كيف؟ - AL-MOB4RM3G - 11-07-2009 اخواني الكرآم سلآم الله عليكم من جديد ![]() الآن وانا افكّر,, وفي حآلة تفكير شديد ,, قررت ان اضع السؤآل بشكل وآضح جدا بعد ان حددت ما اوده بدقة عآلية,, :eek: السؤآل متعلّق بنفس الموضوع لذلك سأضعه هنا في هذا الموضوع,, نعم,, اود عمل فونكشن يقوم بلتآلي,, اولا يأخذ الفونكشن اسم الكومبوننت المرسل,, اي الكآبشن للكونترول المرسل ويضعه في متغير,, بعد ذلك يضع الكآبشن او ال string الذي في المتغيّر في edit1.text انتها عمل الفونكشن,, هذا كل شي,, فكيف استطيع عمل هذا بارك الله لكم ؟ طبعا السطر الثآني سهل,, لكن الأول كيف يكون ؟ حزاكم الله خيرا استخدآم كلمة self لأدل على المكون, كيف؟ - mnour - 11-07-2009 يمكنك بدل استخدام Self استخدام Sender استخدآم كلمة self لأدل على المكون, كيف؟ - AL-MOB4RM3G - 11-07-2009 mnour كتب :يمكنك بدل استخدام Self استخدام Sender اشكرك اخي على محآولتك,, لكن هذا لا يمكن PHP كود : edit1.text := Sender.caption ام ان هناك حل آخر؟ استخدآم كلمة self لأدل على المكون, كيف؟ - kachwahed - 11-07-2009 السلام عليكم أخي المبرمج... أولا Self: فهذه ترجع إلى الكائن الذي كتبت فيه الـ Procedure أو Function مثلا: PHP كود : procedure TForm1.FormCreate(Sender: TObject); أما: كود : Procedure buttPress;سأكمل... استخدآم كلمة self لأدل على المكون, كيف؟ - AL-MOB4RM3G - 11-07-2009 نعم فهمت كلآمك اخي كاش وآحد,, طيب ما هو الحلّ اخي الكريم اذا كنت اود ان آخذ الكآبشن لل sender واضعه مثلا متغير؟ الذي فهمت منك الآن ان علي ان انسى كلمة Self لهذا الغرض :confused: شكرا لك استخدآم كلمة self لأدل على المكون, كيف؟ - kachwahed - 11-07-2009 مشكلتك أخي المبرمج تحل باستعمال الـ Parameter: PHP كود : Sender: TObject لكن المشكلة أن Sender نوعه TObject ولذلك ليس له Caption ولا Enabled ولا أكثر خواص TButton ولذلك نستعمل Transtype (باللغة العربية التغليف أو التمرير أو غير ذلك... نسيتها بالفصحى )، والطريقة مشهورة كما يلي:كود : (Sender as TButton)يمكن كتابة ذلك بطريقة أخرى: كود : TButton(Sender)PHP كود : TButton(Sender).Caption := '&OK'; PHP كود : (Sender as TButton).Caption := '&OK'; PHP كود : procedure TForm1.Button1Click(Sender: TObject); لاستعمال نفس الإجراء مع عدة مكونات، قم بتحديدها جميعا، ثم نقر مزدوج على الحدث واكتب الأوامر باستعمال (Sender as TButton) عوضا عن اسم المكون. في حالتك لا داعي للـ Fucntion، حدد جميع الأزرار وانقر مرتين على الحدث OnClick واكتب ما يلي: PHP كود : procedure TForm1.Button1Click(Sender: TObject);ملاحظة: في الجدوال (Table) والاستعلامات (Query) نستخدم TDataSet، فمثلا لفتحها جميعا في OnCreate نكتب: PHP كود : procedure TForm1.FormCreate(Sender: TObject);و [Components[i تعني المكون رقم i في التطبيق. بالتوفيق. |