[ unisoft @ 28.12.2008. 15:15 ] @
Ovako ne pravim ja obican digitron.Mislim na ono da na formi postoje 4 text box-a.U prva dva se upisuju brojevi,u treci operant i da se u cetvrtom prikaze rezultat.

Ne ja pravim digitron kao ovaj u WINDOWS.Dobro mom treba jos mnogo doraditi ali tek sam poceo sa pravljenjem.

Da vam iskreno kazem meni ovo ne treba ni za sta,vec sa ovim ubija vreme i vezbam VB.


U cemu je problem.Sve sam ja lepo napravio.Kada pokrenemo digitron mi onda otkucamo neki broj.Zatim kliknemo na neki OPERANT ( +,-,*,/) onda upisemo opet neki broj i kliknemo na = da nam to izracuna.Meni ovo sve lepo radi ali se desavaju odredjeni problemi kod upisivanja drugog broja mislim na upisivanje drugog sabirka ukoliko je sabiranje u pitanju.


Ja zelim da otkucam broj 24 onda operant + i drugi broj za sabiranje 3 i treba da se prikaze rezultat 27.Kako on to radi posto smo otkucali prvi broj kada kliknemo na neki operant on brise vrednost TEXTBOX-a i prikazuje operant koji smo izabrali.Onda posto smo izabrali operant mi kucamo sledeci broj on nam brise operant i u TEXTBOX upisuje taj broj.

Meni sve ovo lepo radi ali za gore navedeni primer kada ja zelim da upisem drugi broj 3 on meni ne pokaze 3 vec 33 a rezultat je u redu.Pokaze 27

Dobro ima i drugih problema koje treba otkloniti ali OVO JE TEK BETA VERZIJA i ...
[ Aleksandar Vasic @ 28.12.2008. 15:25 ] @
Izvoli :)
[ Aleksandar Ružičić @ 28.12.2008. 15:36 ] @
mogao si da prekopiras kod u poruku umesto sto si ceo projekat okacio, mene na primer mrzi da skidam pa da raspakujem posle, a i nemam vb tako da mi projektni fajlovi uopste i ne trebaju...

dakle, posto nisam skinuo ne znam sta si uradio ali evo kako bi to otprilike trebalo da se uradi:
Code:

Enum OperationType
  Nop = -1
  Addition = 0
  Subtraction
  Multiplication
  Division
End Enum
Dim lvalue as Double
Dim rvalue as Double
Dim operation As OperationType = Nop ' nop = no operation

Function Calc As String
  Select Case operation
     case addition
         lvalue = lvalue + rvalue
     Case Subtraction
         lvalue = lvalue - rvalue
     Case MUltiplication
         lvalue = lvalue * rvalue
     case Division
         If rvalue = 0 then
            Calc = "Error: division by zero"
            operation = Nop
            Exit Function
         End If
         lvalue = lvalue / rvalue
  End select
  Calc = Str(lvalue)
  operation = Nop
End Function

Sub cmdDigit_Click(Index As Integer) ' recimo da ti se sve cifre nalaze u cmdDigit nizu commandbutton kontrola i da imaju odgovarajuce indexe
    txtDisplay.Text = txtDisplay.Text + cmdDigit(Index).Caption
End SUb

Sub cmdOperation_Click(Index As Integer) ' a operacije se nalaze u cmdOperation nizu, i to onim redom kojim su definisani u OperationType enumeraciji
     lvalue = Val(txtDisplay.Text)
     txtDisplay.Text = ""
     operation = Index
End Sub

Sub cmdEquals_Click
    rvalue = Val(txtDisplay.Text)
    txtDisplay.Text = Calc
End Sub

ako nisam negde pogresio (sto je moguce, kucam napamet i bez testiranja) to bi trebala da ti bude neka osnova ti samo malo sredi to i dodaj sta ti jos sve treba...

[edit: pretece me vasic :)]
[ unisoft @ 28.12.2008. 16:30 ] @
Aleksandar Vasic - ok je ovo sto si ti ispravio.Sada radi samo sa jednocifrenim brojevima ali meni treba da upisem dvocifrene ili vece ...

Text1.Text = Text1.Text & Command1(Index).Caption

Text1.Text = Command1(Index).Caption ' ovo je tvoje ,ovako sam i ja radio ali meni treba sa vise.

U svakom slucaju hvala na pomoci . DOBAR POKUSAJ :)

moderator hvala tebi na pomoci,verujem da ti je kod u redu - barem mi se tako cini ali ne vredi mi nista bez izgleda forme. ( slican je mom - mislim na logiku)

[Ovu poruku je menjao unisoft dana 28.12.2008. u 17:46 GMT+1]
[ unisoft @ 28.12.2008. 16:43 ] @
Vec 2h i vise gledan ali ne vidim u cemu je problem ??? molim da mi neko pomogne
Code:

Public prvavrednost As Double
Public drugavrednost As Double
Public operant As String
Public rezultat As Double

Private Sub Command1_Click(Index As Integer) '   !!! ovo je kod za brojeve !!!

Select Case Text1.Text

Case "+"
operant = Text1.Text
Text1.Text = blank
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "-"
operant = Text1.Text
Text1.Text = blank
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "*"
operant = Text1.Text
Text1.Text = blank
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "/"
operant = Text1.Text
Text1.Text = blank
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

End Select


Text1.Text = Text1.Text & Command1(Index).Caption


End Sub

Private Sub Command2_Click(Index As Integer) '  !!! ovo je kod za JEDNAKO !!!

Select Case operant

Case "+"
rezultat = prvavrednost + drugavrednost
Text1.Text = blank
Text1.Text = rezultat

Case "-"
rezultat = prvavrednost - drugavrednost
Text1.Text = blank
Text1.Text = rezultat

Case "*"
rezultat = prvavrednost * drugavrednost
Text1.Text = blank
Text1.Text = rezultat

Case "/"
rezultat = prvavrednost / drugavrednost
Text1.Text = blank
Text1.Text = rezultat

End Select
End Sub

Private Sub Command3_Click(Index As Integer) '  !!! ovo je kod za operant !!!

prvavrednost = Text1.Text
Text1.Text = blank
Text1.Text = Command3(Index).Caption

End Sub

Private Sub Command4_Click() ' !!! ovo je kod za dugme C !!!
Text1.Text = blank
End Sub

[b]Private Sub Form_Load()[/b]
Text1.Text = blank
End Sub


[Ovu poruku je menjao Aleksandar Ružičić dana 29.12.2008. u 01:04 GMT+1]
[ Eurora3D Team @ 28.12.2008. 19:41 ] @
Desava se da dva puta upisujes broj. Jednom u Case i jednom ispod Select Case
Ovako bi trebalo , pogledaj zadnji deo funkcije.
Code:

Private Sub Command1_Click(Index As Integer)


Select Case Text1.Text

Case "+"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "-"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "*"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "/"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case Else
Text1.Text = Text1.Text & Command1(Index).Caption
End Select

End Sub
[ unisoft @ 28.12.2008. 20:28 ] @
Moras priznati da nije lose napravljeno za pocetnika u VISUAL BASICU - bez pomoci(gledanja) knjige.

KAO PRVO ZAHVALJUJEM SE NA RESENJU PROBLEMA.Tako prosto i jednostavno


e vids ima samo jedan problem koji nisam primetio pa sam sbog toga morao da editujem poruku.

Problem je sledeci : ako vrismo na primer sabiranje dva broja.Neka nam je prvi sabirak 231 a drugi sabirak 456.Kada se to saber treba da da rezultat
687.On meni ne daje taj rezultat vec 235.Sta on radi on na prvi sabirak 231 doda iz drugog sabirka prvi cifu a to je 4 i sabira 231 i 4 i prikazuje rezultat 235.

Kada sabiram,oduzima ... jednocifrene borjeve sve je u redu.Kada idem na operacije sa dvocifrenim borjevima ili vecim javi se ovaj gore problem.
Ne kontam sta je greska.Promenljive su sasvim OK.Dodela vrednosti promenljivima je isto ok

Sta je problem.Eurora3D Team MOLIM TE POMAGAJ.
______________________________


pozdrav za TVRTKA i domaci_as_nas

[Ovu poruku je menjao unisoft dana 28.12.2008. u 23:45 GMT+1]

[Ovu poruku je menjao unisoft dana 28.12.2008. u 23:47 GMT+1]
[ unisoft @ 28.12.2008. 23:12 ] @
Dobra vest posle dosta minuta mucenja - casova otklonio sam problem.
Problem je bio u sledecem
Citat:
Private Sub Command1_Click(Index As Integer)


Select Case Text1.Text

Case "+"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "-"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "*"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case "/"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption
drugavrednost = Text1.Text

Case Else
Text1.Text = Text1.Text & Command1(Index).Caption

End Select
End Sub


Problem je bio u tome sto je se sledeci kod
drugavrednost = Text1.Text
morao da obirse iz naredbi Case i da se doda iza naredbe End Select a ispred End Sub.Ja ne razume sto je ispravno sada ali sta se moze ...

Citat:
Private Sub Command1_Click(Index As Integer)


Select Case Text1.Text

Case "+"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption

Case "-"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption

Case "*"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption

Case "/"
operant = Text1.Text
Text1.Text = ""
Text1.Text = Text1.Text & Command1(Index).Caption

Case Else
Text1.Text = Text1.Text & Command1(Index).Caption

End Select
drugavrednost = Text1.Text
End Sub


Narode vreme je za spavanje.Laku noc svima.