Globale Variablen

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

Moderator: Moderatoren

arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Globale Variablen

Beitrag von arkadiuszpaluszek »

Hallo!

Heute habe ich ein "Anfängerproblem", ich glaube, dass ich missverstehe, was eine globale Variable denn eigentlich ist. Bisher bin ich davon ausgegangen, dass eine globale Variable auch in anderen Dokumenten gültig ist. Nun habe ich ein Dokument1 mit folgendem Code:

Code: Alles auswählen

GLOBAL Variable
Sub Main
Variable="Mein Wert"
End Sub
Das Makro wird ausgeführt, dann ein anderes Dokument geöffnet mit folgendem Makro:

Code: Alles auswählen

Sub Main
msgbox (Variable)
End Sub
Es geht nicht, die Messagebox ist leer. Die Variable hat keine Gültigkeit im anderen Dokument.

Gibt es die Möglichkeit eine Variable so zu definieren, dass sie nicht nur innerhalb verschiedener Subroutinen oder Module innerhalb eines Dokuments gültig ist, sondern auch in anderen Dokumenten?

Gruß

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

Re: Globale Variablen

Beitrag von komma4 »

Irgendwo ist bei Dir der Wurm drin.

Das funktioniert nämlich genau so, wie von Dir erwartet und in der Dokumentation so beschrieben.
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)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Globale Variablen

Beitrag von Karolus »

Hallo
Du hast nicht zufällig die erste Sub in eine Dokument-bibliothek gespeichert und das Dokument ist beim Aufruf von Sub Nummer 2 geschlossen?

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Globale Variablen

Beitrag von DPunch »

Aloha
arkadiuszpaluszek hat geschrieben:Gibt es die Möglichkeit eine Variable so zu definieren, dass sie nicht nur innerhalb verschiedener Subroutinen oder Module innerhalb eines Dokuments gültig ist, sondern auch in anderen Dokumenten?
Public bzw. Globale Variablen sind nur in der entsprechenden Bibliothek bekannt, das trifft logischerweise nicht auf unterschiedliche Dokumente zu.

Du kannst den Umweg über die Standard-Bibliothek nehmen, das beeinträchtigt natürlich die Portabilität Deiner Makros.
Oder Du hältst die Makros nicht in den Dokumenten, sondern verteilst sie mithilfe von Extensions.
arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Re: Globale Variablen

Beitrag von arkadiuszpaluszek »

Ja, so ist es. Also ist dieses Mysterium nun auch gelöst. :) Kein Problem. Die Globale Variable soll eigentlich die Verbindung zur MySQL - DB sein. Ich habe eine Startseite, diese öffnet dann das "Hauptdokument", dann dessen Formulare und weist ihnen als ihre Verbindung die global definierte Verbindung zu:

Code: Alles auswählen

oForm.ActiveConnection=Connection ' Connection ist eben global deklariert
Nun wollte ich vom Hauptdokument aus weitere Dokumente öffnen und mich hierfür weiterhin der Variable Connection bedienen und musste erstaunt feststellen, dass diese im Hauptdokument eigentlich keinen Wert mehr hat. Ist aber kein Problem, denn ich kann prinzipiell den Buttons im Hauptdokument, welche dann eben weitere Dokumente öffnen und deren Datenbankanbindung definieren, Makros aus der "Startseite" zuweisen - in diesem als erstes geöffnetem Dokument existiert ja die Variable Connection. Also prinzipiell auch dieses Problem gelöst und wieder was dazugelernt.

Dennoch - was heißt "Makros mit Hilfe von Extensions verteilen"? Welche Extension meinst Du und wie funktioniert es?

Danke und Gruß

Arek
Antworten