Курсовая работа: Моделирование систем
TElement = class
private
FId : integer;
FName : string;
FSources : TList;
FSheme : TObject;
FContainer : TParcel;
FOnSourceValidate : TIsRightElement;
FOnDestinationValidate : TIsRightElement;
FBeforeTake: TBeforeAfterAction;
FAfterTake: TBeforeAfterAction;
FBeforeDrop: TBeforeAfterAction;
FAfterDrop: TBeforeAfterAction;
procedure SetSheme(ASheme : TObject);
function GetSourceCount: integer;
function GetSource(Index : integer): TElement;
function GetParcelPresent: Boolean;
function GetCanDropParcelFor(Destination : TElement): Boolean;
function GetCanTakeParcelFrom(Source: TElement): Boolean;
procedure Pass(SourceIndex : integer); virtual;
protected
function GetCanTake: Boolean; virtual; abstract;
function GetCanDrop : Boolean; virtual; abstract;
public
constructor Create;virtual;
destructor Destroy; override;
procedure AddSource(Element : TElement);
procedure DelSource(Element : TElement);
procedure AskForParcel; virtual;