المشاركات : 356
المواضيع 76
الإنتساب : Jul 2023
السمعة :
70
الشكر: 261
تم شكره 332 مرات في 219 مشاركات
كل عام و انتم بخير
Class1 c = new Class1();
c.myform = this;
اريد انهاء هذا الـ c
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
المشاركات : 356
المواضيع 76
الإنتساب : Jul 2023
السمعة :
70
الشكر: 261
تم شكره 332 مرات في 219 مشاركات
شكر الله لك و بارك فيك
عندي استفسار عن الاسلوب الافضل في مناداة الكلاس في الفورم العادي هل في كل اجراء في كلاس الفورم استدعي الكلاس و مافيه ام الافضل تعريف متغير للكلاس في منطقة التعريفات العامة للفورم واستخدمه؟
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
المشاركات : 1,262
المواضيع 16
الإنتساب : May 2016
السمعة :
291
الشكر: 801
تم شكره 2223 مرات في 1168 مشاركات
11-04-24, 05:55 PM
(آخر تعديل لهذه المشاركة : 11-04-24, 06:12 PM {2} بواسطة Taha Okla.)
بالعادة البعض يصنع كلاس ويضع فيه كل ما لا يريد إظهاره في صفحات أكواد النوافذ ..
ولكن هذا الشيء أيضاً يعقد الأمر وليس يسهله..
الأفضل أن توزع ما تريد وضعه في كلاس على عدة كلاسات..:
مثلا :
- كلاس خاص بالتعامل مع الملفات.
- كلاس يتعامل مع قواعد البيانات.
- كلاس يتعامل مع التشفير وفك التشفير.
- .. إلخ.
وبحسب حاجتك لكل كلاس تعرف أين تعرف هذا الكلاس..
فما تحتاجه مرة واحدة لماذا تستدعيه في بداية كود النافذة ؟؟!!! فقط استدعيه ضمن الاجراء الذي يريده..
وما تعتمد عليه في كل حين أو أغلب الاحداث بنفس القيمة عرفه في بداية الكلاس أو كود النافذة...
--
لكن أدرك جيداً أن من يحمل هذه الأكواد هو البرنامج ولست أنت..
فهي لن تثقل عليك بالمراجعة(فلا تبسطها لتسهل على نفسك .. بل كي لا يقع البرنامج بأخطاء الكائن الغير معرف أو تعارض البيانات المدخلة على الكائن بحسب تتالي الاجراءات على الكائن). يعني (لا تبسط ولا تكرر) إلا إذا البرنامج يستدعي ذلك وليس من أجلك..
مثلا بالعادة المبرمج يعرف كائن اتصال بقاعدة البيانات كائن عام اسمه (Conn)
ولكنه متعود بعد كل عملية يقوم بإغلاق الاتصال ..
فيقوم مثلاً بإٍتخدام الكائن لعمل اتصال بقاعدة البيانات لإدخال بيانات أو التعديل على بيانات محددة.
أثناء الاتصال يقوم بإستدعاء (إجراء يعتمد على نفس كائن الاتصال Conn) ليتحقق من عدم تكرار البيانات
فيقوم سهواً بإغلاق الاتصال للكائن (Conn) بعد التحقق من عدم تكرار البيانات(مثلاً)
ثم يتابع بكوده من أجل إدخال البيانات بما أنها غير مكرر. فيقع بخطأ أن الكائن غير منشأ (مع العلم أنه أنشأه في بداية الكود).
فيحتار من أين جاء الخطأ وبعد ساعات من البحث ربما يكتشف أن الاجراء الذي استدعاه للتحقق من عدم تكرار البيانات هو من أغلق الاتصال..
فما الحل الآن ؟؟ هل يغير سياسته بجعل قاعدة البيانات مفتوحة دوماً أم يغلقها بعد كل اتصال ويعلق في كل مرة ينادي إجراء ما من داخل كود آخر..
-- مثل هذه الحالة الحل فيها : هو أن ينشأ كائن اتصال جديد يستخدمه فقط في الاجراءات السريعة التي يناديها من خلال الأكواد الأخرى (مثلا ConnP)..
فهذا الكائن إن أغلقه أو تركه مفتوحاً أو أجرى عليه أي عملية أخرى لن تؤثر على سير البيانات التي سلكها في الكود الأساسي ولن يتعارض معه أبداً..
-- وعلى هذا المثال قس كثيراً من الأمور التي ستتعامل معها في برنامجك..
--
لكن لتعرف إن عرفت الكائن في حدث ما فبمجرد الخروج من الحدث يتم التخص من الكائن..
لكن إن عرفته على مستوى كلاس أو نافذة سيبقى الكائن موجود في الذاكرة حتى يتم غلاق الكلاس.. ومن ثم يتم التخلص من الكائن بشكل تلقائي.
أي كلاس تقوم بتعريفه بعبارة (class C; ) لن يتم حجز له مكان أو أي بايت في الذاكرة..
ولكن عندما تجعله يساوي شيء ما ،، مثلاً : (class C = new class(); ) فإنه يحجز مكاناً له في الذاكرة وأصبح الان مؤثراً ..
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».
المشاركات : 1,262
المواضيع 16
الإنتساب : May 2016
السمعة :
291
الشكر: 801
تم شكره 2223 مرات في 1168 مشاركات
الاكسل من التطبيقات التي لا تقبل سوى مستخدم وحيد..
لازم بعد كل عملية أن تقوم بإغلاق الملف إن أنتهيت من المتغير الذي تستخدمه للتحرير والتعديل ..
إغلاق الملف ..
exworkbook.Close
ثم إغلاق متغير برنامج التحرير :
exapp.Quit
قال صلى الله عليه وسلم:
«كلمتان خفيفتان على اللسان
ثقيلتان في الميزان،حبيبتان إلى الرحمن:
سبحان الله وبحمده، سبحان الله العظيم».