Åpne Visual Basic 6, og velg "Standard EXE" fra den nye prosjektmenyen. Du vil se et tomt skjema vises på skjermen.
Gi nytt navn til prosjektet og skjemaet ditt ved å klikke på "Prosjekt1" på høyre side av skjermen, i prosjektoversikten, og skriv inn et nytt navn i "Navn"-linjen i Egenskaper-boksen, som skal vises under prosjektoppføringen av misligholde. Trykk "Enter" for å godta det nye navnet. Gjør det samme for skjemaet ditt (et foreslått skjemanavn er "CalculatorUI"), og sørg for å skrive inn et lignende navn i "Caption"-egenskapen også, som vil endre teksten i den øverste linjen i skjemaet. Lagre prosjektet i en ny mappe på datamaskinen.
Legg til knapper og en tekstboks i skjemaet. Legg først til en tekstboks, som vil være der tallene som er lagt inn i kalkulatoren vises, samt resultatene av beregningene. Gjør dette ved å velge TextBox-knappen fra verktøylinjen på venstre side av skjermen, og deretter dra med musen størrelsen og plasseringen du ønsker for TextBox. Når du har plassert tekstboksen, kan du endre størrelsen og plasseringen ved å dra den til en annen plassering av skjemaet eller ved å dra håndtakene (de små firkantene) langs kanten av tekstboksen. Pass på å endre følgende linjer i Egenskaper-vinduet, med tekstboksen valgt: "(Name)" = tbResult, "Alignment" = 1- Høyrejuster, "Data Format" = (klikk på "..."-knappen for å velge) Tall, "Locked" = True, og "Tekst" = 0.
Velg Command Button-ikonet på verktøylinjen og lag den første knappen på samme måte som du opprettet tekstboksen for å legge til knapper. For referanse, bruk Windows-kalkulatoren i standardvisning (Programmer > Tilbehør > Kalkulator) som grunnlag for kalkulatorens layout, og unnlate "MC", "MR", "MS" og "M+"-knappene. På hver knapp endrer du følgende egenskaper (ved å bruke "+"-knappen som eksempel): "(Name)" = btnPlus, "Caption" = +. Gjør det samme for resten av kalkulatorknappene, og lagre deretter arbeidet ditt. Skjemaet ditt skal nå ligne eksemplet vist her.
Legg til koden. Merk at hvis knappene og tekstboksen ikke heter det samme som koden som er oppført her forventer, trenger du for å endre navnene for å matche knappene og tekstboksen, eller endre knappene og tekstboksen for å matche dette kode. Først må vi lage noen få variabler for å behandle kalkulatorinndata:
Dim sLeft As String, sRight As String, sOperator As String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean
Hver beregning består av fire deler: et tall til venstre for operatoren (sLeft, iLeft), en operator (sOperator), et tall til høyre for operatoren (sRight, iRight), og et resultat (iResult). For å spore om brukeren skriver inn venstre eller høyre tall, må vi lage en boolsk variabel, bLeft. Hvis bLeft er sant, legges venstre side av beregningen inn; hvis bLeft er usann, legges høyre side inn.
Initialiser bLeft-variabelen. Vi gjør det ved å lage en Form_Load-underrutine, som du enten kan skrive inn som oppført her eller automatisk opprette ved å dobbeltklikke på en del av skjemaet som ikke dekkes av en knapp eller tekstboks. Inne i funksjonen må vi sette bLeft til True, fordi det første tallet som legges inn vil være den venstre delen:
Lag en subrutine som vil håndtere klikking av en av tallknappene. Vi lager dette som en subrutine fordi vi bruker identisk kode for hver knapp, og å bruke en subrutine betyr at vi slipper å gjenta den samme koden ti ganger. Skriv inn følgende under Form_Load-subrutinens sluttunderlinje:
Som du kan se, tar denne funksjonen en strengparameter, sNumber, som vil inneholde nummeret brukeren har klikket på. Hvis bLeft er sant, legges dette nummeret til strengen som representerer tallet som legges inn, sLeft, og tekstboksen, tbResult, oppdateres for å vise det nye tallet. Hvis bLeft er falsk, utføres den samme operasjonen med sRight i stedet.
Til slutt oppretter du en klikkhendelsesfunksjon for hvert nummer som kaller AddNumber-subrutinen vår. Du kan enkelt gjøre dette ved å dobbeltklikke på hver tallknapp, som vil lage subrutinestrukturen for deg. Deretter legger du anropet til AddNumber, og erstatter nummeret i anførselstegn med nummeret som er knyttet til knappen. For null-knappen vil koden din se slik ut:
På samme måte, for den ene knappen, vil koden din se slik ut:
Håndter operatørene: pluss, minus, tider og divider. Vi vil gjøre dette som siste trinn, og lage en subrutine som kalles opp i Klikk-hendelser for operatørknappene. Subrutinen vil se slik ut:
Hvis bLeft er sant, noe som betyr at brukeren nettopp har skrevet inn den venstre delen av beregningen, setter denne subrutinen sOperator-variabelen vi opprettet i trinn 5 for å være lik den angitte operatøren, som sendes til AddOperator som strengen sNewOperator. Det andre trinnet er å sette bLeft til False, fordi inntastingen av en operator betyr at brukeren er ferdig med å gå inn på venstre side av ligningen. For å håndtere oppføringer som setter flere operatorer sammen, for eksempel 9 * 3 * 2 * 6, må vi sjekk også om bLeft er falsk, noe som betyr at brukeren har skrevet inn en operatør der vi ventet en er lik. Først kaller vi Klikk-hendelsen for lik-knappen (beskrevet i neste trinn), som gjør beregningen og setter tbResult til resultatet av det som allerede er lagt inn. Deretter sletter vi sHøyre slik at brukeren kan legge inn neste tall, og setter bLeft til False slik at programmet vet at vi går inn på høyre side av beregningen neste.
Til slutt, legg til et AddOperator-kall til Klikk-hendelsen for hver operatørknapp, ved å bruke samme metode som vi brukte i trinn 7 for å lage klikkhendelser for tallknappene. Koden din for plussknappen vil se slik ut:
Opprett Klikk-hendelsen for lik-knappen, som er den mest komplekse koden i dette programmet. Lag subrutinestrukturen som du gjorde for de andre knappene, ved å dobbeltklikke på lik-knappen på skjemaet. Subrutinen din vil se slik ut når du har tastet inn koden:
De tre første kodelinjene sjekker om begge sider av beregningen er lagt inn sammen med en operatør. Hvis bare venstre side og en operator legges inn, kopieres verdien til venstre side til høyre, slik at vi kan etterligne standard kalkulatoroppførsel for å håndtere en oppføring som 9 * =, som multipliserer 9 med seg selv for å få et resultat på 81. Resten av koden kjøres bare hvis venstre, høyre og operatør er angitt, og starter med å kopiere strengene med tall i våre iLeft og iRight dobbeltskrevne variabler, som kan gjøre det faktiske beregninger. Select Case-setningen lar oss kjøre forskjellig kode avhengig av hvilken operatør som ble angitt, og utfører selve beregningen, og plasserer resultatet i iResult. Til slutt oppdaterer vi tekstboksen med resultatet, kopierer resultatet til sLeft, tilbakestiller sRight og setter bLeft = True. Disse siste linjene lar oss ta resultatet av beregningen og bruke det til å utføre en ny beregning.
Håndter de tre siste operasjonsknappene: sqrt, % og 1/x. For klikkhendelsen til kvadratrotknappen vil koden din se slik ut:
De første 11 kodelinjene sørger for at hvis vi ikke har en verdi angitt for hver side av ligningen, vi erstatter null i stedet for å prøve å kopiere en tom streng til iLeft eller iRight, som vil generere en feil. De midterste linjene utfører kvadratrotfunksjonen på gjeldende del av beregningen, enten til venstre eller høyre. Til slutt reverserer vi kontrollene vi gjorde i begynnelsen slik at en null kopieres som en tom streng tilbake til sLeft og sRight.
For prosentknappen er koden lik, med ett unntak: prosentoperasjonen kan bare utføres hvis både venstre og høyre side er lagt inn.
Til slutt, 1/x, eller brøken, klikk-hendelsen, som er veldig lik koden ovenfor:
Legg til kode for å håndtere C- og CE-knappene. C sletter alle inndata til kalkulatoren, mens CE sletter bare nummeret som legges inn.
Kjør kalkulatorprogrammet ditt og gjør en utregning du ønsker. Denne kalkulatoren kan enkelt utvides til å håndtere flere operasjoner, mer komplekse beregninger eller til og med være en vitenskapelig kalkulator med litt ekstra arbeid.
Tips
Hvis du støter på feil, sjekk koden linje for linje, med fokus på linjene som VB har kalt ut som inneholder feil, og sammenlign den med koden ovenfor. Koden i denne artikkelen er fullstendig testet for å være feilfri, så å kopiere den trofast vil resultere i et funksjonelt program. Hvis du bruker en tidligere versjon av Visual Basic, kan du støte på noen problemer der endringer er gjort i språket på tvers av versjoner. Tidligere versjoner av VB brukte for eksempel Math. Sqrt() i stedet for Math. Sqr() for å utføre en kvadratrotoperasjon. Sjekk referansene for din spesifikke versjon for å se om det er nødvendig med endringer.