[gelöst] Private ist nicht private ???

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

Moderator: Moderatoren

poolshark
Beiträge: 4
Registriert: Do, 13.07.2006 14:49
Wohnort: Berlin

[gelöst] Private ist nicht private ???

Beitrag von poolshark »

Hallo zusammen,

2 Module und 1 Problem.


In Modul 1 steht:

Code: Alles auswählen


	Option Explicit

	Private testmyvar As String


	Sub Main

		testmyvar = "Ich wohne in Module1!"

		MsgBox testmyvar

	End Sub

In Modul 2 steht:

Code: Alles auswählen


	Option Explicit


	Sub Main

		testmyvar = "Ich wohne in Module2!"
		MsgBox testmyvar
		testanothervar = "Ich eigentlich auch!"
		MsgBox testanothervar

	End Sub

Bei Ausführung des 2. Moduls würde ich eine Fehlermeldung
erwarten, da ungeachtet 'Option Explicit' die Variable
'testmyvar' dort nicht deklariert wurde. Folgerichtig
reklamiert wird nur, wenn die Variable 'testanothervar'
gefüllt werden soll...

Wohlgemerkt: Die Deklaration der Variablen 'testmyvar' in
Modul 1 darf doch eigentlich keine Geltung für Modul 2
besitzen, da 'Private' ...?!

Wo liegt mein Denkfehler?

groetjes

poolshark[/u]
Zuletzt geändert von poolshark am Di, 18.07.2006 19:28, insgesamt 2-mal geändert.
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey poolshark,

Wohlgemerkt: Die Deklaration der Variablen 'testmyvar' in
Modul 1 darf doch eigentlich keine Geltung für Modul 2
besitzen, da 'Private' ...?!
Wo liegt mein Denkfehler?
Hmm, welches Betriebssystem verwendest du?
Leider scheint es hier Unterschiede zu geben und die Deklaration ist auch nicht überall so klar.
Eine Variable im Modul (z.B. mit Dim deklariert) außerhalb der Funktionen ist unter Windows Bibliothekenweit zu sehen (also über alle Module der Bibliothek hinweg) unter Linux jedoch nur Modulweit. Dort muss Sie dann mit "global" definiert werden, um sie Bibliothekenweit nutzen zu können.
"private" sollte nur für das einzelne Makro genutzt werden - da hast du recht. Denke aber mal, du arbeitest unter Windows - tia, und da klappt das offensichtlich auch nicht.

Also, kein Denkfehler, eher ein Bug.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
poolshark
Beiträge: 4
Registriert: Do, 13.07.2006 14:49
Wohnort: Berlin

Beitrag von poolshark »

Hi Thomas,

danke Dir für die Antwort.

Das Problem tauchte am Arbeitsplatz (in der Tat unter Windows) auf...

Habe das dann allerdings am heimischen Rechner ( Linux Suse 10.1) unter Verwendung des Code-Beispiels nachgestellt...

Das Ergebnis ist leider dasselbe...

Viele Grüsse

Jürgen
poolshark
Beiträge: 4
Registriert: Do, 13.07.2006 14:49
Wohnort: Berlin

Auflösung!!!

Beitrag von poolshark »

Hallo zusammen,

die Lösung des Privatisierungsproblems findet sich unter

http://www.oooforum.org/forum/viewtopic.phtml?t=39717

groetjes
Antworten