بالفجوال : عمل ساعة (عقارب)

الكاتب : alhammady   المشاهدات : 620   الردود : 2    ‏2004-04-22
      مشاركة رقم : 1    ‏2004-04-22
  1. alhammady

    alhammady عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    119
    الإعجاب :
    0
    بسم الله الرحمن الرحيم
    السلام عليكم ورحة الله وبركاتة
    هذة فكرة بسيطة لعمل ساعة (عقارب وليس أرقام ) بواسطة الفجوال بيسك
    وسنبدأ معاً في بناء البرنامج خطوة خطوة .

    - افتح مشروع جديد ثم قم بتوضيع الأدوات التالية
    1 – ميقاتي (Timer ) وله خاصية (Interval=1000)
    2 – أداة (Picture) وخاصية (Name=Picture1)
    3 – أداة (Picture) وخاصية (Name=Picture2)

    - في قسم التصاريح العامة اكتب التالي

    [align=left]Option Explicit
    Dim CenterX As Long, CenterY As Long, MySize As Long
    Dim PI As Double
    Dim DPicture As PictureBox
    - في حدث تحميل الفورم أكتب التالي

    [align=left]Private Sub Form_Load()
    PI = 3.14159265359
    Set DPicture = Picture1
    End Sub


    - في حدث تغيير حجم الفورم أكتب التالي

    [align=left]Private Sub Form_Resize()
    Picture1.Width = Form1.ScaleWidth - Picture1.Left * 2
    Picture1.Height = Form1.ScaleHeight - Picture1.Top * 2
    CenterX = Picture1.ScaleWidth / 2
    CenterY = Picture1.ScaleHeight / 2
    If CenterX > CenterY Then CenterX = CenterY
    If CenterY > CenterX Then CenterY = CenterX
    MySize = CenterX / 50
    Picture2.Top = Picture1.Top
    Picture2.Left = Picture1.Left
    Picture2.Width = Picture1.Width
    Picture2.Height = Picture1.Height
    End Sub

    - في حدث الميقاتي أكتب التالي

    [align=left]Private Sub Timer1_Timer()
    If DPicture = Picture1 Then
    Set DPicture = Picture2
    Else
    Set DPicture = Picture1
    End If
    DrawClock
    DPicture.ZOrder 0
    End Sub



    وهنا اخواني انتهت الأكواد الخاصة بالأدوات والفورم
    وبعد ذللم نحن في حاجة الى برنامج فرعي او ما يسمي عند المبرمجين(Subroutins)

    البرنامج الفرعي الأول

    [align=left]Private Sub DrawClock()
    Dim X As Long, Y As Long, Rad As Double
    Dim X1 As Long, Y1 As Long

    DPicture.Cls

    X = CenterX

    Y = MySize * 2
    For Rad = PI * 2 To 0 Step -(PI / 6)
    X1 = Math.Cos(Rad) * (X - CenterX) + Math.Sin(Rad) * (Y - CenterY)
    Y1 = Math.Cos(Rad) * (Y - CenterY) - Math.Sin(Rad) * (X - CenterX)
    DrawDot X1, Y1
    Next Rad

    Y = MySize * 25
    DPicture.DrawWidth = MySize / 5

    Rad = -PI / 6 * Hour(Time)
    X1 = Math.Cos(Rad) * (X - CenterX) + Math.Sin(Rad) * (Y - CenterY)
    Y1 = Math.Cos(Rad) * (Y - CenterY) - Math.Sin(Rad) * (X - CenterX)
    DPicture.Line (CenterX, CenterY)-(X1 + CenterX, Y1 + CenterY), RGB(0, 0, 0)

    Y = MySize * 4
    DPicture.DrawWidth = MySize / 10

    Rad = -PI / 30 * Minute(Time)
    X1 = Math.Cos(Rad) * (X - CenterX) + Math.Sin(Rad) * (Y - CenterY)
    Y1 = Math.Cos(Rad) * (Y - CenterY) - Math.Sin(Rad) * (X - CenterX)
    DPicture.Line (CenterX, CenterY)-(X1 + CenterX, Y1 + CenterY), RGB(100, 100, 100)

    Y = MySize * 4
    DPicture.DrawWidth = 1

    Rad = -PI / 30 * Second(Time)
    X1 = Math.Cos(Rad) * (X - CenterX) + Math.Sin(Rad) * (Y - CenterY)
    Y1 = Math.Cos(Rad) * (Y - CenterY) - Math.Sin(Rad) * (X - CenterX)
    DPicture.Line (CenterX, CenterY)-(X1 + CenterX, Y1 + CenterY), RGB(255, 0, 0)

    Form1.Caption = Format(Time, "hh:nn:ss")
    End Sub

    البرنامج الفرعي الثاني

    [align=left]Private Sub DrawDot(X1, Y1)
    DPicture.Line ((X1 + CenterX) - MySize, (Y1 + CenterY) - MySize)-((X1 + CenterX) + MySize, (Y1 + CenterY) - MySize), RGB(255, 255, 255), B
    DPicture.Line ((X1 + CenterX) - MySize, (Y1 + CenterY) - MySize)-((X1 + CenterX) - MySize, (Y1 + CenterY) + MySize), RGB(255, 255, 255), B
    DPicture.Line ((X1 + CenterX) - MySize, (Y1 + CenterY) + MySize)-((X1 + CenterX) + MySize, (Y1 + CenterY) + MySize), RGB(0, 0, 0), B
    DPicture.Line ((X1 + CenterX) + MySize, (Y1 + CenterY) - MySize)-((X1 + CenterX) + MySize, (Y1 + CenterY) + MySize), RGB(0, 0, 0), B
    End Sub


    -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



    أرجو تطبيق المثال و أي ملاحظات أن تسجلوها

    سلاااااااااام
    أخوكم : محمد الحمادي
     
  2.   مشاركة رقم : 2    ‏2004-04-22
  3. العمراوي

    العمراوي مشرف سابق

    التسجيل :
    ‏2002-11-24
    المشاركات:
    7,510
    الإعجاب :
    4
    جزاك الله خيرا .,.,.,.,

    بانجربها وبأقول لك رأيي .,.,.,.,
     
  4.   مشاركة رقم : 3    ‏2004-04-23
  5. صدى الحرمان

    صدى الحرمان عضو متميّز

    التسجيل :
    ‏2004-01-15
    المشاركات:
    1,519
    الإعجاب :
    0
    جزاك الله خيرا .,.,.,.,

    بانجربها وبأقول لك رأيي .,.,.,.,
    أنا كمان
     

مشاركة هذه الصفحة