Form for lommregner

Tags:    visual-basic

Hey jeg har brug MEGET hjælp til bygning af et program. Programmet har den function at den har 3 textboxes. i textbox nr. 1 skal man skrive hvor mange MB man vil hente, i texbox nr 2 skal man skrive sin download fart, i textbox skal man få resultatet som kunne være
"When your Downloading 700 mb with a constant stream of 30kbps your download will be done in 3 hours, 20 min, and 15 sec."

Jeg håber i forstår functionen ved programmet. Men ærligt er jeg vildt dårlig til VB. Og har brug for en næsten fuld source kode, måske med forklaring på hvad hver kode linje gør.

Håber i kan hjæpe mig!





4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hey jeg har brug MEGET hjælp til bygning af et program. Programmet har den function at den har 3 textboxes. i textbox nr. 1 skal man skrive hvor mange MB man vil hente, i texbox nr 2 skal man skrive sin download fart, i textbox skal man få resultatet som kunne være
"When your Downloading 700 mb with a constant stream of 30kbps your download will be done in 3 hours, 20 min, and 15 sec."

Jeg håber i forstår functionen ved programmet. Men ærligt er jeg vildt dårlig til VB. Og har brug for en næsten fuld source kode, måske med forklaring på hvad hver kode linje gør.

Håber i kan hjæpe mig!


Hej jeg tror at jeg har svaret.

her er det du skal bruge

Private Sub Command1_Click()
On Error Resume Next
Text3.text = "Med en internet forbindelse på " & Me.Text1.Text & " og en fil på " & Me.Text.Text & " vil det tage " & Round(Me.Text2.Text / Me.Text1.Text, 1) & " sekunder"
End Sub

Og her er forklaringen.
Den første sætning: On error resume next betyder at hvis en fejl skulle opstå ville den bare glemme fejlen og forsætte det næste den kan.

Det næste indsætter teksten i text3 som er der hvor den bliver indsat.
det første er nok nemt nok men det der round(Me.Text2.Text / Me.Text1.Text, 1) betyder at den afrunder det til 1 decimal. Det antal decimaler du skal bruge skal du skrive efter kommaet.
og normalt bruger jeg + men for at kunne linke string og integer sammen bruger jeg &.

Sig bare til hvis du får brug for hjælp. eller der opstår fejl.
---
En hånd på armen er bedre end to i skraldespanden!... ehh.. :/?



Hey jeg har brug MEGET hjælp til bygning af et program. Programmet har den function at den har 3 textboxes. i textbox nr. 1 skal man skrive hvor mange MB man vil hente, i texbox nr 2 skal man skrive sin download fart, i textbox skal man få resultatet som kunne være
"When your Downloading 700 mb with a constant stream of 30kbps your download will be done in 3 hours, 20 min, and 15 sec."

Jeg håber i forstår functionen ved programmet. Men ærligt er jeg vildt dårlig til VB. Og har brug for en næsten fuld source kode, måske med forklaring på hvad hver kode linje gør.

Håber i kan hjæpe mig!


Hej jeg tror at jeg har svaret.

her er det du skal bruge

Private Sub Command1_Click()
On Error Resume Next
Text3.text = "Med en internet forbindelse på " & Me.Text1.Text & " og en fil på " & Me.Text.Text & " vil det tage " & Round(Me.Text2.Text / Me.Text1.Text, 1) & " sekunder"
End Sub

Og her er forklaringen.
Den første sætning: On error resume next betyder at hvis en fejl skulle opstå ville den bare glemme fejlen og forsætte det næste den kan.

Det næste indsætter teksten i text3 som er der hvor den bliver indsat.
det første er nok nemt nok men det der round(Me.Text2.Text / Me.Text1.Text, 1) betyder at den afrunder det til 1 decimal. Det antal decimaler du skal bruge skal du skrive efter kommaet.
og normalt bruger jeg + men for at kunne linke string og integer sammen bruger jeg &.

Sig bare til hvis du får brug for hjælp. eller der opstår fejl.
---
En hånd på armen er bedre end to i skraldespanden!... ehh.. :/?

Yours Dios


Hmm har leget med det lidt, 1000 tak for din kode der, den har hjulpet mig super langt på vejen, selvom den indeholdt en lille fejl.. any ways.. jeg har den næsten nu... men er der en mulighed så i stedet for den måske siger 123 seconder men istedet siger 2 min and 3 sekunder? og måske også i timer hvis det er højere?



Hej her er svaret. Ja det kan man faktisk godt. Sig bare til hvis du får brug for hjælp.
Hvis du fårstår koden kan du måske også bruge dage og år?
men her er den bedre kode:
Dim SEKUNDER As Integer ' ærklære sekunder, timer, og minuter
Dim timer As Integer
Dim minuter As Integer
SEKUNDER = Round(Me.TexT2.Text / Me.Text1.Text, 0) ' afrundet og beregner tiden. Hmm sekunderne her må ikke overstige 32767 eller der omkring!
RE: ' her er noget til at gå tilbage til
If SEKUNDER > 59 Then ' beregner om der er brug for minuter
minuter = minuter + 1 ' kommer et minuter ind
SEKUNDER = SEKUNDER - 60 ' fjerner et minut
GoTo RE: ' går til RE:
End If
re2: ' det samme
If minuter > 59 Then
timer = timer + 1
minuter = minuter - 60
GoTo re2:
End If
Dim færdig As String ' det færdige svar
If timer > 0 Then ' hvis der er nogle timer
færdig = færdig & timer & " timer " ' tilføjer nogle timer
End If
If minuter > 0 Then ' her det samme bare med minuter
færdig = færdig & minuter & " minuter "
End If
If SEKUNDER > 0 Then
færdig = færdig & SEKUNDER & " sekunder."
End If

TEXT3.Text = "Med en internet forbindelse på " & Me.Text1.Text & " og en fil på " & Me.TexT2.Text & " vil det tage " & færdig ' tilføjer minuetr

Og hvis du ikke allerede har opdaget det betyder ' en kommentar i visual basic uden nogen virking.

Håber du kan bruge det.

---
En hånd på armen er bedre end to i skraldespanden!... ehh.. :/?



Hovsa jeg fandt en fejl i min kode. hehe.
Dim SEKUNDER As integer
Dim timer As integer
Dim minuter As integer
fordi med denne kode og for store filer vil brugeren få den kedelige fejl! OVERFLOW!
næ i stedet
Dim SEKUNDER As Long
Dim timer As Long
Dim minuter As Long
fordi long er en slags integer men den kan bare rumme mere.
jeg vil lige sige det for at du skal vide det.
Men ellers bruge jeg integer vis tallet man bruger ikke overstiger 32767. Nå men god programmering.
---
En hånd på armen er bedre end to i skraldespanden!... ehh.. :/?



t