Otvorite Visual Basic 6 i odaberite "Standard EXE" s novog izbornika projekta. Na ekranu ćete vidjeti prazan obrazac.
Preimenujte svoj projekt i obrazac klikom na "Projekt1" na desnoj strani zaslona, u popisu projekta, i unosom novog naziva u redak "Naziv" okvira Svojstva, koji bi se trebao pojaviti ispod popisa projekta do zadano. Pritisnite "Enter" za prihvaćanje novog naziva. Učinite isto za svoj obrazac (predloženi naziv obrasca je "CalculatorUI"), pazeći da unesete sličan naziv i u svojstvo "Caption", što će promijeniti tekst u gornjoj traci obrasca. Spremite projekt u novu mapu na vašem računalu.
Dodajte gumbe i okvir za tekst u obrazac. Prvo dodajte tekstualni okvir u kojem će se pojaviti brojevi uneseni u kalkulator, kao i rezultati izračuna. Učinite to tako da odaberete gumb TextBox na alatnoj traci na lijevoj strani zaslona, a zatim povučete mišem veličinu i mjesto koje želite za TextBox. Nakon što postavite TextBox, možete promijeniti veličinu i lokaciju tako da ga povučete na drugo mjesto obrasca ili povučete ručke (male kvadrate) duž granice TextBoxa. Obavezno promijenite sljedeće retke u prozoru Svojstva, s odabranim TextBoxom: "(Naziv)" = tbResult, "Poravnanje" = 1- Desno poravnavanje, "Format podataka" = (kliknite gumb "..." za odabir) Broj, "Zaključano" = Točno i "Tekst" = 0.
Odaberite ikonu CommandButton na alatnoj traci i stvorite prvi gumb na isti način na koji ste kreirali TextBox za dodavanje gumba. Za referencu, koristite Windows kalkulator u standardnom prikazu (Programi > Pribor > Kalkulator) kao osnovu za izgled vašeg kalkulatora, izostavljajući tipke "MC", "MR", "MS" i "M+". Na svakom gumbu promijenite sljedeća svojstva (koristeći gumb "+" kao primjer): "(Naziv)" = btnPlus, "Naslov" = +. Učinite isto za ostale gumbe kalkulatora, a zatim spremite svoj rad. Vaš bi obrazac sada trebao nalikovati ovdje prikazanom primjeru.
Dodajte kod. Imajte na umu da će vam trebati ako vaši gumbi i tekstni okvir nemaju isti naziv kao što očekuje ovdje naveden kod da promijenite nazive kako bi odgovarali vašim gumbima i tekstualnom okviru ili promijenite svoje gumbe i tekstni okvir da odgovaraju ovome kodirati. Prvo moramo stvoriti nekoliko varijabli za obradu unosa kalkulatora:
Dim sLeft As String, Sright As String, Operator As String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean
Svaki izračun sastoji se od četiri dijela: broja lijevo od operatora (sLeft, iLeft), operatora (sOperator), broja desno od operatora (sRight, iRight) i rezultata (iResult). Kako bismo pratili unosi li korisnik lijevi ili desni broj, moramo kreirati logičku varijablu bLeft. Ako je bLeft istina, unosi se lijeva strana izračuna; ako je bLeft netočno, unosi se desna strana.
Inicijalizirajte varijablu bLeft. To radimo stvaranjem potprograma Form_Load, koji možete upisati kao što je ovdje navedeno ili automatski kreirati dvostrukim klikom na bilo koji dio obrasca koji nije pokriven gumbom ili okvirom za tekst. Unutar funkcije moramo bLeft postaviti na True, jer će prvi uneseni broj biti lijevi dio:
Napravite potprogram koji će upravljati klikom na bilo koji od brojčanih gumba. Ovo stvaramo kao potprogram jer koristimo identičan kod za svaki gumb, a korištenje potprograma znači da ne moramo ponavljati isti kod deset puta. Unesite sljedeće ispod retka End Sub podrutine Form_Load:
Kao što možete vidjeti, ova funkcija uzima parametar niza, sNumber, koji će sadržavati broj na koji je korisnik kliknuo. Ako je bLeft istinit, ovaj se broj dodaje nizu koji predstavlja broj koji se unosi, sLeft, a tekstualni okvir, tbResult, ažurira se kako bi prikazao novi broj. Ako je bLeft netočno, ista se operacija izvodi koristeći sRight umjesto toga.
Konačno, stvorite funkciju događaja Click za svaki broj koji poziva naš AddNumber potprogram. To možete jednostavno učiniti dvostrukim klikom na svaki brojčani gumb, što će za vas stvoriti strukturu potprograma. Zatim dodajte poziv u AddNumber, zamjenjujući broj u navodnicima s brojem povezanim s gumbom. Za nulti gumb vaš će kod izgledati ovako:
Isto tako, za jedan gumb vaš će kod izgledati ovako:
Rukovati operatorima: plus, minus, puta i dijeljenje. To ćemo učiniti kao zadnji korak, kreirajući potprogram koji se poziva u Click događajima za gumbe operatora. Potprogram će izgledati ovako:
Ako je bLeft istina, što znači da je korisnik upravo ušao u lijevi dio izračuna, ovaj potprogram postavlja sOperator varijabla koju smo kreirali u koraku 5 da bude jednaka unesenom operatoru, koji se prosljeđuje AddOperatoru kao niz sNewOperator. Drugi korak je postavljanje bLeft na False, jer unos operatora znači da je korisnik završio s unosom lijeve strane jednadžbe. Kako bismo rukovali unosima koji nizaju više operatora zajedno, kao što je 9 * 3 * 2 * 6, moramo također provjerite je li bLeft lažan, što znači da je korisnik unio operator gdje smo očekivali jednaki. Prvo pozivamo događaj Click za gumb jednakosti (opisan u sljedećem koraku), koji vrši izračun i postavlja tbResult na rezultat onoga što je već uneseno. Zatim brišemo sRight tako da korisnik može unijeti sljedeći broj i postavljamo bLeft na False kako bi program znao da sljedeće unosimo desnu stranu izračuna.
Konačno, dodajte poziv AddOperator u Click događaj svakog operatorskog gumba, koristeći istu metodu koju smo koristili u koraku 7 za stvaranje događaja Click za brojčane gumbe. Vaš kod za gumb plus će izgledati ovako:
Stvorite događaj Click za gumb jednakosti, što je najsloženiji kod u ovom programu. Izradite strukturu potprograma kao što ste učinili za druge gumbe, dvostrukim klikom na gumb jednakosti na svom obrascu. Vaš potprogram će izgledati ovako kada unesete kod:
Prva tri retka koda provjeravaju jesu li obje strane izračuna unesene zajedno s operatorom. Ako se unese samo lijeva strana i operator, vrijednost lijeve strane se kopira u desnu, tako da možemo oponašati standardno ponašanje kalkulatora za rukovanje unosom kao što je 9 * =, koji sam po sebi množi 9 da bi se dobio rezultat 81. Ostatak koda će se pokrenuti samo ako se unese lijevo, desno i operator, a počinje kopiranjem nizove brojeva u naše iLeft i iRight dvostruko tipizirane varijable, koje mogu učiniti stvarne izračuni. Naredba Select Case omogućuje nam pokretanje različitog koda ovisno o tome koji je operator unesen, te obavlja stvarni izračun, stavljajući rezultat u iResult. Konačno, ažuriramo tekstni okvir s rezultatom, kopiramo rezultat u sLeft, resetiramo sRight i postavljamo bLeft = True. Ovi zadnji retki nam omogućuju da uzmemo rezultat izračuna i upotrijebimo ga za drugi izračun.
Rukovati posljednja tri gumba za rad: sqrt, % i 1/x. Za događaj Click gumba kvadratnog korijena vaš će kod izgledati ovako:
Prvih 11 redaka koda osigurava da ako nemamo unesenu vrijednost ni za jednu stranu jednadžbe, zamjenjujemo nulu umjesto pokušaja kopiranja praznog niza u iLeft ili iRight, što će generirati pogreška. Srednji redovi obavljaju funkciju kvadratnog korijena na trenutnom dijelu izračuna, bilo lijevo ili desno. Konačno, poništavamo provjere koje smo radili na početku tako da se nula kopira kao prazan niz natrag u sLeft i sRight.
Za gumb za postotak kod je sličan, s jednom iznimkom: operacija postotka može se izvesti samo ako su unesene i lijeva i desna strana.
Na kraju, 1/x, ili razlomak, Click događaj, koji je vrlo sličan kodu iznad:
Dodajte kod za rukovanje gumbima C i CE. C briše sav unos u kalkulator, dok CE briše samo broj koji se trenutno unosi.
Pokrenite svoj program kalkulatora i napravite bilo koji izračun koji želite. Ovaj kalkulator se može lako proširiti kako bi se mogao nositi s više operacija, složenijim izračunima ili čak biti znanstveni kalkulator uz malo dodatnog rada.
Savjet
Ako naiđete na pogreške, provjerite svoj kod red po redak, usredotočujući se na retke koje je VB nazvao da sadrže pogreške i usporedite ga s gornjim kodom. Kôd sadržan u ovom članku u potpunosti je testiran da ne sadrži greške, tako da će njegovo vjerno kopiranje rezultirati funkcionalnim programom. Ako koristite prethodnu verziju Visual Basica, možete naići na neke probleme zbog kojih su uvedene promjene jezika u različitim verzijama. Prethodne verzije VB-a, na primjer, koristile su Math. Sqrt() umjesto Math. Sqr() za izvođenje operacije kvadratnog korijena. Provjerite Reference za svoju specifičnu verziju da vidite jesu li potrebne bilo kakve promjene.