Jump to content

Урок: Направата на елементарен калкулатор с Visual Basic


Препоръчан пост

Първо да разкажа малко за Visual Basic. Винаги ми е било интересно почти всичко свързано с компютрите, и най-вече програмирането, нови идеи и реализирането йм. До преди 4 5 месеца разбрах за Visual Basic от нашия приятел Crio, който направи програмката за сваляне на клипчета(Spider Video Downloader) и ми стана много интересно как се прави такова нещо и започнах да чета различни уроци за програмата. След това в училище се оказа, че ще учим точно Visual Basic. И от там почнах по-сериозно да си чета разни уроци и да се уча. Не съм изобщо напреднал, но поне се опитвам. За това исках да напиша един малък урок, в който да опиша подробно как се прави всичко и да може всички да го схванат и ако ви стане интересно да продължите да си "играете" с Visual Basic.

Сигурно в Интернет има много уроци за направата на елементарни и по-сложни калкулатори, но аз реших да направя собствен без да копирам от друго място. Е естествено направих възможно най-елементарния, за да може всеки начинаещ да я направи.

Еми да започваме.

След отварянето на програмата, се отваря този прозорец:

http://pics.softvisia.com/design/pics/5649/1.png

Избираме бутона "Open" за да продължим.

 

След като се отвори програмата:

http://pics.softvisia.com/design/pics/5649/5.png

ще разясним малко елементите за да се разясни картинката.

 

Това ни е полето с инструментите.

http://pics.softvisia.com/design/pics/5649/2.png

 

Това пък е полето с атрибутите.

http://pics.softvisia.com/design/pics/5649/3.png

 

А това е празната ни форма, върху която ще работим.

http://pics.softvisia.com/design/pics/5649/4.png

 

Фона на формата не ни харесва, затова ще го сменим на черен. Това става като се натисне един път върху цялата форма(след отварянето на програмата няма нужда да натискаме, тя си е маркирана) и избираме от полето с атрибутите BackColor - черно. http://pics.softvisia.com/design/pics/5649/6.png

 

Следва изчертаването на бутоните и полетата.

Първо трябва да направим Текстови полета в които ще пишем. Това става като от полето с инструменти изберем TextBox. http://pics.softvisia.com/design/pics/5649/8.png

Откарваме мишката върху празната форма и изчертаваме три малки полета.

Две ще бъдат за въвеждане на числа, а третото за извеждане на резултата.

http://pics.softvisia.com/design/pics/5649/9.png

 

Обаче виждаме, че има някакви текстове в тези полета. Разбира се трябва да ги махнем.

Това става като цъкнем на даденото поле и изберем от полето с атрибути и намираме атрибута Text и го изтриваме. http://pics.softvisia.com/design/pics/5649/10.png. След това нека да направим текста в полетата малко по-голям. Това става от полето с атрибути и Font http://pics.softvisia.com/design/pics/5649/18.png. Отваряме го и там правим следното: Size- 14

Същото правим и за другите две полета.

 

Сега да поставим и знака между полетата, в които ще пишем числата и знака равно "=".

Избираме от полето с инструменти буквичката "А" (Label) - http://pics.softvisia.com/design/pics/5649/11.png. Изчертаваме две полета. Едното между първите две текстови полета, където ще е знака за двете числа, а другото ще е просто знака равно "=".

 

http://pics.softvisia.com/design/pics/5649/12.png

Това са новите две полета. На Label2(или там където трябва да е знака "=") ще натиснем веднъж да го маркираме. От полето с атрибути ще направим следното:

http://pics.softvisia.com/design/pics/5649/13.png

Alignment - 2 - Center - с това пращаме текста в полето да бъде в средата.

BackStyle - 0 - Transparent - Правим фона на полето да бъде прозрачен, следователно ще стане черно освен текста в него.

Caption - = - Така задаваме на полето да се показва знака "=".

Font - MS Sans Serif Маркираме този атрибут, отваряме опциите му и избираме на Size- 14. Т.е. задаваме на текста("=") да бъде с големина 14.

ForeColor - Слагаме син цвят(примерно), така задаваме на текста("=") какъв цвят да бъде. Не избираме черен за да не се слее с фона.

 

Сега се връщаме на полето което начертахме между първите две текстови полета, в което ще е знака.

Няма да давам снимки за него, защото е като предишното. Името му би трябвало да бъде (Name) - Label1 . За да работи програмата без проблеми, трябва да се казва по този начин.

Правим ми същите настройки, само че на Caption изтриваме текста и го оставяме празно. После ще разберете защо.

До тук би трябвало да изглежда по този начин:

http://pics.softvisia.com/design/pics/5649/14.png

 

Сега идва ред на изчертаването на бутоните, или знаците с които ще работим. Ще направим само най-често използваните, а именно - '+' - събиране, '-' - изваждане, '*' - умножение, '/' - деление. И един допълнителен бутон "Изчисти", с който ще изчистваме зададените стойности.

 

Ето и как се поставят бутоните. Ще изчертаем пет бутона. Избираме от полето с инструменти CommandButton http://pics.softvisia.com/design/pics/5649/7.png и изчертаваме пета бутона.

Аз направо ги преименувах и стана нещо такова:

http://pics.softvisia.com/design/pics/5649/15.png

Сега да обясним как ги преименувахме.

Ще обясня само за бутона '+', защото за другите е същото само че се сменя знака.

http://pics.softvisia.com/design/pics/5649/16.png

(Name) - Sybirane

Тук е времето да обясня разликата между атрибута (Name) и Caption(или Text). Caption(или Text) се използва само за да покаже дадения текст върху програмата, но ако ни трябва с програмен код да извикаме този елемент, ще използваме атрибута (Name).

Caption - + - Тук поставяме знака '+' за да може върху бутона да се покаже.

Font - Тъй като полето е малко, а знака е малък, избираме отново Size- 14.

 

Същото правим и за другите бутони. Като за втория бутон слагаме (Name) - Izvajdane и Caption - -. Третия (Name) - Umnojenie и Caption - *. Четвъртия (Name) - Delenie и Caption - /. И петия, който ще е за изчистване на полетата, (Name) - Izchisti и Caption - Изчисти.

Точно в този урок, имената на бутони няма да са ни нужни, но е хубаво да се знае, че са от огромно значение. А за имената нарочно ги написах на латиница, тъй като ако са на кирилица може да даде проблем. Това естествено не се отнася за атрибута Caption, той просто извежда текста и може да бъде на кирилица :)

 

И най-накрая дойде време и до истинското програмиране. Сега ще трябва да напишем за всеки бутон какво действие да върши.

Започваме с бутона 'Sybirane' (+). Натискаме върху него десен бутон -> View Code (или за по-лесно просто натискаме 2 пъти върху бутона и се отваря полето за въвеждане на код).

Полето ще изглежда по този начин, без Dim a As Double, b As Double, които съм въдел и сега ще обясня защо.

http://pics.softvisia.com/design/pics/5649/17.png

Dim - Означава че декларираме нещо.

а - това е декларираната променлива. Може да бъде друго, но НИКОГА не може да започва с число. Пример: Name_1 - правилно, 1Name - грешно !!!

Може да започва само с букви.

As - Като

Double - Позволява числото да бъде с десетична запетая. Double се използва само за числа.

Dim a As Double - Декларираме променливата а от тип Double

При начинаещи програмисти може да се използва типа Variant. Той автоматично определя от какъв тип е дадената променлива. Дали е текст или число. Това естествено малко забавя програмата. Ние знаем с какво ще работим и декларирахме с точните типове.

Сега следва да кажем какво да прави бутона 'Sybirane' (+) при натискането му. Отваряме полето за писане на код и въвеждаме следното:

Private Sub Sybirane_Click()

a = Text1.Text

b = Text2.Text

Text3.Text = a + b

Label1.Caption = "+"

End Sub

Сега да обясним какво му казваме да прави при натискане.

a = Text1.Text - Присвояваме на променливата а текста от първото поле.

b = Text2.Text - Присвояваме на променливата b текста от второто поле.

Text3.Text = a + b - задаваме текста на третото поле да бъде a + b т.е. сбора от първите две полета.

Label1.Caption = "+" - И както казах по-рано, това поле което е между първите две текстови полета, което оставихме празно сега е времето да ги използваме. Задаваме на бутона след натискането му да слага знака "+" като текст в това поле. Това не помага за действието на програмата, а просто за по-голяма прегледност.

Надявам се да сте разбрали какво прави натискането на бутона.

Сега за другите бутони. Но няма да обяснявам, защото е идентично, просто се променят знаците.

'Izvajdane' (-)

Private Sub Izvajdane_Click()

a = Text1.Text

b = Text2.Text

Text3.Text = a - b

Label1.Caption = "-"

End Sub

'Umnojenie' (*)

Private Sub Umnojenie_Click()

a = Text1.Text

b = Text2.Text

Text3.Text = a * b

Label1.Caption = "*"

End Sub

'Delenie' (*)

Private Sub Delenie_Click()

a = Text1.Text

b = Text2.Text

Text3.Text = a / b

Label1.Caption = "/"

End Sub

Остана и бутона, който ще изчиства всички полета.

'Izchisti' (Изчисти)

Private Sub Izchisti_Click()

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Label1.Caption = ""

End Sub

