منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : النقاش والأسئلة حول الإصدارات الأحدث من الفيجوال ستوديو (http://vb4arb.com/vb/forumdisplay.php?fid=155)
+--- الموضوع : [سؤال] كود يختصر الوقت والجهد في كتابة الأكواد المتكررة (/showthread.php?tid=45300)



كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - danti - 05-02-23

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

أرجو أن تكون بأتم صحة وعافية..

هل يوجد كود يختصر عليك كتابة الأكواد المتكررة..


مثال.. عندي 20 ليبل وجميعها بنفس الاسم بخلاف تغيير الرقم:-

كود :
If Lbl_S_1.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_2.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_3.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_4.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_5.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_6.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_7.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_8.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_9.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_10.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_11.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_12.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_13.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_14.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_15.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_16.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_17.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_18.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_19.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_20.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

هل هناك كود يختصر كل هذه الأكواد المكررة؟

وأيضاً كما في المثال التالي:-
كود :
If Lbl_S_1.Text = "7" Or Lbl_S_1.Text = "9" Or Lbl_S_1.Text = "10" Or Lbl_S_1.Text = "11" Or Lbl_S_1.Text = "12" Then
           Txt_ED.Text = "1"
       End If
       If Lbl_S_2.Text = "7" Or Lbl_S_2.Text = "9" Or Lbl_S_2.Text = "10" Or Lbl_S_2.Text = "11" Or Lbl_S_2.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_3.Text = "7" Or Lbl_S_3.Text = "9" Or Lbl_S_3.Text = "10" Or Lbl_S_3.Text = "11" Or Lbl_S_3.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_4.Text = "7" Or Lbl_S_4.Text = "9" Or Lbl_S_4.Text = "10" Or Lbl_S_4.Text = "11" Or Lbl_S_4.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_5.Text = "7" Or Lbl_S_5.Text = "9" Or Lbl_S_5.Text = "10" Or Lbl_S_5.Text = "11" Or Lbl_S_5.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_6.Text = "7" Or Lbl_S_6.Text = "9" Or Lbl_S_6.Text = "10" Or Lbl_S_6.Text = "11" Or Lbl_S_6.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_7.Text = "7" Or Lbl_S_7.Text = "9" Or Lbl_S_7.Text = "10" Or Lbl_S_7.Text = "11" Or Lbl_S_7.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_8.Text = "7" Or Lbl_S_8.Text = "9" Or Lbl_S_8.Text = "10" Or Lbl_S_8.Text = "11" Or Lbl_S_8.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_9.Text = "7" Or Lbl_S_9.Text = "9" Or Lbl_S_9.Text = "10" Or Lbl_S_9.Text = "11" Or Lbl_S_9.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_10.Text = "7" Or Lbl_S_10.Text = "9" Or Lbl_S_10.Text = "10" Or Lbl_S_10.Text = "11" Or Lbl_S_10.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

لأني سوف أستخدم أكثر من 40 Label

أرجو أن تكون الفكرة وصلت.. كما أعتقد أن هناك حل.. ولكن قلة خبرتي تجعلني أبذل جهداً ووقتاً في البرمجة.

فعلاً كما يقول المثل الشعبي ( أهل العقول في راحه )  Big Grin


RE: كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - Taha Okla - 05-02-23

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

كود :
For Each L As Control In Me.Controls
   If TypeOf (L) Is Label Then
       If Mid(L.Name, 1, 6) = "Lbl_S_" Then
           If (CType(L, Label)).Text = 8 Then
               Txt_MU.Text = 1
           Else
               'Txt_MU.Text = 2
           End If
       End If
   End If
Next

Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)


2 - 

كود :
For Each L As Control In Me.Controls
   If TypeOf (L) Is Label Then
       If Mid(L.Name, 1, 6) = "Lbl_S_" Then
           Select Case (CType(L, Label)).Text
               Case 7, 9, 10, 11, 12
                   Txt_ED.Text = Val(Txt_ED.Text) + 1
           End Select
       End If
   End If
Next

Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)


البحث عن أكواد مختصرة مضيعة للوقت دامك لا تتقن الأساسيات
الأفضل أن تدخل دورة عبر قناة من قنوات اليوتيوب لتعليم البرمجة من الصفر ..
ستجد فرقاً كبيراً في كل شيء بعد أول شهر ..

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

الأساسيات لا تعني (نافذة وزر وتكست وليبل وجدول) 
الأساسيات تعني :
1 - تعلم الخوارزميات أولاً - و حل تطبيقات عليها(وهي تقريباً مشتركة في كل لغات البرمجة).
2 - تعلم أساسيات اللغة التي تريد أن تدخل بها(أنواع المجموعات والمتغيرات فيها وطريقة التعريف والتحويل بينها).
3 - تعلم خصائص الكائنات التي سوف تستخدمها في اللغة التي تختار.
4 - تعلم البرامج الجانبية التي ستعتمد عليها جانباً إلى جنب مع اللغة التي تريد أن تعمل بها (برامج الأوفيس(أكسس- أكسل - وورد) - النوتباد - الرسام).
5 - تعلم البرمجة كائنية التوجه (OOP) ، فهي أساس التبسيط والاختصار وستجعل فهم وتطبيق الخوارزميات والمجموعات أبسط بكثير ..
..
..
..
هناك علوم من الخطأ ومضيعة الوقت التعلم بها دون معلم.  منها هذا البحر الواسع.


RE: كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - AnyDesk - 05-02-23

(05-02-23, 10:22 AM)danti كتب : السلام عليكم ورحمة الله وبركاته

أرجو أن تكون بأتم صحة وعافية..

هل يوجد كود يختصر عليك كتابة الأكواد المتكررة..


مثال.. عندي 20 ليبل وجميعها بنفس الاسم بخلاف تغيير الرقم:-

كود :
If Lbl_S_1.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_2.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_3.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_4.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_5.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_6.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_7.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_8.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_9.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_10.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_11.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_12.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_13.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_14.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_15.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_16.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_17.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_18.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_19.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_20.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

هل هناك كود يختصر كل هذه الأكواد المكررة؟

وأيضاً كما في المثال التالي:-
كود :
If Lbl_S_1.Text = "7" Or Lbl_S_1.Text = "9" Or Lbl_S_1.Text = "10" Or Lbl_S_1.Text = "11" Or Lbl_S_1.Text = "12" Then
           Txt_ED.Text = "1"
       End If
       If Lbl_S_2.Text = "7" Or Lbl_S_2.Text = "9" Or Lbl_S_2.Text = "10" Or Lbl_S_2.Text = "11" Or Lbl_S_2.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_3.Text = "7" Or Lbl_S_3.Text = "9" Or Lbl_S_3.Text = "10" Or Lbl_S_3.Text = "11" Or Lbl_S_3.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_4.Text = "7" Or Lbl_S_4.Text = "9" Or Lbl_S_4.Text = "10" Or Lbl_S_4.Text = "11" Or Lbl_S_4.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_5.Text = "7" Or Lbl_S_5.Text = "9" Or Lbl_S_5.Text = "10" Or Lbl_S_5.Text = "11" Or Lbl_S_5.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_6.Text = "7" Or Lbl_S_6.Text = "9" Or Lbl_S_6.Text = "10" Or Lbl_S_6.Text = "11" Or Lbl_S_6.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_7.Text = "7" Or Lbl_S_7.Text = "9" Or Lbl_S_7.Text = "10" Or Lbl_S_7.Text = "11" Or Lbl_S_7.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_8.Text = "7" Or Lbl_S_8.Text = "9" Or Lbl_S_8.Text = "10" Or Lbl_S_8.Text = "11" Or Lbl_S_8.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_9.Text = "7" Or Lbl_S_9.Text = "9" Or Lbl_S_9.Text = "10" Or Lbl_S_9.Text = "11" Or Lbl_S_9.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_10.Text = "7" Or Lbl_S_10.Text = "9" Or Lbl_S_10.Text = "10" Or Lbl_S_10.Text = "11" Or Lbl_S_10.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

