vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Aufruf von Unterprogrammen über Variable 
Autor: Michael1111
Datum: 05.02.18 12:10

Hallo,

vielleicht kann mir ja Jemand helfen. Ich möchte gerne ein Unterprogramm (private sub) über eine
Variable aufrufen; kenne jedoch nicht die Syntax für VB 2015.

Beispiel : Ein Unterprogramm heißt teil1, dann soll nach Eingabe einer Variablen (in diesem
Fall 1) halt das sub teil1 aufgerufen werden.

Wäre schön, wenn es dafür eine einfache Lösung gäbe.

Danke für Euere Mühe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aufruf von Unterprogrammen über Variable 
Autor: Manfred X
Datum: 05.02.18 15:46

Hallo!

Eigentlich sind Code und Daten sorgfältig zu trennen.
Am besten wäre es, Du erklärst, was Du erreichen möchtest.
Es gibt wahrscheinlich günstigere Lösungen.

    Private Sub Callselector(ByVal SubId As Integer, param As Object)
 
        Select Case SubId
            Case 1 : Call vers1(param)
            Case 2 : Call vers2(param)
        End Select
    End Sub
 
    Private Sub vers1(Optional param As Object = Nothing)
 
    End Sub
 
    Private Sub vers2(Optional param As Object = Nothing)
 
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aufruf von Unterprogrammen über Variable 
Autor: Michael1111
Datum: 05.02.18 16:34

Um das Problem noch einmal etwas zu verdeutlichen :

über ein Tastenfeld (Buttonfeld) werden in eine Variable Werte (String) von 1 - 999 eingegeben.

Nun soll das dazugehörende Unterprogramm, welches immer aus teil plus Zahl (1-999) also z. B.

private sub teil1() aufgerufen werden.

habe schon verschiedene Sachen getestet auch mit call oder call by name aber es will einfach nicht.

Aber Danke für die Antwort
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aufruf von Unterprogrammen über Variable 
Autor: Michael1111
Datum: 05.02.18 16:46

oder um es anders auszudrücken :

wie ist es hinzubekommen, das ich den Namen des Unterprogramms (teil) und die Zahl
zusammengesetzt bekomme und dann aufrufen kann
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aufruf von Unterprogrammen über Variable 
Autor: Manfred X
Datum: 05.02.18 17:30

Nochmal:
Erkläre nicht, was Du programmieren möchtest,
sondern erläutere, was Du erreichen möchtest.
Dein Weg ist mit hoher Wahrscheinlichkeit ungeeignet.

https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.interaction.callbyname(v=vs.110).aspx

Beitrag wurde zuletzt am 05.02.18 um 17:34:14 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aufruf von Unterprogrammen über Variable 
Autor: Michael1111
Datum: 05.02.18 17:37

Zur Verdeutlichung hier mal ein Auszug aus dem Programm (der Fehler ist fett gedruckt):

Private Sub Button24_Click(sender As Object, e As EventArgs) Handles Button24.Click


If Button24.BackColor = Color.LightGray Then

Button24.BackColor = Color.Lime
inu = 666
Button1.Text = ""
Button2.Text = ""
Button16.Text = ""
Button16.BackColor = Color.LightGray

Else

If Button24.BackColor = Color.Lime Then

Button24.BackColor = Color.LightGray
inu = 33

If Button16.Text <> "" And Button16.Text <> "0" Then
eingteile = CInt(Button16.Text)
vt = CStr(eingteile)
Button16.BackColor = Color.Gold


If eingteile > anzparts Then

Button1.Text = "Diese Einheit steht noch"
Button2.Text = "nicht zur Verfügung"

else

stueck = "teil" & vt

Call stueck()


End If

End If

If Button16.Text = "0" Then

Button16.Text = ""

End If

End If



End If

End Sub


Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aufruf von Unterprogrammen über Variable 
Autor: Michael1111
Datum: 05.02.18 17:44

Sorry, wenn ich mich nicht so ausdrücke, wie es vl. sein sollte, bin aber auch def. kein Profi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Beispiel für CallByName in einem Win.Forms-Formular 
Autor: Manfred X
Datum: 05.02.18 17:54

    Dim WithEvents tbo As New TextBox With _
         {.Parent = Me, .Left = 300}
 
    Private Sub tbo_KeyDown(sender As Object, _
        e As System.Windows.Forms.KeyEventArgs) Handles tbo.KeyDown
 
        If e.KeyCode = Keys.Return Then
            Dim num As Integer
            If Integer.TryParse(tbo.Text, num) AndAlso num > 0 And num <= 2 Then
                Dim params(1) As Object
                Interaction.CallByName _
                   (Me, "Teil" & num.ToString, CallType.Method, params)
            End If
        End If
    End Sub
 
 
    Public Sub Teil1(ParamArray params() As Object)
        MsgBox("Teil1")
    End Sub
 
 
    Public Sub Teil2(ParamArray params() As Object)
        MsgBox("Teil2")
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Beispiel für CallByName in einem Win.Forms-Formular 
Autor: Michael1111
Datum: 06.02.18 09:23

Hallo

UND EINEN GANZ HERZLICHEN DANK - habe es für mein Programm angepasst UND ES FUNKTIONIERT

TAUSEND DANK

auf eine solche Lösung wäre ich nicht gekommen.


Grüße aus dem Münsterland
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel