PDA

View Full Version : سوال: ماشین حسات با ارایه کنترلی



karim orooji
دوشنبه 17 اسفند 1388, 11:37 صبح
با سلام به دوستان عزیز
میخوام یه ماشین حساب شبیه ماشین حساب ویندوز درست کنم با ارایه کنترلی تا این مرحله رفتم اما نمیدونم چصوری میشه برای کلیدها کد نویسی کرد
ممنون میشم کمکم کنید

karim orooji
سه شنبه 18 اسفند 1388, 05:52 صبح
کسی نیست کمکم کنه؟

morrning
سه شنبه 18 اسفند 1388, 13:48 عصر
مطمئنی فایلت مشکل نداره؟ من دانلود کردم ولی باز نمیشه!

البته نمیدونم مشکل شما از کجاست ولی یه سر به help خود دات نت بزن معمولا تو این ضمینه ها مثال زیاد داره! البته اگه زبانت قویه؟
احتمالا کارت را بیفته!

karim orooji
پنج شنبه 20 اسفند 1388, 13:20 عصر
دوست عزیز زبانم تعریفی نداره
فایل هم مشکلی نداره

karim orooji
دوشنبه 24 اسفند 1388, 14:34 عصر
کسی نیست کمکم کنه

bad_boy_2007
دوشنبه 24 اسفند 1388, 20:49 عصر
میشه بگید چرا از تعدادی کلید که در Designer بیندازید ، استفاده نمیکنید ؟

برای طراحی ماشین حساب ابتدا باید عملیات مجاز را مشخص کنید :
مثلا ضرب ، جمع و ...

و بعد ماشین حالت ماشین حساب را طراحی کنید ، برای ماشین حسابی که من قبلا کد نوشته بودم دو حالت در نظر گرفته بودم 1 و 2 .

اگر در حالت 1 بود و یکی از کلیدهای عملیاتی زده شد (+ - * /) مقدار عددی نوشته شده در صفحه ماشین حساب را دز متغییر Num1 میریزد، عملوند را در OP میریزد و میرود به حالت 2 در غیر اینصورت در حالت 1 میماند . (0-9 و =)

اگر در حالت 2 بود و = زده شد مقدار روی صفحه نمایش را در Num2 میریزد و عملیات را با عملوند OP بر روی Num1 و 2 اجرا و نتیجه را در Num1 میریزد و به حالت 1 میرود .

اگر در حالت 2 بود و عملوند زده شد (+ , - , * , /) ، مقدار نوشته شده روی صفحه نمایش را در Num2 میریزد و عملیات را با عملوند OP بر روی Num1 و 2 اجرا و نتیجه را در Num1 میریزد و در همان حالت 2 میماند .

دقیقا مطمئن نیستم الگوریتم صحیح است یا خیر ولی نتیجه محاسبات زیر را باید بدست بیاورید :



1+2=3
+2=2
1+1+1+2=5
1+++2=3
1+/-+1=1
1+2=+3=6

karim orooji
دوشنبه 24 اسفند 1388, 21:57 عصر
همین طوری دوست عزیز
چون به صورت معمولی راحت میشه درست کرد ولی با ارایه کنترلی مشکلتره

MahmoudiNik
دوشنبه 24 اسفند 1388, 23:09 عصر
سلام
کدتون رو دیدم خوبه اما باید یه کارهای دیگه هم انجام بدید برای مشخصه text کلید ها متونید به این صورت عمل کنید:


Dim txt() As String = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "=", "+", "-", "*", "/"}

و اونوقت:


For i As Integer = 0 To btn.GetUpperBound(0)
btn(i) = New Button
With btn(i)
.Parent = Me
.Top = i * 30
.Left = (i Mod 3) * 30
.Top = (i \ 3) * 30
.Width = 30
'-----New Addin Code:
.Text = txt(i)
End With


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


Private Sub btn_click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

و بعد اونرو به رویداد click دکمه ها نصبت بدید (همونجا که تعریف کردینشون):


For i = 0 To 15
AddHandler btn(i).Click, AddressOf btn_click
Next

حالا میتونید برای متمایز کردن اونها و پاسخ مستقل از هر دکمه قطعه کد زیر که از Sender.text استفاده میکنه (از اسمش معلومه)بکار ببرید کد رو باید در همون زیر روالی که تعریف کردید بکار ببرید:

Select Case sender.text
Case "1" To "9"
'your code
Case "0"
'your code
Case "+"
'your code
Case "*"
'your code
Case "-"
'your code
Case "/"
'your code
Case "."
'your code
Case "="
'your code
End Select
موفق و پیروز باسید اگر بازهم مشکلی داشتید بگید تا بیشتر توضیح بدم.

karim orooji
دوشنبه 24 اسفند 1388, 23:32 عصر
ممنون دوست عزیز از توضیحت اما من کامل متوجه نشدم میشه در قالب یه نمونه واسم بزاری که ببینم دقیقا چیکار میکنه
البته بابت توضیحت تشکر کردم

رضا نانوا
سه شنبه 25 اسفند 1388, 01:47 صبح
من بدون آرایه نوشتم اشکالی داره؟

karim orooji
سه شنبه 25 اسفند 1388, 12:12 عصر
ممنون از زحمتی که کشیدی ولی من با ارایه کنترلی میخوام