Delphi-Quellcode:
var fs:TFileStream;
begin
Raum.Short:='Caravan';
Raum.Long.Text:='Ein ziemlich abgenutzter Caravan';
try
begin
fs:=TFileStream.Create(dir+'\data\rooms\caravan.ro', fmCreate or fmShareDenyNone);
fs.Write(Raum, SizeOf(Raum));
end;
finally fs.Free;
end;
Raum.Short:='';
Raum.Long.Text:='';
try
begin
fs:=TFileStream.Create(dir+'\data\rooms\'+Figur.LOC, fmOpenRead or fmShareDenyNone);
fs.Read(Raum, SizeOf(Raum));
end;
finally fs.Free;
end;
end;
Ausgabe.Text:=Raum.Short +#13#10+#13#10
+Raum.Long.Text+#13#10+#13#10
+Ausgabe.Text;
Das ganze gehört in ein Spiel und soll einen Raum laden
(Zumindest diese Funktion des Raum-Ladens testen, aber im Memofeld'Ausgabe' steht nach Ausführen dieses Codes gar nichts, bis auf 4 Zeilenumbrüche...)
Aber wie zum Teufel lädt man ein Objekt richtig aus einer Datei?
Und wie zum Teufel speichert man ein Objekt richtig in eine Datei?
Mein Raum-Objekt sieht folgendermaßen aus:
Delphi-Quellcode:
type TRaum=class
Short:string; //Beschreibungen
Long,
Trigger_Info,
Give_Info:TStringList;
//1=Norden
//2=Osten
//3=Süden
//4=Westen
Exit_true:array[1..4]of boolean;
Exit:array[1..4]of string[255];
IsNPC:boolean;
NumNPCs:ShortInt;
NPC:array[1..10]of string[255];
NPCList:TStringList;
IsMonsterLock:boolean;
MonsterLock:string[255];
constructor Create;
procedure GoExit(Ausgang:integer; Raum:TRaum; Ausgabe:TMemo; Go:array of Tleer_Button);
procedure GetNPC;
procedure GoIn(Raum:TRaum; Ausgabe:TMemo; Go:array of Tleer_Button);
function Kampf(Enemy:string):boolean;
function SearchString(SearchIn:String;
SearchFor:TStringList):TIntBool;
function Analyze_Input(Input:string):string; //Rückgabewert=Output
end;
Für weitere (detailliertere) Fragen zu meinem Problem bin ich immer offen