Autor
|
Thema: Funktion mit mehrere Parametern (645 mal gelesen)
|
hklein06 Mitglied Entwicklung Fahrwerk
Beiträge: 50 Registriert: 17.03.2006 CATIA V5 R14 HF-35 [ RS6000 AIX 5.3-ML04 ]
|
erstellt am: 23. Mrz. 2006 15:29 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte einer funktion mehrere Parameter übergeben. Leider geht es nicht so wie beschrieben: Function Func_ErrorMsg(Msg_Num As Integer, Msg_String As String) As Integer MsgBox "Fehler "&Msg_Num&": "&Msg_String End Function Der Aufruf Func_ErrorMsg (2) --- "Wrong number..." (OK, ist ja auch Sinn der Sache) Func_ErrorMsg (2, "Test") --- läuft in den Fehler "Cannot use parens when calling a Sub" Habe leider kein ausführliches VB Buch zur Hand. Ind er normalen CATIA Beschreibung steht, dass es so gehen sollte...
Was mache ich denn falsch? Danke im Voraus Viele Grüße, Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
yvi5555 Mitglied
Beiträge: 19 Registriert: 22.02.2006
|
erstellt am: 23. Mrz. 2006 16:12 <-- editieren / zitieren --> Unities abgeben: Nur für hklein06
Hallo Holger, ich habe leider auch noch nicht viel Erfahrung mit Funktionen, aber ich stell dir hier mal das Beispiel aus dem Buch von Dieter R. Ziethen rein. Vielleicht bringt dich das weiter. Viele Grüße Yvonne Beispiel: '--------------------------------------------- Sub CATMain ()
Dim Box Box = MsgBox (Multiplikation (1, 3)) End Sub Function Multiplikation (I, II As Integer) As Integer
Multiplikation = I * II End Function Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlexE78 Mitglied Ing.
Beiträge: 49 Registriert: 29.08.2005
|
erstellt am: 23. Mrz. 2006 16:15 <-- editieren / zitieren --> Unities abgeben: Nur für hklein06
Hallo hklein06, Eine "Function" muß einen Wert zurückgeben. Dieser wird mit FunctionName=Wert zugewiesen. In deinem Beispiel ist aber die Verwendung einer "Sub" sinnvoller. Und da du den (nicht existierenden) Rückgabewert deiner Funktion nicht abfragst, wird sie als Sub interpretiert... und Subs werden ohne Klammern aufgerufen. mfg Alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hklein06 Mitglied Entwicklung Fahrwerk
Beiträge: 50 Registriert: 17.03.2006 CATIA V5 R14 HF-35 [ RS6000 AIX 5.3-ML04 ]
|
erstellt am: 24. Mrz. 2006 10:19 <-- editieren / zitieren --> Unities abgeben:
Hallo Alex, danke für den Hinweis. Das mit meiner Funktion war korrekt, allerdings lasse ich nicht immer den Rückgabewert abfragen. Komisch ist nur, dass es mit einem Parameter funktioniert, mit zwei Parametern nicht mehr. Ich habe jetzt mein Script so angepasst, dass der Rückgabewert abgefragt wird. Viele Grüße, Holger Funktioniert:
Function Func_ErrorMsg(Msg_Num As Integer) As Integer MsgBox "Fehler "&Msg_Num End Function Func_ErrorMsg (2) Funktioniert nicht:
Function Func_ErrorMsg(Msg_Num As Integer, Msg_String As String) As Integer MsgBox "Fehler "&Msg_Num&": "&Msg_String End Function Func_ErrorMsg (2, "Test") Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Günter K. Mitglied
Beiträge: 21 Registriert: 16.08.2004
|
erstellt am: 24. Mrz. 2006 10:44 <-- editieren / zitieren --> Unities abgeben: Nur für hklein06
|
hklein06 Mitglied Entwicklung Fahrwerk
Beiträge: 50 Registriert: 17.03.2006 CATIA V5 R14 HF-35 [ RS6000 AIX 5.3-ML04 ]
|
erstellt am: 24. Mrz. 2006 10:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Günter, nein, habe ich nicht. Ich lese jetzt den Rückgabewert aus und alles funktioniert. Mich hat nur das Verhalten bei einem oder mehreren Parametern ziemlich irritiert. Viele Grüße, Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |