Avatar billede blueice Nybegynder
20. april 2006 - 11:27 Der er 10 kommentarer og
1 løsning

Udregn tekstbox

Et lille spørgsmål

Hvis man har en tekstbox (text1)
og man indtaster fx 1+2 i textboxen kan man så få VB6 til at udregne værdien??
Avatar billede innercitydk Nybegynder
20. april 2006 - 11:56 #1
ikke med mindre du manuelt parser indholdet i tekstboxen da den jo arbejder med tekst. du kan køre en foreach lykke der løber de forskellige chars igennem for derefter at behandle dem efter ønske.

Vh
Avatar billede maagefinke Nybegynder
20. april 2006 - 12:16 #2
Du kan gøre således:

Private Sub Command1_Click()
Dim sum As Integer
Dim tal1 As Integer
Dim tal2 As Integer
tal1 = Val(Text1.Text)
tal2 = Val(Text2.Text)
sum = tal1 + tal2
MsgBox "Summen er" & sum

End Sub
Avatar billede innercitydk Nybegynder
20. april 2006 - 12:21 #3
Så er det i to textbokse og det var ikke meningen tror jeg..
Avatar billede kabbak Professor
20. april 2006 - 13:19 #4
Avatar billede rynke10 Novice
21. april 2006 - 05:39 #5
2 textboxe og en commandbutton. Gå op i "projects" og vælg "components"
Sæt kryds i "Microsoft Script control"
Klik den på værktøjslinien og tilføj den til din form.

Private Sub Command1_Click()
Text2.Text = Form1.ScriptControl1.Eval(Text1.Text)
End Sub

Nu kan du skrive alle mulige regnestykker i Text1 og bruge Sin Cos og meget andet.

Det er LIDT nemmere end at lave en funktion selv. Hvis der bare kan være +-*/ bliver det hurtigt meget kompliceret. Man kan jo ikke lægge sammen inden man ganger og hvis der er paranteser bliver det endnu værre.
Avatar billede rynke10 Novice
21. april 2006 - 05:48 #6
Ups, hvis du bruger Sin Cos o.s.v. skal du huske at den regner i Radianer.

Men f.ex. et stykke som
2*(1.5-3+4/5)+3/(8/2)
bliver udregnet uden problemer.
Avatar billede blueice Nybegynder
23. april 2006 - 13:21 #7
rynke10>  læg svar.. :)
har prøvet din metode og den virker fint indtil der kommer et regne stykke med noget i potens.

fx 10^4.2 det er den ikek så glad for
tester det ved
msgbox ScriptControl1.Eval(10^4.2)
jeg får bare en run time error 1002

er der noget jeg kan gøre ved det eller den kan jo godt forstå 10^4??
Avatar billede rynke10 Novice
23. april 2006 - 13:47 #8
Den kan godt forstå 10^4 og den kan faktisk også godt forstå 10^4.2
Prøv at skrive 10^4,2 istedet ;-) Der er forskel på om du bruger komma, eller punktum. Tror det er der dit problem ligger.
Jeg har selv haft det samme problem, der er forskel på om computeren bruger . eller , som seperator. I mit program lavede jeg en funktion der udskiftede , til . og bagefter evaluerede. Den kan du også lige se her :

Public Function konverter(omform As String) As Single
  On Error Resume Next
  omform = Replace(omform, ",", ".")
  konverter = Form1.ScriptControl1.Eval(omform)
  If Error <> "" Then MsgBox Error
End Function
Avatar billede rynke10 Novice
23. april 2006 - 13:47 #9
Nåeh ja, svar :-)
Avatar billede blueice Nybegynder
23. april 2006 - 14:24 #10
dim test as string
test="10^4,2"
msgbox(Scriptcontrol1.Eval(test))
Giver stadig samme fejl...
Avatar billede blueice Nybegynder
23. april 2006 - 14:26 #11
det var . der skulle skulle stå i stedet for ,
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester