Funktionen

Function ByRef, Function ByVal
Ausgangs-Dynpro:
Funktionen können sich selber wieder aufrufen (Function / Sub).
"Var$" ist die Variable, die als String deklariert wurde  (Private Sub name(var$)).
Private Wort1$, Wort2$
Private Sub cmdEingabe_Click()
  Wort1 = "Hallo1"                              Variable 1 heißt "Hallo". Vier MsgBoxen...
  test (Wort1$)                                   Aufruf der Funktion "test" mit der Variablen Wort1 als
  End                                                 String.  Programm endet erst, nachdem alle
End Sub Funktionen abgearbeitet wurden.
Private Function test(Wort1$)            Start der Funktion "test".
  MsgBox Wort1                              Ausgabe des Strings in MsgBox.
  Wort2 = "Continue"                        Die Beschriftung des CommandButtons wird verändert.
  cmdEingabe.BackColor = RGB(255, 0, 0)
  again (Wort2$)                               Aufruf der Funktion "again" mit einer Variablen als String.
End Function
Private Function again(Wort2$)         Start der Funktion "again".
  cmdEingabe.Caption = Wort2         Ausgabe des Strings im CommandButton.
   
  Dim str$, str1$, str2$
    str = "hallo 2"
    str1 = "hallo 3"
    str2 = "hallo 4"
    NotFirst str, str1, str2                      Aufruf der Funktion "NotFirst" mit mehreren Variablen.
    cmdEingabe.BackColor = RGB(0, 255, 0)
End Function
Private Function NotFirst(str$, str1$, str2$)   Start der Funktion "NotFirst" mit mehreren Variablen.
  MsgBox str
    cmdEingabe.BackColor = RGB(0, 0, 255)
  MsgBox str1 Button im Dynpro
    cmdEingabe.BackColor = RGB(255, 0, 0) wechselt viermal Farbe.
  MsgBox str2
    cmdEingabe.BackColor = RGB(0, 255, 0)
   
  Dim ergebnis%, laenge%, breite%
    ergebnis = 0
    laenge = 15
    breite = 7
    ergebnis = test_neu(laenge, breite)   Aufruf der Funktion test_neu. (Wenn Aufruf am Prozedur- 1. Test wird nach 2. Test
                                                         ende erfolgt, erhält man die "richtigen" Werte). ausgegeben !
   
    MsgBox "1. Test: " & laenge & " und " & breite Da die Funktion test_neu den Verweis ByRef enthält,
End Function werden die Werte für (breite - 5) und (laenge - 5) zurück-
gegeben.
Um dem "unrichtigen" Ergebnis (hervorgerufen durch ByRef) vorzubeugen, muss man den Verweis ByVal
verwenden:
'Private Function test_neu(ByVal laenge%, ByVal breite%)     ' = Parameter als Verweis (ByVal).
2.Test wird vor 1. Test
Private Function test_neu(ByRef laenge%, ByRef breite%)   ' = Parameter als Verweis (ByRef). ausgegeben !
 
  laenge = laenge - 5                                       Die ursprünglichen Werte werden nun verändert.
  breite = breite - 5
 
  MsgBox "2. Test: " & laenge & " und " & breite
  cmdEingabe.BackColor = RGB(0, 0, 255)       Anschließend springt das Programm in die Prozedur
End Function "NotFirst" zurück.

 Ranking-Hits zurück Sitemap
Designed by www.wbrnet.info