Seite 1 von 1

[gelöst]funktion aus anderen Module aufrufen?

Verfasst: Mi, 16.05.2012 15:14
von juergen_w1987
Hy leute folgendes Problem: MSGBOX von SaveKonfiguration ist leer!!! Werte werden in einer anderen Funktion(auch in Modul Language) in die Variablen geschrieben, diese wird auch ausgeführt.
Warum ist das so und wie löse ich das Problem? Hat das was mit option explicit zu tun?

Habe schon getestet wenn ich die gleiche MSGBOX im Modul Language einbaue gehts.

Funktion SaveKonfiguration in Modul Konfig

Code: Alles auswählen

Sub SaveKonfiguration

	dim closeValue as Integer
	closeValue = msgbox (GetString(STR_MSG_QUESTION_SAVE_CHANGES),4,"MiSS Base")
	If closeValue = 7 Then 'nein		
 	else	'ja
 		ManipulateFilePath
 	End If
End Sub
Funktion GetString in Modul Language

Code: Alles auswählen

Global languageNumber As Integer
Global de(40)		' Array for german language
Global en(40)		' Array for english	language
Global ch(40)		' Array for chinese	language

const GERMAN		= 0		
const ENGLISH		= 1
const CHINESE		= 2
const STR_MSG_QUESTION_SAVE_CHANGES =16

Function GetString(index As Integer)
	If languageNumber = GERMAN Then
		GetString = de(index)
	ElseIf languageNumber = ENGLISH Then
		GetString = en(index)
	ElseIf languageNumber = CHINESE Then
		GetString = ch(index)
	End If

End Function

Re: funktion aus anderen Module aufrufen?

Verfasst: Do, 17.05.2012 11:34
von Stephan
Warum ist das so und wie löse ich das Problem?
Weil das Makro nicht weiß wo die Funktion zu finden ist.

Es sollte reichen die Funktion mit voller 'Adresse' anzusprechen, also <Biblothek>.<modul>.<funtionsname>.Function, z.B.:

Code: Alles auswählen

msgbox  MeineBibliothek.Language.GetString(...)
oder auch (wenn alles in gleicher Bibliothek stattfindet)

Code: Alles auswählen

msgbox  Language.GetString(...)

ich habe das jetzt aber nicht geprüft, wenns nicht funktioniert nochmals melden.


GRuß
Stephan

Re: funktion aus anderen Module aufrufen?

Verfasst: Do, 17.05.2012 13:06
von DPunch
Servus
Stephan hat geschrieben:Weil das Makro nicht weiß wo die Funktion zu finden ist.
Dann würde das Makro eine entsprechende Fehlermeldung ausspucken.
juergen_w1987 hat geschrieben:Warum ist das so und wie löse ich das Problem?
Du könntest z.B.

Code: Alles auswählen

const STR_MSG_QUESTION_SAVE_CHANGES =16
ändern in

Code: Alles auswählen

Public const STR_MSG_QUESTION_SAVE_CHANGES =16
Welchen Inhalt hat

Code: Alles auswählen

de(0)
?
Gar keinen?

Re: funktion aus anderen Module aufrufen?

Verfasst: Do, 17.05.2012 13:27
von Stephan
Dann würde das Makro eine entsprechende Fehlermeldung ausspucken.
Stimmt, Du hast Recht ich hatte den Hinweis auf die leere Msg-Box überlesen.



GRuß
Stephan

Re: funktion aus anderen Module aufrufen?

Verfasst: Sa, 19.05.2012 12:29
von juergen_w1987
werde es am montag prüfen. Es Funktioniert mit

Code: Alles auswählen

puclic const ....