السلام عليكم ورحمة الله
هذا كود رسم المربع:
- Dim RectangleWidth As Integer, RectangleHeight As Integer, Letter As String, i As Integer, j As
Integer - RegtangleWidth = Text2.Text
- RectangleHeight = Text1.Text
- Letter = Text3.Text
- Text4.Text = ""
- For i = 1 To RectangleHeight
- For j = 1 To RectangleWidth
- Text4.Text = Text4.Text & Letter
- If j = RectangleWidth Then Text4.Text = Text4.Text & vbNewLine
ممممم، ما الذي حدث هنا؟؟؟
فلنسر مع الكود خطوة خطوة:
Dim RectangleWidth As Integer, RectangleHeight As Integer, Letter As String, i As Integer, j As Integer
تعريف متغيرات هي: العرض، الطول، الحرف الذي سنكتب به، ومتغيران لحلقتي For
RegtangleWidth = Text2.Text RectangleHeight = Text1.Text Letter = Text3.Text Text4.Text = ""
وهنا قمنا بجعل العرض هو العدد المكتوب في Text2 والطول هو العدد المكتوب في Text1 والحرف هو الحرف المكتوب في Text3، ثم قمنا بمسح محتويات Text4 الذي سوف يتم الرسم فيه، وذلك لأننا إذا أردنا الرسم أكثر من مرة، فسوف نحتاج لأن نمسح المكتوب في المرة السابقة ليظهر ما نريد، تمام؟؟ :)
For i = 1 To RectangleHeight For j = 1 To RectangleWidth
وتبدأ الحلقتان، يمكنك أن تلاحظ أننا قمنا باستدعاء إحدى الحلقتين من داخل الثانية، لماذا؟ هنا فلنفترض أن المتغير RectangleHeight قيمته 3، والمتغير RectangleWidth قيمته 5، عندما يدخل البرنامج أثناء سيره إلى الحلقة الأولى، سيجد الحلقة الثانية من داخلها، ويقوم بتنفيذها 5 مرات، في كل مرة يقوم بالتالي:
Text4.Text = Text4.Text & Letter
أي أنه في كل مرة سيضيف الحرف المحدد في المتغير Letter إلى النص المكتوب، فإذا وجد أنه قد وصل إلى العدد الذي حددناه في متغير العرض، انتقل إلى السطر الثاني هكذا:
If j = RectangleWidth Then Text4.Text = Text4.Text & vbNewLine
هنا سوف يتحقق هل وصل المتغير في حلقة For إلى 5 في حالتنا هذه؟ إن كان فعلاً قد وصل فإنه يضيف سطراً جديداً vbNewLine ثم يخرج من الحلقة الصغيرة، ويجد عندها Next الخاصة بالحلقة الكبيرة، عندها سيزيد i مرة واحدة، ويعود لينفذ الحلقة من جديد، ويكرر العملية 3 مرات في مثالنا هذا لنحصل على الشكل التالي:
@@@@@
@@@@@
@@@@@
أرجو أن أكون قد وفقت في شرح هذا المثال
والسلام عليكم ورحمة الله
هذه الجملة خاطئة :wacko:
