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
     
    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
     
    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
     
    @tebe - z tego co pisze kolega Krzyś, to "new" to metoda tego obiektu, a nie zmienna rekordu.
    • 4: CommentAuthortebe
    • CommentTime9 Mar 2020
     
    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
     
    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
     
    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ą.