[gelöst] Fehler bei Funktionsaufruf

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

Moderator: Moderatoren

Benutzeravatar
oktobaer
***
Beiträge: 69
Registriert: So, 18.01.2009 23:19
Wohnort: bei Nürnberg

[gelöst] Fehler bei Funktionsaufruf

Beitrag 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
Zuletzt geändert von oktobaer am Mo, 06.07.2009 23:22, insgesamt 1-mal geändert.
Servus
Claus
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Fehler bei Funktionsaufruf

Beitrag von komma4 »

Tausche mal FUNCTION gegen SUB aus...

Klappt es dann?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Fehler bei Funktionsaufruf

Beitrag 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
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Fehler bei Funktionsaufruf

Beitrag 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
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
oktobaer
***
Beiträge: 69
Registriert: So, 18.01.2009 23:19
Wohnort: bei Nürnberg

Re: Fehler bei Funktionsaufruf

Beitrag 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
Servus
Claus
Benutzeravatar
oktobaer
***
Beiträge: 69
Registriert: So, 18.01.2009 23:19
Wohnort: bei Nürnberg

Re: Fehler bei Funktionsaufruf

Beitrag 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
Servus
Claus
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Fehler bei Funktionsaufruf

Beitrag 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.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
oktobaer
***
Beiträge: 69
Registriert: So, 18.01.2009 23:19
Wohnort: bei Nürnberg

[gelöst] Re: Fehler bei Funktionsaufruf

Beitrag 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!!!
Servus
Claus
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: [gelöst] Fehler bei Funktionsaufruf

Beitrag von komma4 »

call kann beim Aufruf einer Makro SUB Routine weggelassen werden...

(ich verwende es aber manchmal, um den Programmablauf deutlich zu machen)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
oktobaer
***
Beiträge: 69
Registriert: So, 18.01.2009 23:19
Wohnort: bei Nürnberg

Re: [gelöst] Fehler bei Funktionsaufruf

Beitrag von oktobaer »

... in meinem Fall gibt es dann aber wieder die Fehlermeldung wie ganz oben... :?
Servus
Claus
Antworten