Procedura nie widzi globalnej tablicy

0

Witam
pojawił się w moim projekcie nieoczekiwany problem. Posiadam zmienna globalna:

 
var
mapa:array of array of integer

Ustawiam jej wielkość w onCreate formy oraz wypełniam danymi. Mój problem polega na tym, że wszystkie procedury widzą tablice i mogą ją obsługiwać jednak kiedy wywołuje nową, którą stworzyłem otrzymuje komunikat:

 Access violation at address.. Read of address..

Problem pojawia się we fragmencie:

 if mapa[col,row]=0 then

Sprawdziłem, w momencie błędu col=1 a row=0, z tym, że mapa jest pusta(!). Nie wiem dlaczego. Sprawdziłem w pozostałych procedurach i wszystkie widzą mapę bez problemu. Nigdzie też nie czyszczę mapy i jej nie likwiduje.

Wszystkie procedury są przypisane do TForm1. Nie wiem czy to istotne ale procedura pokazująca błąd jest wywoływana z innej procedury.

Wiecie może dlaczego mógł pojawić się taki problem?

3
if Length(mapa)<=col then ShowMessage('Wyłażę poza zakres wiersza')
else if Length(mapa[col])<=row then ShowMessage('Wyłażę poza zakres kolumny')
else if mapa[col][row]=0 then
2

A tak dla ścisłości, to ten komunikat:

Access violation at address.. Read of address..
nie jest związany z widocznością macierzy, a z grzebaniem po pamięci do niej nie należącej; Staraj się rozumieć komunikaty kompilacji, zamiast radośnie je przeklejać na forum.

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