الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

من يملك معلومات أكثر عن الكود المرفق فاليتفضل بالتوضيح

بدأه MMA_EG_Cairo في 4 مايو 2008 · 7 رد · 686 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الإخوة الكرام ، تحية طيبة وبعد ،

في الحقيقة أنا لدي كود من فترة بعيدة ، وفعلياً أنا فاهم عمل هذا الكود ، ولكنني لا أعلم كيفية الإستفادة منه وكيفية توسيعة ، أما سبب إرفاقي لهذا الكود اليوم ، لأنني فعلياً تذكرته حينما نظرت الي كود آخر مشابة له ، أنظروا الكود :

 

Option Explicit
#Const NoLoad = True

#If (NoLoad = False) Then
Private Sub Form_Load()
	MsgBox "Welcome to Arab Team"
End Sub
#End If

الكود السابق واضح جداً ، إذا كان الثابت NoLoad قيمتة False فيتم تنفيذ الحدث Load للنموذج ، ولكن في حالة أن قيمتة True يتم إلغاء عملية التنفيذ ، كأنه لم يكن !!!

في الحقيقة هذا هو ما أفهمة ، ولكن حينما أحببت أن أستخدمة بمجال أوسع وجدت العديد من المشاكل ، علي سبيل المثال أغير في قيمة متغير الشرط ، بدلاً من أن يكون ثابتاً ، يعطي له قيمة من زر أمر ، وبحيث أن أحدد ما هو الحدث الذي سينفذ أولاً ، Load أم UnLoad !!!!

ياريت لو حد لدية معلومات لا يبخل علينا ، حيث أنني لا أمل ملف الـ MSDN

شكراً مقدماً

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 5 مايو 2008 في 09:52

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#2

ما الخبر ، هل لم أحد يعلم شيء عن هذا ؟؟؟

غصب عني والله ، لو كنت أملك حالياً الـ MSDN لكنت وضعتها كمعلومة

علي كلٍ ، ليست مهمة لهذه الدرجة ، ولكنها مجرد فكرة كنت أرغب في توضيحها أكثر فقط لا غير ، ومن يعلم الفكرة فاليتفضل بالتوضيح

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#5
اقتباس
استعمال التعريف Const لايسمح بتغيير قيمة المتغير طبعا

أظن أن هذه الطريقة نستفيد منها في الConditional Compiling

http://msdn.microsoft.com/en-us/library/aa240847(VS.60).aspx

أولاً ، أشكرك كثيراً علي هذا الرابط ، بس أخي الحمد لله أنا فعلاً أعلم الكود والفكرة نفسها ، لكن أنا كنت أحتاج الي توسيع الفكرة نفسها ، لكنني لا يمكنني المقدرة علي تغيير محتويات متغير أو Const كما ذكرت من قبل ، فحينا كتبت الكود التالي لا يقبل سوي الثوابت فقط لا غير :

#Dim X
#Private X 
#Global X
#Static X

فلم يقبل أي شيء !!!

لكن أنا أري أن هناك ميزة جميلة جداً ، لو قمنا بإدراج جملة Option Explicit في قسم التصريحات العامة ، وقمنا بإدراج أي متغير أو نموج غير معرف من قبل يعرض لي الرسالة التالية :

Compile error :

Variable not defined

وهذا شيء طبيعي جداً ، ولكن إذا إستخدمنا الشرط الموضح أعلاة ، لا ينفذ الحدث أو الإجراء علي الإطلاق إلا بعد تحقق الشرط !!!

هناك شيء آخر ، مفيد جداً ، وهو إمكانية إدراج شرط علي الحدث نفسة ، بحيث أن يتم إختبار قيمة ثابت معين ، إذا تحقق الشرط ينفذ الحدث ، وفي حالة عدم تحققة ينفذ حدث آخر ، وهذا مفيد جداً في حالة الرغبة في إنشاء عنصر تحكم واحد يحتوي علي مواصفات عنصرين !!!

فمجرد تغيير قيمته الي القيمة المناسبة يتم تنفيذ الحدث المناسب له ، مثال :

 
#Const X = True

#If (X = True) Then
	Private Sub Form_Load()
		Me.Caption = "Ahmed"
	End Sub
#Else
	Private Sub Form_Load()
		Me.Caption = "Usif"
	End Sub
