PDA

View Full Version : سوال: مشکل محاسبه تعداد اشیاء



AliRezaBeytari
یک شنبه 19 خرداد 1392, 11:11 صبح
سلام دوستان.
من یه مشکلی دارم.

در برنامه ی من 28 picturebox وجود دارد.
از این 28 picturebox ؛ 14 تا از آنها عکس سبز و 14 تا دیگر قرمز هستند.

حالا می خواهم هنگامی که بر روی یک Button کلیک می کنم ، ( اگر تعداد picturebox های سبز بیشتر بود در یک لیبل ، علامت بده و اگر تعداد picturebox های قرمز بیشتر بود ، علامت دیگری بدهد).

برنامه ی من تقریبا مانند یک آزمون است.
اگر تعداد سوالات صحیح بیشتر بود ؛ یک Message به ما می دهد ولی اگر تعداد سولات غلط بیشتر بود ؛ از برنامه خارج میشود.

hosein320
یک شنبه 19 خرداد 1392, 11:44 صبح
سلام
Dim R, G As Integer
For Each Pic As Control In Me.Controls
If Pic.GetType = GetType(PictureBox) Then
If Pic.BackColor = Color.Red Then R += 1
If Pic.BackColor = Color.Green Then G += 1
End If
Next

tstsst
یک شنبه 19 خرداد 1392, 11:57 صبح
سلام


سلام
Dim R, G As Integer
For Each Pic As PictureBox In Me.Controls
If Pic.BackColor = Color.Red Then R += 1
If Pic.BackColor = Color.Green Then G += 1
Next
اگر در فرم فقط عکس وجود داشته باشه که غیر ممکنه چون این کد تو کلید نوشته میشه !

For Each itm In Me.Controls
If itm.GetType() Is GetType(PictureBox) Then
Dim pic As PictureBox = CType(itm, PictureBox)
If pic.BackColor = Color.Green Then
'اگر سبز بود
ElseIf pic.BackColor = Color.Red Then
'اگر قرمز بود
End If
End If
Next


که :
For Each itm In Me.Controls
برای تمام کنترول های تو صفحه (picturebox ,textbox ,...)
If itm.GetType() Is GetType(PictureBox) Then
چک کردن عکس بودن.
Dim pic As PictureBox = CType(itm, PictureBox)
یا
Dim pic As PictureBox = itm
تبدیل itm به عکس.

AliRezaBeytari
یک شنبه 19 خرداد 1392, 13:00 عصر
منظور من از عکس سبز و قرمز این بود :

سبز = 105303

قرمز = 105304


حالا باید چیکار کنم.



اگر میشه سورس بگذارید.
ممنونم.

tstsst
یک شنبه 19 خرداد 1392, 13:26 عصر
کافی شرط رو تغییر بدی .
If pic.Image Is My.Resources.image1 Then
'اگر سبز بود
ElseIf pic.Image Is My.Resources.image2 Then
'اگر قرمز بود
End If

یا عکس ها رو با تگ زخیره کنی و اونو چک کنی.

AliRezaBeytari
یک شنبه 19 خرداد 1392, 13:43 عصر
من قبلا یه برنامه ای نوشته بودم در رابطه با عربی سال سوم راهنمایی :
http://www.irfreeup.com/uploads/136792977114432.rar

حالا من می خواهم برنامه این طور باشد که اگر تعداد صحیح ها بیشتر بود یک فرم جدید باز شود ولی اگر تعداد غلط ها بیشتر بود از برنامه بیرون رود.

لطفا برنامه را دانلود کنید تا متوجه شوید

tstsst
یک شنبه 19 خرداد 1392, 16:49 عصر
1) شما چرا از 2 تا پیکچرباکس استفاده کدی می تونستی با یکی حلش کنی.
2) اولش می گفتی که با Visible و 2 تا PictureBox می خوای کار کنی :D
کافی بود فقط کد های که دادم رو تغییر بدی
کافیه جاهای که علامت زدم رو بشمری :
For Each itm In Me.Controls
If itm.GetType() Is GetType(PictureBox) Then
Dim pic As PictureBox = itm
If pic.Name(0) = "f" And pic.Visible = True Then
'شمردن عکس های غلط ها (r += 1)
ElseIf pic.Name(0) = "t" And pic.Visible = True Then
'شمردن عکس های درست ها (g += 1)
End If
End If
Next

AliRezaBeytari
یک شنبه 19 خرداد 1392, 17:24 عصر
شاید خنده دار باشه ولی من با حلقه ی For آشنا نیستم.
اگه میشه یه سورس بزارید.

tstsst
یک شنبه 19 خرداد 1392, 17:49 عصر
خنده دار نیست منم یک زمانی بلد نبودم ( بودم ؟ )
دقیقا همین کد رو تو کلیدی که می خوای چک کنه (یا هرجا که قراره چک شه) کپی کن بدون تغییر و فقط جاهای که گفتم رو چیزی که می خوای برای شمارش بزار.

متعسفانه vs من به مشکل بر خورده . دقیقا کد رو کپی کن.

AliRezaBeytari
یک شنبه 19 خرداد 1392, 17:56 عصر
من نم فهمم.
دقیقا باید جای عبارت 'شمردن عکس های غلط ها (r += 1)، چه بنویسم؟؟

tstsst
یک شنبه 19 خرداد 1392, 18:48 عصر
ببین شش تا عکس گزاشتم سه تاش کار غلط هات و سه تاش صحیح هاته (به اسما نگاه کن)
2 تا متغیر گرفتم برای شمردن بعد اون دو تارو با هم مقایسه می کنم.
یعنی red و green که اولی برای غلط ها و دومی برای درست ها.
متعسفانه (همون طور که گفتم) کد شمارو نمی تونم تغیر بدم برنامه رو دقیق بنویسم.

105316

برای خروج از برنامه :
Application.Exit()

و برای باز کردن پنجره های دیگه :
name.show()
مثلا برنامه خودت
about.show()