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

مشكلة Byref في الفيجوال بيسك

مغلق
بدأه طارق عبيد في 11 يوليو 2007 · 1 رد · 402 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
Dim c
Option Explicit
Private Sub main()
Dim a, b As Integer
a = 12
b = 10
c = "19"
Print "Before calling: a="; a; "b="; b
Call calculate(a, b, c)
Print "After calling: a="; a;; "b="; b
End Sub
Private Sub calculate(ByRef a As Integer, ByRef b As Integer, Optional c)
Print "A="; a; "b="; b
a = a + b + 8 + c
b = b ^ 2 + 20
Print "a="; a; "b="; b
End Sub

Private Sub Command1_Click()
Call main
End Sub

ارجو منكم مساعدتي في حل هذا السؤال .. لقد جربت البرنامج مراراً وتكراراً وواجهتني مشكلة من ناحية استخدام Byref للمتغير a فعندها لا يعمل البرنامج .. ارجو توضيح ما سبب المشكلة ؟

وارجو منكم توضيح لماذا استخدم الأمر Optional في الاجراء Calculate ؟

#2

رسالة الايرور Type Mismatch لازم تظهر

لإنك في الكود ده

Dim a, b As Integer

قمت بتعريف المتغير a من نوع variant ..

وبعد كده أتيت في الكود ده

ByRef a As Integer

وقولتله إنه Integer

وبالتالي حلها تحذف أي واحد منهم

ياما تقول في الاول

Dim a as Integer, b As Integer

أو تيجي في التانية وتقوله

ByRef a As Variant

والتعبير Optional يستخدم إذا كنت لا تريد شرط تمرير قيمة للدالة calculate

أي انه يمكنك أن تمرر القيم هكذا

Call calculate(a, b)

أو هكذا

Call calculate(a, b, c)

هذا الموضوع مغلق.

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