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
oder
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

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...
