PDA

نسخه کامل مشاهده نسخه کامل : ساخت چهار راه * لطفا کمک کنید *



hasan0be
04-03-2011, 12:28
سلام خدمت دوستان عزیز امیدوارم حال شما خوب باشد .
من میخواهم برنامه ای بنویسم که مانند چراغ قرمز که اگر چراغ قرمز بود shape ما حرکت نکند و اگر چراغ سبز بود shape به سمت جلو برود که این برنامه باید توسط تایمر انجام شود .
خیلی ممنون میشوم که اگر این برنامه را برای من بنویسید.

Mohsen.Sh_PC
04-03-2011, 14:20
خوب مثلا اگر چراغ قرمز بود Timer رو که دستورات درون اونه غیر فعال کن.(Timer1.Enable=False)

amirxbest
04-03-2011, 14:43
دوست عزیز اگه خواستی فرم رو طراحی کن و یه چیزی هم کد بنویس بعد بزار تا کاملش کنیم.:46:
موفق باشید.

farshidshd
04-03-2011, 19:25
این پروژه درس شبیه سازی من بود . کاملا انجامش دادم ، این فرم رو طراحی کن تا گام به گام اگه میخوای کمکت کنیم::

این فایل EXE برنامه هست::


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

hasan0be
04-03-2011, 21:02
خیلی خوشحال شدم . که میتونم از شما کمک بگیرم.
یک سوال : من میخواهم shape را از بالا به سمت پائین بیارم به صورتی که اگر از صفحه خارج شد از سمت بالا دوباره این عمل تکرار شود مثل ماشین ها شما در این برنامه .

متشکرم

amirxbest
04-03-2011, 21:32
ابتدا یه timer بزار بعد تو timer این کد رو بزار:

shape1.top =shape1.top +50
if shape1.top > form1.height then
shape1.top =50
endif

بعدم interval تایمر رو زمان دلخواه خودت بزار

hasan0be
04-03-2011, 23:50
خیلی خیلی ممنون

hasan0be
05-03-2011, 19:10
خیلی خوشحال شدم . که میتونم از شما کمک بگیرم.
یک سوال : من میخواهم shape را از بالا به سمت پائین بیارم به صورتی که اگر از صفحه خارج شد از سمت بالا دوباره این عمل تکرار شود مثل ماشین ها شما در این برنامه .

متشکرم

دوستان چگونه میشود این عمل را برعکس اجام داد یعنی از سمت پائین به بالا

amirxbest
05-03-2011, 19:17
خوب دوست عزیز اینکه کاری نداره.
اول shape مورد نظر تو form load در پایین فرم قرار بده اینجوری:

shape1.top=form1.height

بعد تو timer اینو بنویس:


shape1.top=shape1.top-50
if shape1.top<100 then
shape1.top=form1.height
endif

farshidshd
05-03-2011, 19:31
کدهای دوست عزیز جناب amirxbest ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) هم کاملا درسته

منم توی همین برنامه ، کدها رو به صورت دستی نوشتم یعنی به جای اینکه عرض فرم رو در نظر بگیرم ، خودم دستی بهشون عدد دادم

دقت کن ::
c3 ماشینی هست که از بالا به پایین میاد و وقتی از صفحه بیرون رفت دوباره از بالا میاد
c4 هم ماشینیه که از پایین به بالا میره


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

hasan0be
06-03-2011, 15:57
من سه عدد Label به عنوان چراغ ها استفاده کرده ام چگونه به تایمر تعریف کنم که این کار پشت سر هم تکرار شود .
یعنی روشن خاموش شدن چراغ ها .

با تشکر


Private Sub Timer5_Timer()
Static a As Long
a = a + 1
If a = 3 Then Label1.BackColor = vbRed
If a = 110 Then Label1.BackColor = &H8000000F
If a = 110 Then Timer5.Enabled = False
If Timer5.Enabled = False Then Timer6.Enabled = True
End Sub


Private Sub Timer6_Timer()
Static b As Long
b = b + 1
If b = 1 Then Label2.BackColor = &HFFFF&
If b = 20 Then Label2.BackColor = &H8000000F
If b = 20 Then Timer6.Enabled = False
If Timer6.Enabled = False Then Timer7.Enabled = True
End Sub

Private Sub Timer7_Timer()
Static b As Long
c = c + 1
If c = 1 Then Label3.BackColor = vbGreen
If c = 100 Then Label3.BackColor = &H8000000F
If c = 100 Then Timer7.Enabled = False


End Sub

دوستان این کد تا حالا درست است .

amirxbest
06-03-2011, 16:35
فکر کنم تو زیادی پیچوندیش.از فرشید جان بخواه اگه امکان داره برات سورس رو بزاره تا کامل برات جا بیفته.

ولی اینجورم میشه:8:
اون متغیر ای ایستا(static) که تعریف کردی رو تو تایمر یکی بهش اضاف کن اینجوری:

static a as byte
a=a+1

بعدم با یه if چک کن اینجوری:

if a =3 then
timer1.enabled=false
timer2.enabled=true
a=0
end if

بعدم تو اون 2تا تایمر هم همینجوری.
به همین سادگی:46:
بعد واسه هر رنگ یه تایمر جدا بزاری که هم گیج نشی هم کد خوانا تر باشه.
موفق باشید

hasan0be
07-03-2011, 14:47
»ن این کار را انجام دادم ولی دوباره (چراغ سبز/ زرد / قرمز میشود و بعد دیگر تکرار میشود ) دوستان لطفا من را راهنمایی کنید .

sadeghbarout
07-03-2011, 17:33
دوست عزیز فکر کنم مشکل شما سز چراغ راهنماییه ،نه؟


اینم برنامه چراغ راهنمایی:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


امیدوارم مشکلت حل بشه

hasan0be
07-03-2011, 18:30
من تازه vb را شروع کردم و بعضی کدهایی که نوشته بودید را نفهیمدم چی هستند .
اگر میشه یک کد راحت تر برای من بگذارید.

sadeghbarout
07-03-2011, 18:38
اصل کد برنامه این بود:


Private Sub Timer1_Timer()
Shape1(a).Visible = False
If a = 2 Then a = 0 Else a = a + 1
Shape1(a).Visible = True
End Sub


این کد چیش سخته؟
visible یعنی نمایش داده شدن اگه true باشه شی نشون داده میشه و اگر false باشه نشون داده نمیشه

hasan0be
07-03-2011, 19:05
خیلی خیلی ممنون

farshidshd
07-03-2011, 20:26
اگه به جواب نرسیدی بگو تا بیشتر کمکت کنم . کدی که من نوشتم حلقه ی Select Case هست.

hasan0be
07-03-2011, 20:58
خیلی ممنون
اگر میشود در چراغ قرمز ها من را کمک کنید چگونه چراغ ها را به هم متصل کنیم یعنی اگر یک دور چرخید دور بعد هم همینطور ادامه پیدا کند.
اگر میشود کمکم کنید * selsect cas * یا *if*

---------- Post added at 10:58 PM ---------- Previous post was at 10:56 PM ----------

آگر میتوانید کد یکی از چراغ قرمز ها را بگذارید .
متشکرم

farshidshd
08-03-2011, 12:52
اول توی فرم لود مینویسی :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

g چراغ سبز
Y چراغ زرد
r چراغ قرمز

اول که فرم لود میشه چراغ به مدت 20 ثانیه ( تایمر ) قرمز هست بعد به مدت 3 ثانیه زرد میشه و بد به مدت 20 ثانیه سبز هست


حالا برای تکرار مثلا چراغ قرمز ::


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


کد فکر کنم کاملا واضح باشه
اگه جاییش سوال داشتی بپرس

همینطور case2 و case 3 و ...

clock مدت زمان رو که از 20 به پایین میره نشون میده

-1 هست چون میخوام کم بشه 20,19,18,17 و... ( نزولی )

hasan0be
08-03-2011, 21:43
سلام خدمت شما دوستان عزیز که من را راهنمایی میکنید دوستان من clock را هنوز در مدرسه یاد نگرفته ام اگر میشود مقداری من را راهنمایی کنید.

Mohsen.Sh_PC
08-03-2011, 22:14
Clock فقط یک لیبله(Label)
که مقداری که کم میشه رو توی فرم نشون میده با استفاده از مشخصه Caption

IfkUbch
09-03-2011, 01:28
سلام دوستان فکر کنم اگه سورس این برنامه را بگذارید من هم بهتر متوجه بشم تا تکه تکه، ممنون .خواهشا سورس رو قرار بدین .

IfkUbch
09-03-2011, 16:00
تروخدا این سورس رو برای من بگذارید .جون هرکی دوست دارید .

farshidshd
09-03-2011, 18:11
سلام خدمت شما دوستان عزیز که من را راهنمایی میکنید دوستان من clock را هنوز در مدرسه یاد نگرفته ام اگر میشود مقداری من را راهنمایی کنید.


Clock فقط یک لیبله(Label)
که مقداری که کم میشه رو توی فرم نشون میده با استفاده از مشخصه Caption
---------------------------------------------------------------------------------------------------------------

hasan0be
09-03-2011, 20:28
سلام خدمت تمامی دوستان که من را راهنمایی کردید . دوستان من این برنامه را تا حدی درست کردم لطفا ببینید این برنامه مشکل دارد یا نه .


دانلود فایل
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کد :


Private Sub Command1_Click()
Timer1.Enabled = True
Timer2.Enabled = True
Timer3.Enabled = True
Timer4.Enabled = True

End Sub

Private Sub Form_Load()
result = MsgBox("به شبيه ساز چهار راه راهنمايي و رانندگي خوش آمديد", vbInformation + vbOKOnly + vbDefaultButton1, "خوش آمدديد")
End Sub

Private Sub Timer1_Timer()
Static a As Long
a = a + 1
If a = 6 Then Shape3.Visible = True
If a = 60 Then Shape3.Visible = False
If a = 61 Then Shape2.Visible = True
If a = 71 Then Shape2.Visible = False
If a = 72 Then Shape1.Visible = True
If a = 126 Then Shape1.Visible = False
If a = 126 Then a = 0
End Sub

Private Sub Timer2_Timer()
Static b As Long
b = b + 1
If b = 6 Then Shape6.Visible = True
If b = 60 Then Shape6.Visible = False
If b = 61 Then Shape5.Visible = True
If b = 71 Then Shape5.Visible = False
If b = 72 Then Shape4.Visible = True
If b = 126 Then Shape4.Visible = False
If b = 126 Then b = 0
End Sub

Private Sub Timer3_Timer()
Static c As Long
c = c + 1
If c = 6 Then Shape7.Visible = True
If c = 60 Then Shape7.Visible = False
If c = 61 Then Shape9.Visible = True
If c = 115 Then Shape9.Visible = False
If c = 116 Then Shape8.Visible = True
If c = 126 Then Shape8.Visible = False
If c = 126 Then c = 0
End Sub

Private Sub Timer4_Timer()
Static d As Long
d = d + 1
If d = 6 Then Shape10.Visible = True
If d = 60 Then Shape10.Visible = False
If d = 61 Then Shape12.Visible = True
If d = 115 Then Shape12.Visible = False
If d = 116 Then Shape11.Visible = True
If d = 126 Then Shape11.Visible = False
If d = 126 Then d = 0
End Sub



متشکرم

hasan0be
09-03-2011, 21:52
دوستان یک سوال تخصصی دارم .
دوستان من اگر تعریف کنم که اگر چراغ قرمز بود ماشین به ایستد ماشین امکان دارد در حین مسیر توقف کند .
چگونه باید تعریف کرد که اگر قرمز بود برو و بر روی پشت خط عابر به ایست.
لطفا جواب بدید.

متشکرم

sadeghbarout
10-03-2011, 12:23
میتونی یه if بذاری که اگه top اون بیشتر از اون مقدار خطوط عابر بود و چراغ قرمز شد اونوقت برگرده یا ادامه بده

درضمن چرا فقط فایل اجرایی برنامه رو گذاشته بودی
اگه فایل کاملش رو بذاری شاید بهتر بتونیم کمک کنیم
ولی برنامه قشنگیه آفرین:31:

hasan0be
10-03-2011, 14:37
دوستان اگر میشود بیشتر راهنمایی کنید.