لأني سوف أستخدم أكثر من 40 Label

أرجو أن تكون الفكرة وصلت.. كما أعتقد أن هناك حل.. ولكن قلة خبرتي تجعلني أبذل جهداً ووقتاً في البرمجة.

فعلاً كما يقول المثل الشعبي ( أهل العقول في راحه )  Big Grin

سؤال قد يفتح لك بابا للتفكير الصحيح
من أين تاتي بالبيانات لتضعها في كل هذه الليبليبليبليبليبلات (جمعLabel)؟

اتمنى انك فهمت المقصود والا ...........!


RE: كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - danti - 06-02-23

(05-02-23, 04:45 PM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاته
1 - 

كود :
For Each L As Control In Me.Controls
   If TypeOf (L) Is Label Then
       If Mid(L.Name, 1, 6) = "Lbl_S_" Then
           If (CType(L, Label)).Text = 8 Then
               Txt_MU.Text = 1
           Else
               'Txt_MU.Text = 2
           End If
       End If
   End If
Next

Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)


2 - 

كود :
For Each L As Control In Me.Controls
   If TypeOf (L) Is Label Then
       If Mid(L.Name, 1, 6) = "Lbl_S_" Then
           Select Case (CType(L, Label)).Text = 8
               Case 7, 9, 10, 11, 12
                   Txt_ED.Text = Val(Txt_ED.Text) + 1
           End Select
       End If
   End If
Next

Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)


البحث عن أكواد مختصرة مضيعة للوقت دامك لا تتقن الأساسيات
الأفضل أن تدخل دورة عبر قناة من قنوات اليوتيوب لتعليم البرمجة من الصفر ..
ستجد فرقاً كبيراً في كل شيء بعد أول شهر ..

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

الأساسيات لا تعني (نافذة وزر وتكست وليبل وجدول) 
الأساسيات تعني :
1 - تعلم الخوارزميات أولاً - و حل تطبيقات عليها(وهي تقريباً مشتركة في كل لغات البرمجة).
2 - تعلم أساسيات اللغة التي تريد أن تدخل بها(أنواع المجموعات والمتغيرات فيها وطريقة التعريف والتحويل بينها).
3 - تعلم خصائص الكائنات التي سوف تستخدمها في اللغة التي تختار.
4 - تعلم البرامج الجانبية التي ستعتمد عليها جانباً إلى جنب مع اللغة التي تريد أن تعمل بها (برامج الأوفيس(أكسس- أكسل - وورد) - النوتباد - الرسام).
5 - تعلم البرمجة كائنية التوجه (OOP) ، فهي أساس التبسيط والاختصار وستجعل فهم وتطبيق الخوارزميات والمجموعات أبسط بكثير ..
..
..
..
هناك علوم من الخطأ ومضيعة الوقت التعلم بها دون معلم.  منها هذا البحر الواسع.

شكراً جزيلاً أخي الحبيب على الرد..

وأعتذر عن تأخري لمشاغلي..

نصيحة سوف آخذها بعين الاعتبار إن شاء الله..

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

شكراً لك مرة أخرى.


RE: كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - danti - 06-02-23

(05-02-23, 06:31 PM)AnyDesk كتب :
(05-02-23, 10:22 AM)danti كتب : السلام عليكم ورحمة الله وبركاته

أرجو أن تكون بأتم صحة وعافية..

هل يوجد كود يختصر عليك كتابة الأكواد المتكررة..


مثال.. عندي 20 ليبل وجميعها بنفس الاسم بخلاف تغيير الرقم:-

