ВУЗ:
Составители:
Рубрика:
14
//Определяет, находится ли прямоугольник source внутри прямоугольника dest
function Contains(const source,dest:Types.TRect):Boolean;
begin
with dest do
Result:=(source.Left>=Left) and (source.Top>=Top)
and (source.Right<=Right) and (source.Bottom<=Bottom);
end {Contains};
//Реализация методов класса TSpriteList
constructor TSpriteList.Create(const aCanvas:Controls.TControlCanvas);
begin
inherited Create;
if Assigned(aCanvas) then FCanvas:=aCanvas else
raise SysUtils.Exception.Create('Конструктору класса TSpriteList не передана канва!');
FClientRect:=FCanvas.Control.ClientRect;
FCanvasCopyMode:=FCanvas.CopyMode;
FList:=Classes.TList.Create;
end {TSpriteList.Create};
procedure TSpriteList.BeforeDestruction;
begin
Clear;
FCanvas.CopyMode:=FCanvasCopyMode;
FList.Free;
FCount:=0;
inherited
end {TSpriteList.BeforeDestruction};
function TSpriteList.GetSprite(aZ:integer):TSprite;
begin
Result:=TSprite(FList[aZ]);
end {GetSprite};
function TSpriteList.AddSprite(const aSpriteClass:TSpriteClass;
const SpriteRect:Types.TRect):TSprite;
var aSprite:TSprite;
begin
Result:=nil;
if Assigned(aSpriteClass) and (SpriteRect.Right- SpriteRect.Left>0) and
(SpriteRect.Bottom-SpriteRect.Top>0) and Contains(SpriteRect,ClientRect) then
begin
aSprite:=aSpriteClass.Create(SpriteRect,Self);
aSprite.FZ:=FList.Add(aSprite);
FCount:=FList.Count;
Result:=aSprite;
end
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »