Zmienna dostepna w calym module

Makropolecenia i funkcje w języku Basic
RoberttoDesperaddo
Posty: 4
Rejestracja: pt sty 08, 2016 9:05 pm

Zmienna dostepna w calym module

Post autor: RoberttoDesperaddo »

Jak ustawic zmienna w taki sposob zeby moze sie bylo do nie odwolywac w kazdym subie, bez koniecznosci jej kazdorazowego deklarowania?

Z roznych zrodel o tym czytalem i wszystkie sugeruja, zeby okreslac ja poza subami, czyli (jak ja to rozumiem, moze blednie) w ten sposob:

Kod: Zaznacz cały

dim var1 as string

sub test1
var1 = "test"
end sub

sub test2
print var1
end sub
Niestety nic to nie daje.


Robienie tego zas tak:

Kod: Zaznacz cały

dim var1 as string
var1 = "test"

sub test1
print var1
end sub
zwraca blad.

Jak to powinno poprawnie wygladac?
OpenOffice 3.1 na Windows 7
Jan_J
Posty: 4578
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Zmienna dostepna w calym module

Post autor: Jan_J »

Do deklarowania zmiennych globalnych użyj dyrektywy global. Patrz https://wiki.openoffice.org/wiki/Docume ... _Variables
Przypisanie wartości do zmiennej poza podprogramem jest nielegalne. Na poziomie modułu wolno umieszczać dyrektywy, deklaracje zmiennych, deklaracje funkcji oraz procedur.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
RoberttoDesperaddo
Posty: 4
Rejestracja: pt sty 08, 2016 9:05 pm

Re: Zmienna dostepna w calym module

Post autor: RoberttoDesperaddo »

To co jest pod tym linkiem czytalem i po prostu w praktyce to nie dziala.

To:

Kod: Zaznacz cały

global var1 as string

sub test1
var1 = "test"
end sub

sub test2
print var1
end sub
Nie daje nic.

Dawanie "dim" lub "public" zamiast "global" jest rownie bezowocne.
OpenOffice 3.1 na Windows 7
Jan_J
Posty: 4578
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Zmienna dostepna w calym module

Post autor: Jan_J »

Twój moduł z var1 u mnie działa: najpierw test1 nadaje wartość var1, a potem test2 z niej korzysta.
Sprawdzałem na LO 5.0 Portable pod Windows 7 Pro, ale wersja ani system nie powinny mieć znaczenia.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