تابع بوابة العرب على تويتر 


العودة   مركز بوابة العرب التعليمي > أرشيف مركز بوابة العرب التعليمي > الأرشــيــف

 
 
أدوات الموضوع
  #1  
قديم 03-10-2002, 08:59 PM
Dream killer
 
المشاركات: n/a
افتراضي كيفية عمل آلة حاسبة بالفيجوال بيسك




بسم الله الرحمن الرحيم

نبدأ الشرح

صورة البرنامج



ما خليت الصورة عشان تشوفونها خليت الصورة عشان تسوون مثل الاشياء اللي فيها بالضبط


وطبعاً احنا نخلي المستخدم ينظر الى الازرار بشكل عربي بس احنا نكتبهم في البرمجة بشكل انجلينزي

المستطيل الاول (التكست بوكس) بنسميه txtDis

والمستطيل الثاني (التكست بوكس الصغير) بنسميه Text1

وزر امسح (الكومند) بنسميهcmdClear

والزر 1 (الكومند) بنسميه cmd1

والزر 2 (الكومند) بنسميه cmd2

والزر 3 (الكومند) بنسميه cmd3

والزر 4 (الكومند) بنسميه cmd4

والزر 5 (الكومند) بنسميه cmd5

والزر 6 (الكومند) بنسميه cmd6

والزر 7 (الكومند) بنسميه cmd7

والزر 8 (الكومند) بتسميه cmd8

والزر 9 (الكومند) بنسميه cmd9

والزر 0 (الكومند) بنسميه cmd0

والزر \ (الكومند) بنسميه cmdDiv

والزر × (الكومند) بنسميه CmdMul

والساعة (التايمر) بنسميه Timer1

بيكون interval فيه 100

و left فيه 1320

و top فيه 2520

والزر . (الكومند) بنسميه cmdDec

والزر - (الكومند) بنسميه cmdsub

والزر في نفسه (الكومند) بنسميه cmdSq

والزر -/+ (الكومند) بنسميه cmdNeg

والزر % (الكومند) بنسميه cmdPer

والزر + (الكومند) بنسميه cmdadd

والزر للخلف (الكومند) بنسميه cmdBack

والزر = (الكومند) بنسميه cmdEqual

اما الزر الاخيري (programer) هذا الزر خاص فيني يعني اذا احد ضغط عليه بيطلع ايميلي واكيد انتون ما تبغونه

والان بأسم الله نبدأ في الاكواد

في general هذا الكود

Option Explicit
Private Const back_space As String = " "
Private chs_add As Boolean
Private chs_multiply As Boolean
Private chs_divide As Boolean
Private chs_subtract As Boolean
Private end_calc As Boolean
Private dec_point As Integer
Private first As Double
Private second As Double
Private Final As Double

وفي cmd0



Private Sub cmd0_Click()
calc_end
If txtDis.Text = "" Then

Exit Sub
Else
txtDis.Text = txtDis.Text & "0" 'can't start off with "0"

End If
End Sub

وفي cmd1


Private Sub cmd1_Click()
calc_end
txtDis.Text = txtDis.Text & "1"

End Sub

وفي cmd2


Private Sub cmd2_Click()
calc_end
txtDis.Text = txtDis.Text & "2"

End Sub

وفي cmd3


Private Sub cmd3_Click()
calc_end
txtDis.Text = txtDis.Text & "3"

End Sub

وفي cmd4


Private Sub cmd4_Click()
calc_end
txtDis.Text = txtDis.Text & "4"

End Sub

وفي cmd5


Private Sub cmd5_Click()
calc_end
txtDis.Text = txtDis.Text & "5"

End Sub

وفي cmd6


Private Sub cmd6_Click()
calc_end
txtDis.Text = txtDis.Text & "6"

End Sub

وفي cmd7


Private Sub cmd7_Click()
calc_end
txtDis.Text = txtDis.Text & "7"

End Sub

وفي cmd8


Private Sub cmd8_Click()
calc_end
txtDis.Text = txtDis.Text & "8"