Text1.Text = "" - Задаваме да се изчисти първото текстово поле. Същото се отнася и за Text2.Text = "" и Text3.Text = "".

Label1.Caption = "" - С това задаваме на полето между двете текстови да се изчисти.

 

Остана само да видим как работи програмата. Това става с http://pics.softvisia.com/design/pics/5649/19.png - синия бутон. Програмата ще пусне проекта и ще може да се тества как работи и ако има грешки да се оправят докато не сте го запазили като *.exe файл. Ако всичко е наред натискате http://pics.softvisia.com/design/pics/5649/19.png квадратното бутонче, което ще е активно след като сте натиснали стрелкичката и чак след това можем да запишем файла. Избираме от програмата главното меню File -> Make Project1.exe - и така избираме къде да запазим това, което правихме до момента и как да се казва то.

 

Ето готовия калкулатор, който получих аз - Calculator.rar

Ето и готовия код за програмата, в случай че объркате нещо - Calculator___SoftVisia.com.rar

 

Надявам се да съм описал достатъчно подробно за да може всеки да разбере кое какво и как се прави. Коментари, проблеми и въпроси се приемат всякакви ;)

 

Всички права върху текущата тема и картинките включени в нея са собственост на автора им и нямат право да бъдат възпроизвеждани под каквато и да е форма без изричното съгласие на автора.

Автор: Велислав Сендрев (VIS @ SoftVisia.com)

Link to comment
Сподели другаде

  • 1 year later...

Благодаря получи се добре но имам едн проблем.Когато дам да ми я изпълни всичко работи но когато дам квадратче File -> Make Project1.exe ми казва :

Compile Error:

Only comments may appear after End Sub,End Funktion, or End Property.

Благодаря предварително.

Link to comment
Сподели другаде

Здравей и добре дошъл. А да те питам след End Sub да си слагал някакви други знаци ? Грешката показва, че има нещо след него, което е нередно. Аз съм слагал тези --------------------------------------- черти за да отделя отделните кодове. Тях не бива да ги поставяш, ако си ги :)

Ако не си ги, и това не помага можеш да копираш тук кода да видим какво си направил ;)

Link to comment
Сподели другаде

  • 2 weeks later...

А как трябва да стане ако искам с бутон "Изчисли" да извършва оказаното действие.Аз се сетих само така :

слагаме 5 бутона "Изчисли" и им задаваме единият да събере числата вторият да ги извади третият да ги умножи и четвъртият да ги раздели.След това на копчето "+" казваме когато е натиснато само първият бутон "Изчисли" да се вижда , за "-" само вторият бутон "Изчисли" да се вижда , за "*" само третият и за "/" само четвъртият. Надявам се да има по лесен начин.

Благодаря.

Link to comment
Сподели другаде

А как трябва да стане ако искам с бутон "Изчисли" да извършва оказаното действие.Аз се сетих само така :

слагаме 5 бутона "Изчисли" и им задаваме единият да събере числата вторият да ги извади третият да ги умножи и четвъртият да ги раздели.След това на копчето "+" казваме когато е натиснато само първият бутон "Изчисли" да се вижда , за "-" само вторият бутон "Изчисли" да се вижда , за "*" само третият и за "/" само четвъртият. Надявам се да има по лесен начин.

Благодаря.

Честно казано почти нищо не разбрах. Сега ще ти кажа как става с бутон = или както казваш "изчисли". В първото поле пишеш цифрата и натискаш бутон + примерно. В него кода трябва да изглежда така: f = 1, като това f(може и друга променлива да ползваш) се използва за да се види кой бутон/кое действие ще се извършва. Така и за другите -,/,*. Като за другите f=2/3/4 и т.н. След това се стига да изчисляването на резултата. В бутона "изчисли" слагаш един If, който да проверява дали f e 1, 2, 3 или 4. Ако е 1, тогава събира първото и второто поле и извежда резултата в третото и т.н. Малко теоретично обяснено, но ако не го схващаш кажи ще ти дам пример. Но първо опитай сам да го направиш ;)

Link to comment
Сподели другаде

Кодът го направих така :

Private Sub Delenie_Click()
f = 4
End Sub
----------------------
Private Sub Izchisli_Click()
a = Text1.Text
b = Text2.Text 
If f = 1 Then
Text3.Text = a + b
ElseIf f = 2 Then
Text3.Text = a - b
ElseIf f = 3 Then
Text3.Text = a * b
ElseIf f = 4 Then
Text3.Text = a / b
End If
End Sub
----------------------
Private Sub Izvajdane_Click()
f = 1
End Sub
----------------------
Private Sub Sybirane_Click()
f = 2
End Sub
----------------------
Private Sub Umnojenie_Click()
f = 3
End Sub

 

но нестава :(

Link to comment
Сподели другаде

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...