ChivalryServerLauncher/source/model/Game.Base.pas

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.