1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83:
| unit URaumMan;
interface
uses URaum, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type TRaumMan = class(TObject) public Rooms : array of TRaum;
FUNCTION start():Boolean; FUNCTION set_num(number:integer):Boolean; FUNCTION go_to(where:Char):Boolean; FUNCTION ret_desc():string; PROCEDURE free_all(); private akt : Traum; END;
implementation
PROCEDURE TRaumMan.free_all(); VAR iter : INTEGER; BEGIN iter := 0; while Rooms[iter]<>nil DO BEGIN Rooms[iter].Destroy(); inc(iter); END; END;
FUNCTION TRaumMan.go_to(where:Char):Boolean; BEGIN IF where = 'n' then BEGIN IF akt.N <> nil then BEGIN akt:=akt.N; result:=true; END; END ELSE IF where = 'e' then BEGIN IF akt.E <> nil then BEGIN akt:=akt.E; result:=true; END; END ELSE IF where = 's' then BEGIN IF akt.S <> nil then BEGIN akt:=akt.S; result:=true; END; END ELSE IF where = 'w' then BEGIN IF akt.W <> nil then BEGIN akt:=akt.W; result:=true; END; END;
END;
FUNCTION TRaumMan.set_num(number:integer):boolean; BEGIN setlength(Rooms,number+1); END;
FUNCTION TRaumMan.start():Boolean; BEGIN akt:=Rooms[0]; END;
FUNCTION TRaumMan.ret_desc():string; BEGIN result:akt.desc; END;
end. |
jup an markierter stelle tritt eine acces violation auf... hat da grob jemand eine ahnung, woran das liegen könnte?
das objekt "akt" ist vorhanden, und hat auch entsprechende eigenschaften ('desc') trotzdem kann ich nicht darauf zugreifen :/
danke im vorraus für eventuelle vorschläge^^