A have a unit (uSafeVar) with an object. The object has a property "data" of the type "SafeVar_typ"
If I do this it works (wSafeVar is called) var p:SafeVar_typ; begin p.d:=111; SafeVar.data:=p; end If I do this it dos not work but it compiles (wSafeVar is not called) begin SafeVar.data.d:=111; end; If I do a read like this ( after the line SafeVar.data.d:=111;) Writeln(SafeVar.data.d); the output is 111 The compiler is Free Pascal Compiler version 2.2.2 [2008/08/26] for arm Of course I could create a property fore every variable I want to save, but in the real program it is a big record, so I thought this was a smart way to get around this. Is it in fact an error that it compiles? Carsten -------------------------------------------------------------------------- Unit uSafeVar; {$mode objfpc} Interface Uses sysutils, Classes; Type SafeVar_typ = packed record d:byte; end; TSafeVar=class(TObject) Private hSafeVar:SafeVar_typ; f:file of SafeVar_typ; Procedure wSafeVar(data:SafeVar_typ); Public constructor create; destructor destroy; override; property data:SafeVar_typ read hSafeVar write wSafeVar; Published end; var SafeVar:TSafeVar; implementation constructor TSafeVar.create; Begin inherited Create; fillchar(hSafeVar,sizeof(SafeVar_typ),chr(0)); assign(f,SafeVar_dat); if fileexists(SafeVar_dat) then begin reset(f); read(f,hSafeVar); end else begin rewrite(f); Write(f,hSafeVar); end; End; destructor TSafeVar.destroy; Begin inherited destroy; close(f); End; Procedure TSafeVar.wSafeVar(data:SafeVar_typ); Begin hSafeVar:=data; seek(f,0); Write(f,data); End; initialization SafeVar:=tSafeVar.create; finalization SafeVar.free; End. ------------------------------------------ _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal