array in functie procedure

Status
Niet open voor verdere reacties.

erton

Gebruiker
Lid geworden
6 mrt 2009
Berichten
38
Hallo,

ik heb in een procedure array zitten, en bij de functie komt een argument bij voor een bepaalde array te kiezen en te returnen, maar hij returnt niets. heeft iemand een idee hoe ik dit kan oplossen. er moeten zeker arrays gebruikt worden.

hartelijk dank

Code:
Dim pkNKw, kwUit As String
            Dim rekenwaarde As Integer
            Inlezen(0)

            pkNKw = CStr(Val(txtInvoerPKNaarKW.Text))
            kwUit = pkNKw * rekenwaarde
            txtUitvoerPKNaarKW.Text = kwUit.ToString




en dan de functie

Public Function Inlezen(ByRef soort As Integer) As String
        Dim WaardesInArrays(1) As Integer
        Dim WaardesInArrays(1) As Integer
        Dim rekenwaarde As Integer

        WaardesInArrays(0) = "0,7457"   'PK naar KW
        WaardesInArrays(1) = "1,34102"  'KW naar PK
        rekenwaarde = CInt(WaardesInArrays(soort))
        
        Return rekenwaarde
End Function
 
Bestaat er wel zoiets als 'return'? Probeer ziets eens:
Code:
functie bbqFunctie(iets as string) as string

   bbqFunctie = "return waarde!" [COLOR="SeaGreen"]'return dus iets[/COLOR]
[COLOR="SeaGreen"]   'gebruik hiervoor de naam van de functie. In dir geval 'bbqFunctie'[/COLOR]

end function
bovendien staat er dit dubbel:
Code:
        Dim WaardesInArrays(1) As Integer
ohja, en nog iets: een integer is een heel getal, niet een float (of string). Waarom daarna weer converten naar int - het is een string?!?!
Code:
        Dim WaardesInArrays(1) As[B] Integer[/B]

        WaardesInArrays(0) = "[I]0,7457[/I]"
Ohja, en
Code:
            Inlezen(0)
kan niets returnen, want er is geen opvang-var!

Probeer dit eens:
Code:
Dim pkNKw, kwUit As String

Dim rekenwaarde As double
rekenwaarde = Inlezen(0) 'rekenwaarde is dus nu 0,7457

pkNKw = CStr(Val(txtInvoerPKNaarKW.Text))
kwUit = pkNKw * rekenwaarde

txtUitvoerPKNaarKW.Text = kwUit.ToString



[COLOR="Green"]'en dan de functie[/COLOR]

Public Function Inlezen(soort As Integer) As String
        Dim WaardesInArrays(0 to 1) As double

        WaardesInArrays(0) = 0,7457   'PK naar KW
        WaardesInArrays(1) = 1,34102  'KW naar PK
        Inlezen = WaardesInArrays(soort)
End Function
 
Laatst bewerkt:
ik heb gedaan wat je zei, maar dan krijg ik hetzelfde output als input.

Code:
Private Sub btnPKnaarKW_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPKnaarKW.Click
        Try
            Dim pkNKw, kwUit As String


            pkNKw = CStr(Val(txtInvoerPKNaarKW.Text))
            kwUit = pkNKw * Inlezen(0)
            txtUitvoerPKNaarKW.Text = kwUit.ToString
        Catch
            MessageBox.Show("Het bestand vermogen.txt is niet gevonden." & vbNewLine & "Plaats het bestand in de debugmap van het programma." & vbNewLine & "(../Vermogen/bin/debug)", "Bestand niet gevonden", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub




Public Function Inlezen(ByRef soort As Integer) As Integer
        Dim WaardesInArrays(1) As Integer

        Dim i As Integer

        WaardesInArrays(0) = "0,7457"   'PK naar KW
        WaardesInArrays(1) = "1,34102"  'KW naar PK

        For i = 0 To WaardesInArrays.GetUpperBound(0)
            Inlezen = CInt(WaardesInArrays(soort))
        Next
    End Function
 
Code:
[B]Private Sub btnPKnaarKW_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPKnaarKW.Click
        Try
            Dim pkNKw, kwUit As String


            pkNKw = CStr(Val(txtInvoerPKNaarKW.Text))
            kwUit = pkNKw * Inlezen(0)
            txtUitvoerPKNaarKW.Text = kwUit.ToString
        Catch
            MessageBox.Show("Het bestand vermogen.txt is niet gevonden." & vbNewLine & "Plaats het bestand in de debugmap van het programma." & vbNewLine & "(../Vermogen/bin/debug)", "Bestand niet gevonden", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub


Public Function Inlezen(ByRef soort As String) As String
        Dim WaardesInArrays(1) As String

        Dim i As Integer

        WaardesInArrays(0) = "0,7457"   'PK naar KW
        WaardesInArrays(1) = "1,34102"  'KW naar PK

        For i = 0 To WaardesInArrays.GetUpperBound(0)
            Inlezen = CStr(WaardesInArrays(soort))
        Next
        Return Inlezen
    End Function[/B]

dit is ze geworden en ze werkt goed, dank je.

nog een klein vraagje.

is het mogelijk om een button zijn naam variabel te maken zodat je dan aan die variabele nog opties zoals _click kan geven?
zoals het er nu staat krijg ik de error dat de variabele knop_click niet gedeclareerd is.


Code:
Private Function Sneltoetsen(ByVal knop As String, ByVal invoer As String, ByVal uitvoer As String, ByVal e As System.Windows.Forms.KeyEventArgs) As String
If e.KeyCode = Keys.Enter Then 'Als het bepaalde invoervak actief is, en er wordt op enter geduwd, wordt de bewerking uitgevoerd.
Call knop_Click(knop, e)
ElseIf e.KeyCode = Keys.Escape Then 'Als er op escape wordt geduwd, sluit het venster af.
Call btnSluiten_Click(btnSluiten, e)
ElseIf e.KeyCode = Keys.Delete Then 'als er op delete geduwd wordt, wordt enkel de invoer en uitvoer van de betreffende omzetting leeggemaakt.
invoer = String.Empty
uitvoer = String.Empty
End If
Exit Function
End Function
 
Beste "erton"

Het is op Helpmij niet toegestaan je vraag meerdere malen te stellen. Dit wordt crossposten genoemd.

Hierbij het verzoek in je andere vraag verder te gaan.

Deze vraag sluit ik
slotje.gif


Mocht je het hier niet mee eens zijn kun je mij bereiken op thadevil@helpmij.nl
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan