Piszę generator testów. Potrzebuję kilka razy skorzystać z wartości zawartych w tablicach na jednym formularzu i poza nim. Przy aktywowaniu formularza wczytuję numery zadań z listy rozwijalnej i odpowiedzi z plików. Próbowałam wpisać odrębną procedurę na początku w kodzie formularza, ale jeśli ta procedura nie dotyczy obiektu, to po wpisaniu wyskakują mi błędy, np. kompilator nie rozpoznaje obiektu z listą rozwijalną lub nie wczytuje ścieżki dostępu. Tak wygląda kod procedury wczytującej tablice:
procedure TForm4.FormActivate(Sender: TObject);
var Plik:TextFile;
j: integer; //do wczytania numerów wybranych zadań z pola kombi
k: integer; // liczba zadań w polu kombi
nr_zad: tablica_zad; //numer zadania
odp_popr: tablica_odp_popr; //zmienna tablicowa przechowująca poprawne odpowiedzi
dir: string;
odpowiedz: tablica_sciezek;
Linia: String; //linia z odpowiedzią A,B,C,D
begin
dir:=GetCurrentDir; //pobiera ścieżkę do programu
k:=pytania.Items.Count; //wczytuje liczbę zadań z pola kombi
for j:=1 to k do
begin
nr_zad[j]:=pytania.Items.Strings[j-1];
begin
odpowiedz [j]:=dir+'/odp'+nr_zad[j]+'.htm'; //ścieżka dostępu do odpowiedzi
AssignFile(Plik,odpowiedz[j]); //otwieramy plik z odpowiedzią np odp1.htm
try //próbuje wczytać plik
Reset(Plik);
while not eof (Plik) do //wczytujemy aż do ostatniej linii, gdzie jest odpowiedź
begin
Readln(Plik,Linia); //wczytuje linię
odp_popr[j]:=Trim(linia); //wczytuje linię na zmienną
end;
CloseFile(Plik);
except
ShowMessage('Nie mogę czytać pliku'); //wypisuje komunikat o pliku
end;
showmessage(nr_zad[j]+' '+odp_popr[j]);
end;
end;
end;
Czy można ten problem rozwiązać w inny sposób?