Korzystanie z tablic w różnych miejscach kodu

0

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?

0

Nio to dodaj procedury do klasy reprezentującej obiekt - czyli do TForm w sekcji public. Pododawaj po słowach uses odpowiednie unity i będzie ok.

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