End Sub

وفي cmd9


Private Sub cmd9_Click()
If end_calc = True Then
txtDis = ""
End If
txtDis = txtDis.Text & "9"

end_calc = False
End Sub

وفي cmdadd


Private Sub cmdAdd_Click()
dec_point = 0
If txtDis.Text = "" Then
Exit Sub
End If
If chs_subtract = True Then
do_subtract
chs_add = True
Exit Sub
End If
If chs_divide = True Then
do_divide
chs_add = True
Exit Sub
End If
If chs_multiply = True Then
do_multiply
chs_add = True
Exit Sub
End If
If first > "0" Then
second = txtDis.Text
txtDis.Text = ""
Final = first + second
first = Final
second = "0"
Else
first = txtDis.Text
txtDis.Text = ""
End If
set_false
chs_add = True

End Sub

وفي cmdback


Private Sub cmdBack_Click()
If Right(txtDis, Len(back_space)) = "." Then
dec_point = 0
End If
If Right(txtDis, Len(txtDis)) > "" Then
txtDis = Left(txtDis, Len(txtDis) - Len(back_space))
End If



End Sub


وفي cmdClear


Private Sub cmdClear_Click()
txtDis.Text = ""
first = 0
second = 0
Final = 0
set_false
dec_point = 0

End Sub


وفي cmdDec


Private Sub cmdDec_Click()
calc_end
If dec_point = 1 Then

Exit Sub
End If
txtDis.Text = txtDis.Text & "."

dec_point = 1
End Sub

وفي cmdDiv


Private Sub cmdDiv_Click()
dec_point = 0
If txtDis.Text = "" Then
Exit Sub
End If
If txtDis.Text = "0" Then
Exit Sub
End If
If chs_add = True Then
do_add
chs_divide = True
Exit Sub
End If
If chs_subtract = True Then
do_subtract
chs_divide = True
Exit Sub
End If
If chs_multiply = True Then
do_multiply
chs_divide = True
Exit Sub
End If
If first > "0" Then
second = txtDis.Text
txtDis.Text = ""
Final = first * second
first = Final
second = "0"
Else
first = txtDis.Text
txtDis.Text = ""
End If
set_false
chs_divide = True

End Sub

وفي cmdEqual


Private Sub cmdEqual_Click()
dec_point = 0
end_calc = True
If txtDis.Text = "" Then
Exit Sub
End If
If chs_divide = True Then
If txtDis.Text = ".0" Then 'can't divide by zero
txtDis = ""
Exit Sub
End If
End If
second = txtDis.Text
txtDis.Text = ""
If chs_multiply = True Then
txtDis.Text = first * second
End If
If chs_subtract = True Then
txtDis.Text = first - second
End If
If chs_divide = True Then
txtDis.Text = first / second
End If
If chs_add = True Then
txtDis.Text = first + second
End If
first = "0"
second = "0"
Final = "0"
set_false
end_calc = True

End Sub

وتكتب هذا بس لاتصنع كومند باسمه بس اكتبه


Private Sub cmdExit_Click()
End
End Sub

وفي cmdMul


Private Sub cmdMul_Click()
dec_point = 0
If txtDis.Text = "" Then
Exit Sub
End If
If chs_add = True Then
do_add
chs_multiply = True
Exit Sub
End If
If chs_subtract = True Then
do_subtract
chs_multiply = True
Exit Sub
End If
If chs_divide = True Then
do_divide
chs_multiply = True
Exit Sub
End If
If first > "0" Then
second = txtDis.Text
txtDis.Text = ""
Final = first * second
first = Final
second = "0"
Else
first = txtDis.Text
txtDis.Text = ""
End If
set_false
chs_multiply = True

End Sub


وفي cmdNeg


Private Sub cmdNeg_Click()
On Error Resume Next
txtDis = txtDis.Text * -1

set_false
End Sub

وفي cmdPer