كود :
If Lbl_S_1.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_2.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_3.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_4.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_5.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_6.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_7.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_8.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_9.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_10.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_11.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_12.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_13.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_14.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_15.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_16.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_17.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_18.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_19.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       If Lbl_S_20.Text = "8" Then
           Txt_MU.Text = "1"
       End If
       Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

هل هناك كود يختصر كل هذه الأكواد المكررة؟

وأيضاً كما في المثال التالي:-
كود :
If Lbl_S_1.Text = "7" Or Lbl_S_1.Text = "9" Or Lbl_S_1.Text = "10" Or Lbl_S_1.Text = "11" Or Lbl_S_1.Text = "12" Then
           Txt_ED.Text = "1"
       End If
       If Lbl_S_2.Text = "7" Or Lbl_S_2.Text = "9" Or Lbl_S_2.Text = "10" Or Lbl_S_2.Text = "11" Or Lbl_S_2.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_3.Text = "7" Or Lbl_S_3.Text = "9" Or Lbl_S_3.Text = "10" Or Lbl_S_3.Text = "11" Or Lbl_S_3.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_4.Text = "7" Or Lbl_S_4.Text = "9" Or Lbl_S_4.Text = "10" Or Lbl_S_4.Text = "11" Or Lbl_S_4.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_5.Text = "7" Or Lbl_S_5.Text = "9" Or Lbl_S_5.Text = "10" Or Lbl_S_5.Text = "11" Or Lbl_S_5.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_6.Text = "7" Or Lbl_S_6.Text = "9" Or Lbl_S_6.Text = "10" Or Lbl_S_6.Text = "11" Or Lbl_S_6.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_7.Text = "7" Or Lbl_S_7.Text = "9" Or Lbl_S_7.Text = "10" Or Lbl_S_7.Text = "11" Or Lbl_S_7.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_8.Text = "7" Or Lbl_S_8.Text = "9" Or Lbl_S_8.Text = "10" Or Lbl_S_8.Text = "11" Or Lbl_S_8.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_9.Text = "7" Or Lbl_S_9.Text = "9" Or Lbl_S_9.Text = "10" Or Lbl_S_9.Text = "11" Or Lbl_S_9.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
       If Lbl_S_10.Text = "7" Or Lbl_S_10.Text = "9" Or Lbl_S_10.Text = "10" Or Lbl_S_10.Text = "11" Or Lbl_S_10.Text = "12" Then
           Txt_ED.Text = Val(Txt_ED.Text) + 1
       End If
Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

لأني سوف أستخدم أكثر من 40 Label

أرجو أن تكون الفكرة وصلت.. كما أعتقد أن هناك حل.. ولكن قلة خبرتي تجعلني أبذل جهداً ووقتاً في البرمجة.

فعلاً كما يقول المثل الشعبي ( أهل العقول في راحه )  Big Grin

سؤال قد يفتح لك بابا للتفكير الصحيح
من أين تاتي بالبيانات لتضعها في كل هذه الليبليبليبليبليبلات (جمعLabel)؟

اتمنى انك فهمت المقصود والا ...........!

أخي العزيز شكراً لردك..

أرجو أن لا أكون من (والا.....)

لأني فعلاً لم أفهم ما تقصد..!

هذا برنامج بسيط استخدمه في عملي ليسهل علي التعامل مع زوار المرضى..

2522.jpg - MediaFire

فهذه ال Labels الكثيرة عبارة عن بيانات الزوار والمرضى والأقسام..

2533.jpg - MediaFire


RE: كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - danti - 06-02-23

(05-02-23, 04:45 PM)Taha Okla كتب : [quote pid='190214' dateline='1675601121']
وعليكم السلام ورحمة الله وبركاته
1 - 

كود :
For Each L As Control In Me.Controls
   If TypeOf (L) Is Label Then
       If Mid(L.Name, 1, 6) = "Lbl_S_" Then
           If (CType(L, Label)).Text = 8 Then
               Txt_MU.Text = 1
           Else
               'Txt_MU.Text = 2
           End If
       End If
   End If
Next

Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

هذا الكود يعمل بشكل ممتاز بعد أن عدلت   Txt_MU.Text = 1

لتصبح:-
Txt_MU.Text = Val(Txt_MU.Text) + 1

=======

ولكن هذا الكود بالأسفل لم أفهمه..
2 - 

كود :
For Each L As Control In Me.Controls
   If TypeOf (L) Is Label Then
       If Mid(L.Name, 1, 6) = "Lbl_S_" Then
           Select Case (CType(L, Label)).Text = 8
               Case 7, 9, 10, 11, 12
                   Txt_ED.Text = Val(Txt_ED.Text) + 1
           End Select
       End If
   End If
Next

Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

[/quote]

رقم 8 هو خاص بالكود الذي بالأعلى

أريد مكان الرقم 8 الأرقام (  7, 9, 10, 11, 12 )
بحيث إذا كان
 ( 7, 9, 10, 11, 12 ) = Label.Text
فـ
 Txt_ED.Text = Val(Txt_ED.Text) + 1

للتوضيح:-
الكود الذي بالأعلى يخص القسم ( 8 ) في المستشفى

وهذا الكود يخص الأقسام (  7, 9, 10, 11, 12 )

جزاكم الله خيراً
وأعتذر إذا كنت قد ثقلت عليكم

استخدمت هذا الكود:-

كود :
For Each L As Control In Me.Controls
           If TypeOf (L) Is Label Then
               If Mid(L.Name, 1, 6) = "Lbl_S_" Then
                   If (CType(L, Label)).Text = 7 Or 9 Or 10 Or 11 Or 12 Then
                     
                       Txt_NF.Text = Val(Txt_NF.Text) + 1
                     
                   End If
               End If
           End If
       Next
       Txt_Total.Text = Val(Txt_NF.Text) + Val(Txt_ED.Text) + Val(Txt_NS.Text) + Val(Txt_MU.Text)

استغنيت عن جملة Case

ولكن المشكلة يعطيني ضعف الناتج..

مثلاً:-

كود :
       Lbl_S_1.Text = "7"
       Lbl_S_3.Text = "9"
       Lbl_S_7.Text = "12"

من المفترض ان يكون الناتج = 3

ولكن يضاعفها فتصبح = 6

أعلم أن خبرتي قليلة جداً إن لم تكن معدومة، فتحملوني واعذروني..


RE: كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - Taha Okla - 06-02-23

في السطر :
كود :
Select Case (CType(L, Label)).Text = 8


خطأ :، والصواب :
كود :
Select Case (CType(L, Label)).Text
 
يعني ما فيه  = 8 -- ،،  التكملة هذه هي خطأ بسبب سرعة الرد وعدم التحقق من الكود..







الكود الذي اخترعته :
كود :
 If (CType(L, Label)).Text = 7 Or 9 Or 10 Or 11 Or 12 Then

لا علاقة له بالبرمجة أبداً .. 

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

معنى ذاك السطر :
إما التكست تساوي 7  أو هي صحيحة أو هي صحيحة أو هي صحيحة أو هي صحيحة.

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

..

بحسب الصور التي عرضتها - ربما أنت بحاجة للتعرف على أداة أسمها (DataGridView)
حاول أن تتعلم عنها .. ربما تجد معها أفكار أفضل في مشروعك ..


RE: كود يختصر الوقت والجهد في كتابة الأكواد المتكررة - danti - 07-02-23

شكراً جزيلاً على رحابة صدرك..

يبدو أنني بحاجة للكثير والكثير من التعلم في هذا المجال..

أشكرك مرة أخرى، وأجزم أنني لست الوحيد الذي استفاد من هذا الموضوع.