Przekazywanie zmiennych pomiedzy modulami(pascal).

0

Witajcie moi drodzy:)

Mam program o nastepujacej strukturze.

ProgramGlowny---->Modul1----->Modul2

ProgramGlowny korzysta tylko z Modulu1 natomiast Modul1 korzysta tylko z Modulu2.

Zauwazylem ze jesli zadeklaruje jakas zmienna(nazwijmy ja Zmienna1) w Modul2 to ProgramGlowny nie moze z niej korzystac;( Natomiast ProgramGlowny moze korzystac z funkcji i procedur zawartych w Modul2 chociaz bezposrednio nie korzysta przeciez z niego. Skoro moze korzytac z procedur to czemu nie moze korzystac ze zmiennych?

Czy mozna to jakos obejsc, i czy ktos moze mi wyjasnic dlaczego ProgramGlowny moze korzystac z procedur a ze zmiennych nie?

Z gory dzieki za odp [browar]

0

Hmm. U mnie ani procedury ani zmiennej nie udostępnia, więc tak, jak byś powinno. Sprawdź, może masz gdzieś w złym miejscu uses dodane, albo taką samą funkcję?

0

moze powinienes dac zmienne public lub global?

0

moze powinienes dac zmienne public lub global?

Ehm...w Pascalu?Czy cos Ci sie nie pokrecilo?

Co do posta Dryobeatsa (cholera nigdy nie moge zapamietac nicka wiec wybacz jesli przekrecilem;) no to wlasnie nigdzie nie mam w usesach nadmiarowo dodanego modulu ani zdwojonych funkcji;) Ale moze ma to cos wspolnego z tym ze w Modul2 mam dodany Modul1 ale w sekcji implementation?

0

program Test;
uses Modul1;
begin
Write(a); <- błąd
end.

unit Modul1;
interface
uses Modul2; <- jak jest tutaj, to dalej błąd
implementation
uses Modul2; <- jak tutaj także
end.

unit Modul2;
interface
var
a: Integer; <- jak jest tutaj jest błąd
implementation
var
a: Integer; <- jak tutaj także
end.

Wszystkie 4 możliwości sprawdziłem (przy każdym kompilacja na nowo...) i wszędzie był ten sam błąd, że nie jest znana zmienna a (jak w Modul1 umiescilem, to bylo bez problemu). Z funkcjami to samo.

0

Stwórz Unit Deklaracje i w nim deklaruj zmienne które mają być osiągalne w całym programie, bez deklarowania w nim jakiej kolwiek procedury. Poczym dołącz do obu modułów i programu głównego i po problemie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1