sadeghbarout
10-03-2011, 16:33
حسن آقا شما که هنوز کد های ماشین ها رو ننوشتی که بتونیم بهت بگیم چطور تغییرشون بدی
شما بسم الله بگو ما کمکت میکنیم

hasan0be
10-03-2011, 16:47
حتما الان ماشین ها آن را درست میکنم

hasan0be
10-03-2011, 16:56
سلام دوستان این هم کد ماشین ها.



Private Sub Timer5_Timer()
Shape13.Top = Shape13.Top - 30
If Shape13.Top < 100 Then Shape13.Top = Form1.Height
End Sub

Private Sub Timer6_Timer()
Shape15.Top = Shape15.Top + 30
If Shape15.Top > 7680 Then Shape15.Top = 120
End Sub

Private Sub Timer7_Timer()
Shape17.Left = Shape17.Left - 30
If Shape17.Left < 120 Then Shape17.Left = 12120
End Sub

Private Sub Timer8_Timer()
Shape19.Left = Shape19.Left + 30
If Shape19.Left > 12120 Then Shape19.Left = 0

End Sub

---------- Post added at 06:56 PM ---------- Previous post was at 06:56 PM ----------

سلام دوستان این هم کدا ماشین



Private Sub Timer5_Timer()
Shape13.Top = Shape13.Top - 30
If Shape13.Top < 100 Then Shape13.Top = Form1.Height
End Sub

Private Sub Timer6_Timer()
Shape15.Top = Shape15.Top + 30
If Shape15.Top > 7680 Then Shape15.Top = 120
End Sub

Private Sub Timer7_Timer()
Shape17.Left = Shape17.Left - 30
If Shape17.Left < 120 Then Shape17.Left = 12120
End Sub

Private Sub Timer8_Timer()
Shape19.Left = Shape19.Left + 30
If Shape19.Left > 12120 Then Shape19.Left = 0

End Sub

farshidshd
10-03-2011, 18:29
این شرط رو ببین ::


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


اگه چراغ زرد بود یا سبز و ماشین ها اون شرایط رو داشته باشن ، ماشینشماره یک 100 تا به عقب یر میگرده ( یعنی پشت خط )


فقط کافیه یه شرط بزاری و بگی اگه ماشین روی خط عابر پیاده هست و چراغ قرمز شد ، برگرده پشت خط توقف کنه تا چراغ سبز بشه

و همینطور برای جلوگیری از تصادف میتونی یه شرطی رو هم بزاری که مثلا اگه ماشین 1 به ماشین 2 نزدیک شد ، همونجا توقف کنه تا ماشین 2 عبور کنه .

hasan0be
10-03-2011, 23:01
خیلی خیلی ممنون

hasan0be
10-03-2011, 23:48
سلام خدمت دوستان عزیز و محرتم که من را در این مدت راهنمایی کردند . دوستان بالاخره این پروژه به پایان رسید اما من سعی میکنم این پروژه را طی چند هفته آینده این پروژه را پیشرفته تر کنم .

دانلود فایل exe :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

farshidshd
11-03-2011, 10:33
خیلی خوبه ،

سعی کن مدت زمانی رو که چراغ ها سبز و زرد و قرمز میشن رو هم نشون بدی و یا اینکه مدت زمان سبز و زرد و قرمز شدن رو به طور دستی وارد کنی
اگه هم بتونی تعداد ورود و خروج هر ماشین رو نمایش بدی هم که عالی میشه



موفق باشی

hasan0be
11-03-2011, 11:04
سلام من میخواستم بدونم چگونه میشه shape که با سمت بالا میرود در مسیر راه به سمت راست بپیچد .
حتما اون کار هایی هم که گفتید انجام میدهم
متشکرم از راهنماییتون

amirxbest
11-03-2011, 11:31
واسه اینکه shape به سمت راست بره(بپیچه) باید left شکل(shape) رو زیاد کنی.
اینجوری:

shape1.left=shape1.left+50

و در ضمن باید اون تایمری رو که top شکل(shape) رو کم و زیاد میکنه رو باید غیر فعال کنی.

موفق باشی:46:

hasan0be
11-03-2011, 13:07
خیلی ممنون