Toon posts:

[VB] EuroCalc.

Pagina: 1
Acties:
  • 49 views sinds 30-01-2008

Verwijderd

Topicstarter
Ey Mensen,

Sinds deze week heb ik het vak programmeren erbij gekregen, nu is het nie het makkelijkste vak en nu zou ik graag wat hulp kunnen gebruiken.

Het gaat om de volgende situatie:

- Formulier Naam = frnEuroCalc
- Twee Frames genaamt: Guldens en Euro's
- twee tekstvakken: txtGuldens en txtEuros
- twee drukknoppen: ">" ( naam cmdGnE ) en "<" ( naam cmdEnG )

Het gaat erom dat ik als ik bijvoorbeeld in tekstvak Guldens een getal in typ dat dit omgerekend wordt naar Euro's als je op ">" drukt en als je iets in het tekstvak Euro's intypt dat het omgerekend wordt in Guldens als je op "<" drukt.

Ik heb net pas me eerste les gehad wat ging over optellen ik heb verschillende pogingen gedaan. De layout is er alleen ik zou graag willen weten wat voor code er achter de: ">" & "<".

Als iemand me zou willen helpen graag...

  • Expecho
  • Registratie: Januari 2001
  • Laatst online: 23-08 13:46
wel wat denk je? om b.v. van gulden naar euro te gaan moet je het bedrag delen door 2,2 nogwat .. even zoeken in de help met welke operator je kan delen, dan het resultaat tonen klaar...

Jij zegt dat de layout klaar is, maar waar wil jij het resultaat tonen dan?

Verwijderd

vooruit omdat ik ook de lulligste niet ben:

aan die knoppen maak je een onClick commando vast die 2 verschillende functies uitvoeren

functie 1: euro -> gulden

haal de waarde op uti het input veld --> deel die door 2.20371, schrijf die waarde terug nar het invoerveld

code:
1
2
3
waarde = form1.invoerveld.value
waarde = (waarde / 2.20371)
form1.invoerveld.value = waarde


voor de andere functie (gulden -> euro): verander de / streep door een *

edit: oeps, had effe over t hoofd gezien dat het hier om een app ging ipv een webapp... oplossing van mij zou alleen werken wanneer je er een inet page van maakt...

[ Voor 17% gewijzigd door Verwijderd op 08-02-2003 11:24 ]


Verwijderd

Precies.

En vergeet niet je textbox te limiteren naar cijfers-only want we willen natuurlijk niet dat je het hele alfabet kan omzetten naar euro's :). Dat mag je zelf uitvogelen, de code voor het omzetten wil ik nog wel neerkwakken hier.

Als je de source wilt, mail me maar.


Dit is m in VB.NET :D


Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
Private Sub cmdGnE_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles cmdGnE.Click

        If tbxGulden.Text = "" Then
            MessageBox.Show("Je moet wel wat invullen natuurlijk")
        Else
            Dim gulden As Double
            gulden = tbxGulden.Text
            tbxEuro.Text = gulden / 2.20371
        End If
End Sub


Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
Private Sub cmdEnG_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles cmdEnG.Click

        If tbxEuro.Text = "" Then
            MessageBox.Show("Je moet wel wat invullen natuurlijk")
        Else
            Dim Euro As Double
            Euro = tbxEuro.Text
            tbxGulden.Text = Euro * 2.20371
        End If
End Sub

[ Voor 4% gewijzigd door Verwijderd op 08-02-2003 10:08 . Reden: Integer --> Double ]


Verwijderd

Voordat ik op mn donder krijg: JA ik heb een Integer gebruikt. Is dat handig: NEE

Maar voor getallen die binnen de -2,147,483,648 tot 2,147,483,647 grens blijven geen probleem :+

Het is al laat en ook Prutsertjes moeten slapen :Z

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
* RobIII moest zichzelf even inhouden en een flame inslikken.... ;)

Had bijna geschreeuwd dat een integer maar van -32768 tot 32767 ging... Maar het is .net. Let dus op: In "gewoon" vb is een integer 2 bytes groot, in .net 4 bytes. En een long is dan dus in "gewoon" vb 4 bytes en in vb.net 8 bytes.

Wel moet ik je even erbij zeggen dat een Integer GEEN "breuken" kan bevatten. Ik zou dus gaan voor een Single, Double (en als je het netjes doet een Currency type).

Just my $0.02

/edit/
Heb 'm effe (ter uwer lering) in mekaar geflanst. Toetsen worden afgevangen, waardes worden omgerekend en zelfs de interface is "intelligent" ;)

Copy & Paste dit naar notepad/kladblok en save als frmEuroCalc.frm
Dubbelklik je file et voila!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
VERSION 5.00
Begin VB.Form frmEuroCalc 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Euro Calc"
   ClientHeight    =   1425
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   3450
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   1425
   ScaleWidth      =   3450
   StartUpPosition =   3  'Windows Default
   Begin VB.Frame Frame2 
      Caption         =   "Euro's"
      Height          =   1215
      Left            =   1800
      TabIndex        =   5
      Top             =   120
      Width           =   1575
      Begin VB.CommandButton cmdEnG 
         Caption         =   "<"
         Height          =   375
         Left            =   120
         TabIndex        =   3
         TabStop         =   0   'False
         Top             =   720
         Width           =   1335
      End
      Begin VB.TextBox txtEuros 
         Alignment       =   1  'Right Justify
         Appearance      =   0  'Flat
         Height          =   285
         Left            =   120
         TabIndex        =   2
         Top             =   360
         Width           =   1335
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "Guldens"
      Height          =   1215
      Left            =   120
      TabIndex        =   4
      Top             =   120
      Width           =   1575
      Begin VB.CommandButton cmdGnE 
         Caption         =   ">"
         Default         =   -1  'True
         Height          =   375
         Left            =   120
         TabIndex        =   1
         TabStop         =   0   'False
         Top             =   720
         Width           =   1335
      End
      Begin VB.TextBox txtGuldens 
         Alignment       =   1  'Right Justify
         Appearance      =   0  'Flat
         Height          =   285
         Left            =   120
         TabIndex        =   0
         Top             =   360
         Width           =   1335
      End
   End
End
Attribute VB_Name = "frmEuroCalc"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Const cEuroValue = 2.20371  'Dacht ik ;-)

Private Sub cmdEnG_Click()
    txtGuldens.Text = Replace(FormatNumber(ParseCur(txtEuros.Text, 0) * cEuroValue, 2, vbTrue, vbFalse, vbTrue), ",", ".")
End Sub

Private Sub cmdGnE_Click()
    txtEuros.Text = Replace(FormatNumber(ParseCur(txtGuldens.Text, 0) / cEuroValue, 2, vbTrue, vbFalse, vbTrue), ",", ".")
End Sub

Private Sub txtGuldens_GotFocus()
    cmdGnE.Default = True
    Selectbox txtGuldens
End Sub

Private Sub txtEuros_GotFocus()
    cmdEnG.Default = True
    Selectbox txtEuros
End Sub

Private Sub txtGuldens_KeyPress(KeyAscii As Integer)
    KeyAscii = KeyNumbers(KeyAscii)
End Sub

Private Sub txtEuros_KeyPress(KeyAscii As Integer)
    KeyAscii = KeyNumbers(KeyAscii)
End Sub

Private Function KeyNumbers(nKeyValue As Integer, Optional sValid As String = "0123456789.") As Integer
    KeyNumbers = IIf((nKeyValue > 26) And (InStr(sValid, Chr(nKeyValue)) = 0), 0, nKeyValue)
End Function

Private Function ParseCur(vVal As String, Optional cDefault As Currency = 0) As Currency
    On Error GoTo errConv
    
    ParseCur = CCur(Val(vVal))
    Exit Function
errConv:
    ParseCur = cDefault
End Function

Private Sub Selectbox(ByRef tBox As TextBox)
    tBox.SelStart = 0
    tBox.SelLength = Len(tBox.Text)
End Sub


Sorry dat het zo omslachtig moet, maar ik kan effe geen webspace vinden om het formpje op te zetten...

Veel plezier ermee... Enne: LEER er iets van. Afkijken is makkelijk genoeg!

[ Voor 85% gewijzigd door RobIII op 08-02-2003 03:20 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
eYz,

bedankt jongens jullie zijn een grote hulp geweest ben al een stuk verder,

Van Guldens naar Euro
code:
1
txtEuros = Str(Val(txtGuldens.Text) / 2.2)


Van Euros naar Guldens
code:
1
txtGuldens = Str(Val(txtEuros.Text) * 2.2)


Zoals al eerder werd genoem moet ik zorgen dat ze alleen getallen in kunnen vullen... :( op welke manier is dat mogelijk en hoe moet ik ervoor zorgen dat het eind getal altijd uit 2 cyfers achter de komma bestaat?

Ik kan het namelijk niet echt aflezen uit het stukje hierboven.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Ik kan het namelijk niet echt aflezen uit het stukje hierboven.
Dat is dan ook niet de bedoeling: een beetje eigen initiatief en originaliteit kan geen kwaad. ;) Denk eens in de richting van de waardes die de verschillende karakters hebben. Zo kun je misschien controleren tot welke soort karakters een ingevoerd karakter behoort...?

My personal website


Verwijderd

Topicstarter
Als ik mijn text veld selecteer en bij opties aanvink dat hij om een cyfer gaat en deze moet worden weergegeven met 2 decimalen, dan doet hij het nog niet :(

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 19:16

Gerco

Professional Newbie

Wat je moet doen is in de KeyPress event van je textbox, bekijken welke toets er ingedrukt is en de toets doorlaten als het een cijfer, backspace, pijltjes of del is. Anders op 0 zetten.

Je kan het ook met een API call, maar dan zou je niet weten wat je deed, dus ga ik je niet uitleggen hoe dat moet. Ik zeg het er alleen even bij voor het geval je http://www.google.nl kan vinden.

[ Voor 14% gewijzigd door Gerco op 08-02-2003 13:16 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
P&W is niet een forum waarvan het de bedoeling is dat we je aan je handje gaan meenemen en je gaan leren programmeren. Eigen initatief is een vereiste hier.
Je zegt zelf dat je het vak 'programmeren' hebt, gebruik die facaliteit dan ook en vraag het aan de desbetreffende docent :) of koop een goed boek.

Succes ermee
Pagina: 1

Dit topic is gesloten.