[gelöst]funktion aus anderen Module aufrufen?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

[gelöst]funktion aus anderen Module aufrufen?

Beitrag 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
Zuletzt geändert von juergen_w1987 am Mi, 23.05.2012 11:58, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: funktion aus anderen Module aufrufen?

Beitrag 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
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: funktion aus anderen Module aufrufen?

Beitrag 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?
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: funktion aus anderen Module aufrufen?

Beitrag 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
juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

Re: funktion aus anderen Module aufrufen?

Beitrag von juergen_w1987 »

werde es am montag prüfen. Es Funktioniert mit

Code: Alles auswählen

puclic const ....
Antworten