الشكر لله والحمد لله
والحمد لله على كل حال
لى ولك وللجميع بامر الله
فى البداية بخصوص Length
فهى تعنى طول النص / القيمة أو باصح عدد الاحرف للمحتوى
فبطبيعة الحال عند اتمام عد عدد الاحرف هنا
كود :
abcdefghijklmnopqrstuvwxyz
بابسط ما يكون ستبداء برقم 1 ومن ثم تنتهى عن الرقم 26
وهذا طبيعي ولا نقاش فى الامر بهذا
لكن عند تنفيذ الامر وهو طباعة حرف حرف من خلال
فحرف الـ i هنا يبداء من العد 0 وليس 1
لان القرائة الخارجية لاى شي ينظر اليه يبداء من 1
ولاكن برمجياً عند بدء العد والتنفيذ فهو يبداء من 0
وبما ان اجمالى عدد الاحرف هى 26 وبما ان العد يبداء من 0 فيجب ان ينتهى عند 25
ليكون الاجمالى م
0 الى
25 هو
26 فلذلك يتم وضع
-1 ليصبح الكود كعبارة عن التالى
كود :
For i As Integer = 0 To 26 - 1
ليكون الشكل هو
كود :
For i As Integer = 0 To 25
الجزء الاخير وهو تاخير تنفيذ الكود بسبب كثرة عملية تنفيذ الـ For
وكذلك يتم طباعة الامر بعد الانتهاء منه فهنا يرجع لطريقة تنفيذ الكود
هل تم تنفيذ الكود من خلال زر وخلاص دون اى امر
او انه تم استغلال الكود ليتم تنفيذه من خلال BackgroundWorker وايضاً ProgressBar
حيث كل ما تحتاج اليه هو وضع الكود داخل حدث
ومن ثم فى حدث
تقوم بوضع هذا الكود
كود :
BackgroundWorker1.RunWorkerAsync()
ستجد ان المشروع بدون اى لاج ابداً مهما كان تاخير تنفيذ الكود
كذلك انه يعرض ما يتم تنفيذه لحظة بلحظة حتى الانتهاء
وياتى دور الاخير فى اختيارى استخدام ProgressBar
فقط لمعرفة ان الكود تم الانتهاء من تنفيذه ام لا فكما ذكرت انه اختياري
ولاتمام الامر بدون ProgressBar فكل ما عليك فقط تنفيذ ما تم شرحه بالاعلى
واذا كنت تريد اضافة رسالة فقط بدون استخدام ProgressBar تفيد بانه تم الانتهاء من تنفيذ الكود
أو تنفيذ اى كود بعد الانتهاء فقط يكتفي وضع اى كود بحدث
PHP كود :
BackgroundWorker1_RunWorkerCompleted
واذا كنت تريد اتمام تفعيل ProgressBar لتعطي مظهر متكامل
لتنفيذ الكود فقط عليك باتمام الخطوات التالية
فى حدث
BackgroundWorker1_DoWork طبق الكود التالى
كود :
CheckForIllegalCrossThreadCalls = False
Dim aa As String = "abcdefghijklmnopqrstuvwxyz"
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = aa.Length
For i As Integer = 0 To aa.Length - 1
For ii As Integer = 0 To aa.Length - 1
For iii As Integer = 0 To aa.Length - 1
ListBox1.Items.Add(aa(i) + aa(ii) + aa(iii))
'If (aa(i) + aa(ii) + aa(iii)).ToString = "aaz" Then Exit Sub
Next
Next
BackgroundWorker1.ReportProgress(i + 1)
Next
فى حدث
BackgroundWorker1_ProgressChanged طبق الكود التالى
كود :
ProgressBar1.Value = e.ProgressPercentage
فى اعدادات خيارات اداء BackgroundWorker1
تاتى على WorkerReportsProgress وتجعل القيمة True
ولعمل الامر تاتى فى حدث
Button1_Click وتقوم بكتابة هذا الكود
كود :
BackgroundWorker1.RunWorkerAsync()
وبكده ستجد الكود يعمل كما تشاء
لا تنسى التعديل على هذا السطر كبقاً لما تريد
كود :
'If (aa(i) + aa(ii) + aa(iii)).ToString = "aaz" Then Exit Sub
تحياتى لك
وتمنياتى لك التوفيق