#End If

لاحظوا في المثال السابق ، هناك حدث Load مرتين ، لا ينفذ أكثر من حدث ، ولكنه ينفذ حدث واحد ، أو ينفذة في حالة تحقق شرط معين !!!

ولكن لاحظوا ، إذا تحول برنامجي الي ملف تنفيذي EXE أو OCX أو DLL فيؤدي الي ثبات قيمتة !!!

ولكن ما أرغب فية هو توسيع العملية ، فهل أحد يري معلومات أكثر مما ذكرته لكم

اقتباس
وما حكاية الرمز # ؟؟

اول مرة أشوفه

عمرك شفت شرط خارج حدث أو إجراء ، فالشرط دائماً يكون هكذا :

Private Function IFEX(Exp As Boolean,T,F)
  If(Exp = True)Then
	 IFEX = T
  Else
	 IFEX = F
  End If
End Function

وليس هكذا :

If(X = True)Then
  Private Sub HLP() As String
	  HLP = "Welcome"
  End Function
End If

ولكن لإنشاء شرط علي إجراء يتم كما يلي :

#If(X = True)Then
  Private Sub HLP() As String
	  HLP = "Welcome"
  End Function
#End If

ياريت يا جماعة لو أحد يعلم أي معلومة ولو بسيطة يساهم فيها ، علي فكرة ستفيدنا جميعاً !!!

شكراً

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 5 مايو 2008 في 22:43

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#6

يا أخي أنا نفسي أعرف ما هي فائدة الشرط إن كان لا يتغير أي أن وقوعه محتوم مؤكد

فالثوابت أي شخص يعرف إن قيمتها لا تتغير لا وقت التصميم ولا التنفيذ

#7
اقتباس
يا أخي أنا نفسي أعرف ما هي فائدة الشرط إن كان لا يتغير أي أن وقوعه محتوم مؤكد

فالثوابت أي شخص يعرف إن قيمتها لا تتغير لا وقت التصميم ولا التنفيذ

الأخ الكريم ، سؤالي واضح ؟؟

اقتباس
ولكن ما أرغب فية هو توسيع العملية ، فهل أحد يري معلومات أكثر مما ذكرته لكم

بإختصار شديد ، انا أعلم أن الفائدة ليست كبيرة ، بس في نفس الوقت هناك فائدة ذكرتها في حديثي مسبقاً ، وهو أنها مفيدة جداً خصوصاً في تصميم عناصر تحكم ، بحيث أن يتم إنشاء عنصر تحكم واحد UserControl يحتوي علي أكثر من مهمة وأكثر من عنصر ، فقط تغيير قيمة الثابت !!!

علي كلٍ ، المسئلة ليست هامة لهذه الدرجة ، لكنني كنت أرغب في توسيع العملية فقط لا غير ، فإذا كان أحد لدية أي معلومة عن هذا الأسلوب فاليتفضل

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#8

حسب رأيي فأنا لا أرى لها فائدة كبيرة في انشاء عناصر التحكم بالمميزات التي تتخيلها

ماتفكر فيه تم تطبيقه على الدوت نت بما يسمى بالتحميل الزائد للأجراءات Overloading

يجب أن نركز على النقطة Compiling لكي نعرف الفائدة المراد جنيها من استعمال هذه الطريقة ولماذا يستعمل الثوابت

في خصائص أي مشروع نرى أنه يوجد استعمال للCommands Arguments وأيضا Conditional Compilation Arguments

الثابت المعرف داخل الكود يتم استعماله لترجمة المشروع باسناد قيمة له (طبعا اذا لم يتم اسناد أي قيمة فانه يأخذ القيمة الافتراضية) في الخانة المخصصة له أو عن طريق سطر الأوامر وهذا مشروح في الرابط السابق

اذا تغيير الثابت يكون مرة واحدة فقط عند ترجمة المشروع إلى ملف تنفيذي

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

والاستعمالات تكون في أنك لو أردت عمل نسخة تجريبية لبرنامجك فانك لست بحاجة إلى حذف الكود عندما تريد تحويله إلى ملف تنفيذي فقط يمكن الاستفادة من هذه العملية في تخصيص بعض الأكواد لبعض النسخ

بالتوفيق للجميع

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…