@
zakius ;
Cześć Panowie. Piszę w VBA kalkulator, który muszę skończyć do następnego tygodnia i ze względu na mój zupełny brak umiejętności logicznego myślenia, nie jestem w stanie poprawić niektórych błędów. Dla większości tutaj to pewnie będzie pikuś, a mi zaoszczędzi od cholery czasu - zwracam się wiec do Was koledzy z prośbą o wskazówkę/naprawienie tego nieszczęsnego programu. (PS. wiem, że mało kto zna tutaj VBA, ale ten język jest tak przejrzysty, prosty i intuicyjny, że byłbym zdziwiony jeżeli nawet ktoś kto nie interesuje się programowaniem, nie potrafiłby zrozumieć poniższego kodu).
Kalkulator jest prosty i jedyne co może robić to dodawać i odejmować. Problemy się pojawiają głównie przy przycisku '='. Dla przykładu, wpisując liczbę 7 i kliknięciu od razu '=', cyfra zamienia się nagle w -7(?). Czasem po niektórych kalkulacjach i randomowym wciskaniu '+', '-' a pod koniec '=', kalkulator tak jakby gubi główną wartość na której operuje i (w moim mniemaniu przynajmniej) wyświetla losowe liczby.
Funkcja przycisku '=' (dopisałem komentarze):
Kod:
Private Sub cmdEquals_Click()
Dim iSum As Long
bAnswerShowing = True -- to niewazne
iTotal = 0 -- liczba na ktora wpisuje sie na ekran
If bSumming = True Then -- tutaj uzylem booleanu, zeby odroznic dodawanie od odejmowania
iSum = CLng(txtDisplay.Value) + iMath -- 'iMath' to pierwszy wpisany iTotal ktory zostaje dodany do nowej wartosci wpisanej na ekran
ElseIf bSumming = False Then -- odejmowanie
iSum = iMath - CLng(txtDisplay.Value)
End If
txtDisplay.Value = iSum -- przypisywanie ekranowi wartosci po obliczeniach
cmdMinus.Enabled = True -- po to aby user nie wciskal 2 razy z rzedu minusu/plusu, postanowilem zablokowac go po jednym kliknieciu. po kliknieciu =, operatory znowu sie odblokowuja
cmdPlus.Enabled = True
cmdEquals.Enabled = False -- analogicznie do komenta powyzej, zeby nie mozna bylo klikac = 2 razy z rzedu, wylaczylem go po pierwszym klnieciu
End Sub
Jest tu może coś co powodowałoby błędy? I proszę o łopatologiczne tłumaczenie, bo nauka i zrozumienie tego wszystkiego idzie mi całkiem opornie.