Private Sub cmdPer_Click()
If txtDis.Text > "0" Then
txtDis.Text = txtDis.Text * 0.01
dec_point = 1
Else

Exit Sub
End If

End Sub

وفي cmdSq


Private Sub cmdSq_Click()
On Error Resume Next
txtDis = txtDis.Text * txtDis.Text

End Sub

وفي cmdSub

Private Sub cmdSub_Click()
dec_point = 0
If txtDis.Text = "" Then
Exit Sub
End If
If chs_add = True Then
do_add
chs_subtract = True
Exit Sub
End If
If chs_multiply = True Then
do_multiply
chs_subtract = True
Exit Sub
End If
If chs_divide = True Then
do_divide
chs_subtract = True
Exit Sub
End If
If first > "0" Then
second = txtDis.Text
txtDis.Text = ""
Final = first - second
first = Final
second = "0"
Else
first = txtDis.Text
txtDis.Text = ""
End If
set_false
chs_subtract = True

End Sub

وهذا

Private Function set_false()
chs_multiply = False
chs_subtract = False
chs_add = False
chs_divide = False
End Function

وهذا

Private Function do_divide()
second = txtDis.Text
Final = first / second
first = Final
second = "0"
Final = "0"
txtDis = ""
set_false
dec_point = 0

End Function

وهذا

Private Function do_add()
second = txtDis.Text
Final = first + second
first = Final
second = "0"
Final = "0"
txtDis = ""
set_false
dec_point = 0

End Function


وهذا

Private Function do_subtract()
second = txtDis.Text
Final = first - second
first = Final
second = "0"
Final = "0"
txtDis = ""
set_false
dec_point = 0

End Function

وهذا

Private Function do_multiply()
second = txtDis.Text
Final = first * second
first = Final
second = "0"
Final = "0"
txtDis = ""
set_false

End Function

وهذا


Private Sub Form_Load()
Me.Show
set_false

End Sub

وهذا

