atarionline.pl MAD PASCAL - Error: identifier idents no member - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorKrzys
      • CommentTime8 Mar 2020 20:03
       
      Cześć, prosiłbym o pomoc.

      Otóż mam sobie klasę TPilot i potrzebuję mieć tablicę jej obiektów, toteż odwołuję się do nich przez wskaźnik, a kiedy uruchamiam metodę (np. 'new') dostaję podczas kompilacji błąd jak w tytule. Jednocześnie nie mam problemu z dostępem do pól w obiekcie.

      Ogólnie:

      var
      plt0:TPilot;
      plt:^TPilot;

      begin
      plt0.new; <----kompiluje się
      plt:=@plt0;
      plt^.new; <----nie kompiluje się
      write(plt^.rank); <---- kompiluje się (rank to pole w obiekcie)

      Niestety nie znalazłem nic na forum o tym błędzie.
      • 2: CommentAuthortebe
      • CommentTime9 Mar 2020 08:03
       
      nie wiem której wersji MP używasz, ale u mnie to działa (1.6.4)

      ->link<-

      type
      TPilot = record new,rank: byte end;

      var
      plt0:TPilot;
      plt:^TPilot;

      begin
      plt0.new:=5;
      plt0.rank:=187;

      plt:=@plt0;

      plt^.new:=11;
      writeln(plt^.rank);
      writeln(plt^.new);
      • 3:
         
        CommentAuthorbocianu
      • CommentTime9 Mar 2020 08:03
       
      @tebe - z tego co pisze kolega Krzyś, to "new" to metoda tego obiektu, a nie zmienna rekordu.
      • 4: CommentAuthortebe
      • CommentTime9 Mar 2020 10:03
       
      rzeczywiście, przepraszam, obiekty mają kod wspólny z rekordami, ale nie były testowane aż tak, zostały dodane 'ad hoc'

      wniosek, ta funkcjonalność nie została oprogramowana
      • 5: CommentAuthorMADRAFi
      • CommentTime9 Mar 2020 19:03
       
      no tak mi sie wydawalo ze nie ma w MP jeszcze metody new do tworzenia obiektu.
      Bo wtedy mozna by bylo tworzyc dynamiczne listy :)
      • 6: CommentAuthorKrzys
      • CommentTime9 Mar 2020 20:03
       
      Dziękuję za pomoc. W zasadzie 'new' to tylko przykład, chodziło o odpalenie metody ze wskaźnika. Skoro tablica obiektów wymusza wskaźniki, a nie obiekty, więc nie ma za bardzo innej możliwości. Ale to nie problem, da się obejść zwykłą procedurą.