المجلس اليمني ... يمن واحد وآراء متعددة
::  قوانين المنتدى  |   طلب رقم التنشيط   |   تنشيط العضوية  |  استعادة كلمة المرور
العودة   المجلس اليمني :: العلمية والتقنية :: الكمبيـوتر والانتـرنت :: المواقع ولغات البرمجة والشبكات
|
 
أدوات الموضوع
قديم 22-04-2004, 01:24 PM   مشاركة رقم : 1
عضو
 
لا توجد صورة

 
تاريخ التسجيل: 09-07-2003
المشاركات: 128

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

بسم الله الرحمن الرحيم
السلام عليكم ورحة الله وبركاتة
هذة فكرة بسيطة لعمل ساعة (عقارب وليس أرقام ) بواسطة الفجوال بيسك
وسنبدأ معاً في بناء البرنامج خطوة خطوة .

- افتح مشروع جديد ثم قم بتوضيع الأدوات التالية
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]
- في حدث تحميل الفورم أكتب التالي

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


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

[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]

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

[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[/align]



وهنا اخواني انتهت الأكواد الخاصة بالأدوات والفورم
وبعد ذللم نحن في حاجة الى برنامج فرعي او ما يسمي عند المبرمجين(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]

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

[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[/align]


[align=center]-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-[/align]



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

سلاااااااااام
أخوكم : محمد الحمادي

  رد مع اقتباس
قديم 22-04-2004, 08:04 PM   مشاركة رقم : 2
مشرف سابق

الصورة الرمزية العمراوي

 
تاريخ التسجيل: 24-11-2002
المشاركات: 7,559

افتراضي

جزاك الله خيرا .,.,.,.,

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

  رد مع اقتباس
قديم 23-04-2004, 06:16 AM   مشاركة رقم : 3
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 15-01-2004
المشاركات: 1,526

افتراضي

جزاك الله خيرا .,.,.,.,

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

  رد مع اقتباس
إضافة رد

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

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

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.