Private Sub picture1_keyup(keycode As Integer, shift As Integer)
Select Case keycode 'buttons come back up after being pressed
Case vbKey1, vbKeyNumpad1
Call SendMessage(cmd1.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey2, vbKeyNumpad2
Call SendMessage(cmd2.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey3, vbKeyNumpad3
Call SendMessage(cmd3.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey4, vbKeyNumpad4
Call SendMessage(cmd4.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey5, vbKeyNumpad5
Call SendMessage(cmd5.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey6, vbKeyNumpad6
Call SendMessage(cmd6.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey7, vbKeyNumpad7
Call SendMessage(cmd7.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey8, vbKeyNumpad8
Call SendMessage(cmd8.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey9, vbKeyNumpad9
Call SendMessage(cmd9.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKey0, vbKeyNumpad0
Call SendMessage(cmd0.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKeyMultiply
Call SendMessage(CmdMul.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKeyAdd
Call SendMessage(cmdadd.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKeySubtract
Call SendMessage(cmdsub.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKeyDivide
Call SendMessage(cmdDiv.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKeyReturn
Call SendMessage(cmdEqual.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKeyDecimal
Call SendMessage(cmdDec.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case 190
Call SendMessage(cmdDec.hWnd, BM_SETSTATE, 0, ByVal 0&)
Case vbKeyBack
Call SendMessage(cmdBack.hWnd, BM_SETSTATE, 0, ByVal 0&)
End Select

End Sub

وهذا

Private Sub Picture1_KeyDown(keycode As Integer, shift As Integer)
calc_end 'hidden under cmd6
Select Case keycode 'presses cmdButtons
Case vbKey1, vbKeyNumpad1 'inputs keyboard entry's
Call SendMessage(cmd1.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd1_Click
Case vbKey2, vbKeyNumpad2
Call SendMessage(cmd2.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd2_Click
Case vbKey3, vbKeyNumpad3
Call SendMessage(cmd3.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd3_Click
Case vbKey4, vbKeyNumpad4
Call SendMessage(cmd4.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd4_Click
Case vbKey5, vbKeyNumpad5
Call SendMessage(cmd5.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd5_Click
Case vbKey6, vbKeyNumpad6
Call SendMessage(cmd6.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd6_Click
Case vbKey7, vbKeyNumpad7
Call SendMessage(cmd7.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd7_Click
Case vbKey8, vbKeyNumpad8
Call SendMessage(cmd8.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd8_Click
Case vbKey9, vbKeyNumpad9
Call SendMessage(cmd9.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd9_Click
Case vbKey0, vbKeyNumpad0
Call SendMessage(cmd0.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmd0_Click
Case vbKeyMultiply
Call SendMessage(CmdMul.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdMul_Click
Case vbKeyAdd
Call SendMessage(cmdadd.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdAdd_Click
Case vbKeySubtract
Call SendMessage(cmdsub.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdSub_Click
Case vbKeyDivide
Call SendMessage(cmdDiv.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdDiv_Click
Case vbKeyReturn
Call SendMessage(cmdEqual.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdEqual_Click
Case vbKeyDecimal
Call SendMessage(cmdDec.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdDec_Click
Case 190
Call SendMessage(cmdDec.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdDec_Click
Case vbKeyBack
Call SendMessage(cmdBack.hWnd, BM_SETSTATE, 1, ByVal 0&)
cmdBack_Click
End Select

End Sub

وهذا

Private Sub Timer1_Timer()
Text1.Text = first 'show's answer as you go in seperate text box
End Sub

وهذا

Private Function calc_end()
Dim i As Integer
For i = cmd0 To cmd9
If end_calc = True Then
txtDis = ""
End If
Next i
end_calc = False
End Function

وكل ما علينا الان ان نشاهد برنامجنا



  #2  
قديم 04-10-2002, 12:11 AM
SISCO SISCO غير متواجد حالياً
 
تاريخ التسجيل: Jun 2002
المشاركات: 220
افتراضي

كود ممتاز بس قديم شوي
  #3  
قديم 04-10-2002, 12:15 AM
Dream killer
 
المشاركات: n/a
افتراضي

SISCO والله ما ادري قديم ولا جديد

بس مشكور على الرد

وشركة سيسكو احرف اسمها مو جدي اعتقد
  #4  
قديم 04-10-2002, 11:50 AM
SISCO SISCO غير متواجد حالياً
 
تاريخ التسجيل: Jun 2002
المشاركات: 220
افتراضي

اخوي شركة سيسكو تكتب هكذا
CISCO
انا هكذا
SISCO
  #5  
قديم 04-10-2002, 04:52 PM
Dream killer
 
المشاركات: n/a
افتراضي

اي اعرف بس كنت افكر انك تبي تكتب اسمهم
  #6  
قديم 04-10-2002, 05:24 PM
aimenkawaz aimenkawaz غير متواجد حالياً
 
تاريخ التسجيل: Jul 2002
المشاركات: 221
افتراضي

شكراً جزيلاً لك أخي
  #7  
قديم 04-10-2002, 07:56 PM
glad421 glad421 غير متواجد حالياً
 
تاريخ التسجيل: May 2002
المشاركات: 110
افتراضي

مشكووووووووووووووووووور
  #8  
قديم 04-10-2002, 08:39 PM
Dream killer
 
المشاركات: n/a
افتراضي

aimenkawaz العفو

glad421 العفوووووو
 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 07:14 AM.


جميع الحقوق محفوظة لشبكة بوابة العرب
New Page 4
 المركز التعليمي منتديات الحوار تسجيل النطاقاتخدمات تصميم مواقع الإنترنت  إستضافة مواقع الإنترنت  الدعم الفني لإستضافة المواقع
   متجر مؤسسة شبكة بوابة العرب   الدردشة الصوتية والكتابية  مركـزنا الإعـلامي  مـن نـحــن  مقــرنـا  قسم إتفـاقيات الإستــخــدام
Copyright © 2000-2014 ArabsGate. All rights reserved
To report any abuse on this website please contact abuse@arabsgate.com