Seite 1 von 1

[gelöst] Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 20:33
von oktobaer
Hallo Ihr?

Könnt Ihr mir bitte einen Tipp geben:

Code: Alles auswählen

FUNCTION BALKEN_Init(Titel$,maxwert%)

	STAT_Anzeige= STAT_Dlg.getControl("Status")
	STAT_Anzeige.model.progressvaluemax = maxwert%
	STAT_Dlg.setTitle(Titel$)
	STAT_Dlg.Visible=true

END FUNCTION
versuche ich mit

Code: Alles auswählen

a$="Test"
z%=100
	BALKEN_Init(a$,z%)
oder

Code: Alles auswählen

	BALKEN_Init("Test",100)
aufzurufen und bekomme immer Fehler:

Basic Syntaxfehler
Erwartet : =.

Warum?

Danke für Hinweise!


Oktobaer

Re: Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 20:48
von komma4
Tausche mal FUNCTION gegen SUB aus...

Klappt es dann?

Re: Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 21:19
von eBayer
Guten Abend,
woher kennt die Funktion "STAT_Dlg" ? ---> STAT_Dlg.getControl("Status")
Du mußt STAT_Dlg zunächst mit dem entsprechenden Dialog initialisieren!
Danach kannst Du auf Objecte in STAT_Dlg (in Deinem Dialog) zugreifen.
Gruß eBayer

Re: Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 21:33
von komma4
Ein unbekanntes Objekt würde eine entsprechende Fehlermeldung auslösen.

Mein Tipp war es wohl auch nicht - gerade nachgestellt: ich kann die Meldung nicht reproduzieren :o

Re: Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 22:47
von oktobaer
... Dein Einwand ist berechtigt, aber daran kann es nicht liegen, denn gibt eine SUB die das erledigt:
'im HAuptprogramm:
call MDB_init
BALKEN_Init("Test",100)

SUB MDB_init
' weiterer Code
STAT_Dlg= CreateUnoDialog(Dialoglibraries.Standard.Stat_Dlg)
'weiterer Code
END SUB

FUNCTION BALKEN_Init(Titel$,maxwert%)
STAT_Anzeige= STAT_Dlg.getControl("Status")
STAT_Anzeige.model.progressvaluemax = maxwert%
STAT_Dlg.setTitle(Titel$)
STAT_Dlg.Visible=true
END FUNCTION
zudem würde ich dann eine andere Fehlermeldung erwarten!

Wenn ich wieder, wie ursprünglich gehabt:
call MDB_init

maxwert%=100
Titel$="Test"
STAT_Anzeige= STAT_Dlg.getControl("Status")
STAT_Anzeige.model.progressvaluemax = maxwert%
STAT_Dlg.setTitle(Titel$)
STAT_Dlg.Visible=true
verwende, dann geht es ohne Probleme! Sehr komisch....

Danke für Tipps!
eBayer hat geschrieben:


Guten Abend,
woher kennt die Funktion "STAT_Dlg" ? ---> STAT_Dlg.getControl("Status")
Du mußt STAT_Dlg zunächst mit dem entsprechenden Dialog initialisieren!
Danach kannst Du auf Objecte in STAT_Dlg (in Deinem Dialog) zugreifen.
Gruß eBayer

Re: Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 22:58
von oktobaer
...

als SUB geht es:
SUB BALKEN_Init(Titel$,maxwert%)

STAT_Anzeige= STAT_Dlg.getControl("Status")
STAT_Anzeige.model.progressvaluemax = maxwert%
STAT_Dlg.setTitle(Titel$)
STAT_Dlg.Visible=true

END SUB
Kann es sein, dass man einer FUNCTION keinen String übergeben darf?

Danke Winfried für die Idee!

Oktobaer

Re: Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 23:15
von komma4
Eine Funktion sollte ein Rückgabewert bereit stellen...

Code: Alles auswählen

Function test123
' mach' irgendwas 

test123 = "bla"
End Function
... um im verwendeten Code dann zugewiesen zu werden

myVar = test123()

Ich dachte zunächst, dass diese fehlende Zuweisung die Fehlermeldung auslöste ... kann es aber, wie geschrieben, nicht nachvollziehen.

Egal - Dein Problem ist ja gelöst.

[gelöst] Re: Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 23:21
von oktobaer
... der Aufruf als FUNCTION gefällt mir besser, da das sperrige "call" wegfällt.

Aber der Zweck heiligt ja bekanntlich die Mittel!

Danke!!!

Re: [gelöst] Fehler bei Funktionsaufruf

Verfasst: Mo, 06.07.2009 23:44
von komma4
call kann beim Aufruf einer Makro SUB Routine weggelassen werden...

(ich verwende es aber manchmal, um den Programmablauf deutlich zu machen)

Re: [gelöst] Fehler bei Funktionsaufruf

Verfasst: Di, 07.07.2009 00:07
von oktobaer
... in meinem Fall gibt es dann aber wieder die Fehlermeldung wie ganz oben... :?