49 lines
908 B
ObjectPascal
49 lines
908 B
ObjectPascal
unit Game.Base;
|
|
|
|
interface
|
|
uses
|
|
System.Classes;
|
|
|
|
|
|
type
|
|
TCustomGame = class(TInterfacedPersistent)
|
|
private
|
|
FLocation: string;
|
|
protected
|
|
procedure Notify(const APropertyName: string); virtual;
|
|
public
|
|
class function GetGameName: string; virtual; abstract;
|
|
|
|
constructor Create(const ALocation: string); virtual;
|
|
|
|
procedure Load; virtual; abstract;
|
|
procedure Save; virtual; abstract;
|
|
|
|
property Location: string read FLocation;
|
|
end;
|
|
|
|
TCustomGameClass = class of TCustomGame;
|
|
|
|
|
|
implementation
|
|
uses
|
|
System.Bindings.Helper,
|
|
System.SysUtils;
|
|
|
|
|
|
{ TCustomGame }
|
|
constructor TCustomGame.Create(const ALocation: string);
|
|
begin
|
|
inherited Create;
|
|
|
|
FLocation := IncludeTrailingPathDelimiter(ALocation);
|
|
end;
|
|
|
|
|
|
procedure TCustomGame.Notify(const APropertyName: string);
|
|
begin
|
|
TBindings.Notify(Self, APropertyName);
|
|
end;
|
|
|
|
end.
|