عليك بالطريقة الاخرى function يتعامل مع براميتر ويرجع بالقيمة بناء على قيمة البارميتر
وهذا مثال
function FUNCC(x as integer) as integer
select case x
case is 20
.
.
.
FUNCC=123
case is 30
.
.
.
FUNCC=111
end select
end function
يعطيك العافية
أهلا أخي الكريم إسلام , الأداة ScriptControl1 تنفذ سكربت الـ vbscript , وليس كود الفيجول بيسك6 لذلك سيكون فيه أختلافات في بعض الجزئيات في الكود والسكربت لكن أعتقد بأنها ليست كثيرة على حسب علمي حيث ليس لدي خبرة كبيرة في سكربت الـ vbscript , لكن أعتقد أنها ستقوم بما تريده لأنك تريد إستخدامها في عمليات إستدعاء دوال أو إجراءات معينة أو حتى أدوات معينة , حيث أنك تستطيع إضافة كائنات معينة لأداة الـ ScriptControl1 كالفورمات أو أداة محددة ولابد لك عند الإضافة أنك تسند إسم لهذا الكائن ويفضل أن يكون إسم الكائن الحقيقي وهاذي هي طريقة إضافة الكائن لأداة الـ ScriptControl1 بهذه الطريقة :
كود :
ScriptControl1.AddObject "Form1", Form1
في الكود السابق أضفنا الفورم1 في الأداة ScriptControl1 بإسمها الحقيقي وتستطيع تغييره , وعند إضافة كائن الفورم1 فإن أداة الـ ScriptControl1 ستتعرف أو ترى جميع المتغيرات و الدوال والإجراءات الموجودة داخل الفورم1 بشرط أن تكون معرفه بضيغة Public وليس Private للدوال والإجراءات وليس Dim للمتغيرات , وأيضاُ ستتعرف على جميع الأداوت الموجودة على الفورم1 وبذلك تستطيع التحكم بخصائص هذه الأدوات من خلال سكربت الأداة الـScriptControl1 , ولكن يجب عليك إن أردت أن تستخدم أياًً من الدوال أو الإجراءات أو الأدوات وغيرها الموجودة داخل وعلى الفورم1 يجب أن يكون مسبوقا بإسم كائن الفورم1 الذي أضفته للأداة ScriptControl1 متبوعا بنقطه ,وأيضاً تتحكم بخصائص الفورم1 , وطريقة تنفيذ السكربت من خلال هاذي الخاصية التابعة لأداة الـ ScriptControl1 :
كود :
ScriptControl1.ExecuteStatement "Script Here"
هذا كل ما أعرفه عن هذه الأداة .
إقتباس :عليك بالطريقة الاخرى function يتعامل مع براميتر ويرجع بالقيمة بناء على قيمة البارميتر
وهذا مثال
شكرآ لك
ولكن ليتك بدلآ من هذا المثال تكتب كودآ لحل نفس المثال الذى كتبته لكم فى بداية سؤالى
إقتباس :الأداة ScriptControl1 تنفذ سكربت الـ vbscript , وليس كود الفيجول بيسك6 لذلك..............................................................................................................................................هذا كل ما أعرفه عن هذه الأداة .
شكرآ لك
[b]ولكم ألف شكر[/b]
تفضل يا اخي ان شاء الله طلبك في المثال المرفق
كود :
Private Sub Command1_Click()
Label2.Caption = funcc(Val(Text1.Text))
End Sub
Function funcc(x As Integer) As Integer
funcc = 222
If x <= 10 Then funcc = 111
End Function
شكرآ لك
ولكن أين هى الFUNC
لقد كان طلبى أن لدى 2 FUNC1, FUNC2) FUNCTIONS )
وأريد التوجه الى الأولى FUNC1 اذا كانت NNN <= 10 أو التوجه الى الثانية FUNC2 اذا كانت غير ذلك
ولأنى سأحتاج الى ذلك فى عدة مواضع فى الكود لا فى موضع واحد
فلا أريد
فى كل مرة كتابة هذا الشرط
كود :
If NNN <= 10 Then FUNC1 Else: FUNC2
وانما أريد
فى كل مرة كتابة جملة واحدة
على أن يكون FUNCC متغير يعبر عن اسم الFUNCTIONS
يحسب مرة واحدة فى بداية الكود
كود :
If NNN <= 10 Then FUNCC = "FUNC1" Else: FUNCC = "FUNC2"
ولكم ألف شكر
اخي الكريم انت في هذه الحالة لست بحاجة الى كتابة الشرط مرة اخرى جرب الكود مرة اخرى حيث يتم استدعاءة فقط بجملة واحدة من اي مكان في البرنامج
يعطيك العافية
السلام عليكم ورحمة الله
أخي اسلام
جرب هذا الكود وهو مشابه لفكرة الأخوة
PHP كود :
'Private Sub FUNC1()
' AA = 111
'End Sub
'Private Sub FUNC2()
' AA = 222
'End Sub
Private Sub Command1_Click()
NNN = Val(Text1.Text)
Print "NNN "; NNN
'If NNN <= 10 Then FUNCC = "FUNC1" Else : FUNCC = "FUNC2"
'FUNCC()
FUNCC(NNN)
REM"المفروض بالجملة السابقة يتوجه الى FUNC1 أو الى FUNC2 حسب قيمة المتغير FUNCC"
Print(AA)
End Sub
Sub FUNCC(ByVal NNN As Integer)
Select Case NNN
Case Is <= 10
AA = 111
Case Else
AA = 222
End Select
End Sub
هذا الحل لنفس المتغيرات المستخدمة
كود :
Private Sub Command1_Click()
Dim NNN As Integer
NNN = Val(Text1.Text)
AA = funcc(NNN)
Print AA
End Sub
Function funcc(x As Integer) As Integer
funcc = 222
If x <= 10 Then funcc = 111
End Function
يعطيك العافية
ولكنه وضع الشرط هنا فى كود الFUNC
لا أريد أى شرط فى أى FUNC
انما يكون الشرط فى كود الزر كما فى مثالى
ملحوظة: فى كل FUNC سأضع كودآ كبيرآ مختلف تمامآ عن ال FUNC الأخرى
انما هذا الكود فى مثالى مجرد مثال
ولكم ألف شكر