Globale Variabeln im Makro

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

Moderator: Moderatoren

sschultewolter
*
Beiträge: 18
Registriert: Mi, 24.10.2012 19:03

Globale Variabeln im Makro

Beitrag von sschultewolter »

Hallo,

ich habe ein paar Parameter, die bei mir einmal eingestellt werden müssen. Die möchte ich aber ungern im nachfolgenden Code machen. Sondern das ganze global in die ersten Zeilen schreiben.

Wie mache ich das am besten? Es wird ein Int-Wert sowie 3 Strings benötigt.

Code: Alles auswählen

Public maxSizeList = 200
Public pathRoot = "A:/"
Public pathDocuments = "/"
Public pathVnc = "/xy/test.vnc"

Sub func1
// ruft einmalig func2 und func3 auf
func2
func3
End Sub

Sub func2
// mach was
End Sub


Sub func3
// mach was anderes
End Sub

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Globale Variabeln im Makro

Beitrag von komma4 »

Na... so, wie du es machst
F1 Hilfe zu PUBLIC hat geschrieben:Dimensioniert eine Variable oder ein Array auf Modulebene (also nicht innerhalb eine Subroutine oder Funktion), sodass die Variable bzw. das Array in allen Bibliotheken und Modulen gültig ist.
Ich denke aber, Du willst eher eine Konstante CONST definieren.
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)
sschultewolter
*
Beiträge: 18
Registriert: Mi, 24.10.2012 19:03

Re: Globale Variabeln im Makro

Beitrag von sschultewolter »

Ja komma4,
es soll sowas wie const rauskommen.

Habe mit der Makro Programmierung sonst nichts am hut. In C hätte ich da nun einfach const int, .. oder #defines genutzt.
sschultewolter
*
Beiträge: 18
Registriert: Mi, 24.10.2012 19:03

Re: Globale Variabeln im Makro

Beitrag von sschultewolter »

Hab das ganze nun so ersteinmal gelöst. Bei CONST meckert er nicht ;)
Danke

Code: Alles auswählen

' Parameter, nur Änderungen hier vornehmen
CONST maxSizeList = 	200					' Anzahl Datensätze die geladen werden sollen
CONST pathRoot = 		"X:/"				' Pfad der Datensätze (Windows: "X:/" Linux: "file:///mnt/Kunden/)
CONST pathDocuments =	"/"					' Pfad Dokumente
CONST pathVnc = 		"/5.IT/bhkw.vnc" 	' Pfad VNC-Verknüpfung


SUB formLoaded
	' Nur zur Laufzeit, nicht im Desginer
	if not thiscomponent.currentcontroller.isFormDesignMode then	
		oForm = thisComponent.drawpage.forms.MainForm
  		oForm.fetchSize = maxSizeList
	end if

	' Einmalig ausführen beim Laden der Maske
	openDir
	openVnc
END SUB

' Öffnet den Dokumenten Ordner
SUB openDir
	oDoc = thisComponent
	oDrawpage = oDoc.drawpage
	oForm = oDrawpage.forms.getByName("MainForm")
	oFeld1 = oForm.getByName("fmtID")				' Anlagen ID auslesen
	stText = oFeld1.Text
	stURL = pathRoot & stText & pathDocuments
	oFeld2 = oForm.getByName("Unterlagen")
	oFeld2.TargetURL = stURL
END SUB

' Startet VNC-Verknüpfung
SUB openVnc
	oDoc = thisComponent
	oDrawpage = oDoc.drawpage
	oForm = oDrawpage.forms.getByName("MainForm")
	oFeld1 = oForm.getByName("fmtID")				' Anlagen ID auslesen
	stText = oFeld1.Text
	stURL = pathRoot & stText & pathVnc
	oFeld2 = oForm.getByName("VNC")
	oFeld2.TargetURL = stURL
END SUB
Antworten