WPFObjects - ликвидация параметров по умолчанию, мешающих ускорению

WPFObjects - улучшение примеров
This commit is contained in:
Mikhalkovich Stanislav 2021-04-19 20:53:31 +03:00
parent e9e7a1308c
commit 991a62b3f7
12 changed files with 317 additions and 119 deletions

View file

@ -8,7 +8,7 @@ namespace PascalABCCompiler
{
public class ConsoleCompilerConstants
{
public const int MaxProcessMemoryMB = 150;
public const int MaxProcessMemoryMB = 500;
public const string DataSeparator = "]\r\n[";
//public const string MessageSeparator = "***";

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "8";
public const string Build = "0";
public const string Revision = "2879";
public const string Revision = "2884";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=8
%REVISION%=2879
%COREVERSION%=0
%REVISION%=2884
%MINOR%=8
%MAJOR%=3

View file

@ -3,20 +3,20 @@
begin
var c := new CircleWPF(Window.Center, 20, Colors.Green);
OnDrawFrame := dt → begin
OnDrawFrame := dt -> begin
c.MoveTime(dt);
end;
OnKeyDown := k → begin
OnKeyDown := k -> begin
case k of
Key.Left: c.Direction := (-5, 0);
Key.Right: c.Direction := (5, 0);
Key.Up: c.Direction := (0, -5);
Key.Down: c.Direction := (0, 5);
Key.Left: c.Direction := Direction.Left;
Key.Right: c.Direction := Direction.Right;
Key.Up: c.Direction := Direction.Up;
Key.Down: c.Direction := Direction.Down;
end;
end;
OnKeyUp := k → begin
c.Direction := (0, 0);
OnKeyUp := k -> begin
c.Direction := Direction.Zero;
end;
end.

View file

@ -60,10 +60,8 @@ begin
for var i:=Objects.Count-1 downto 0 do
begin
var o := Objects[i];
if (o.Center.X < 0) or (o.Center.X > Window.Width) or
(o.Center.Y < 0) or (o.Center.Y > Window.Height) then
if not (o is PlayerWPF) then
o.Destroy;
if o.OutOfGraphWindow and not (o is PlayerWPF) then
o.Destroy;
if o is BulletWPF then
foreach var x in o.IntersectionList do
if x is MonsterWPF then
@ -78,12 +76,11 @@ begin
CreateTimerAndStart(1000,procedure -> // Таймер рождения монстров
begin
var x := Random(2)=0 ? 750 : 50;
var x := if Random(2)=0 then 750 else 50;
var m := new MonsterWPF(x,Random(10,550),30,RandomColor);
m.Velocity := 50;
end);
OnKeyDown := k ->
begin
case k of
@ -93,6 +90,7 @@ begin
Key.d,Key.Right: begin kr := true; kl := false end;
end;
end;
OnKeyUp := k ->
begin
case k of

View file

@ -5,11 +5,12 @@ uses WPFObjects;
procedure MoveAll(a,b: integer);
begin
for var j:=0 to Objects.Count-1 do
Objects[j].moveBy(a,b);
Objects[j].moveOn(a,b);
end;
begin
Window.Title := 'Броуновское движение объектов';
HideObjects;
var sq := new SquareWPF(30,5,90,Colors.SkyBlue,1);
var r := new RectangleWPF(10,10,100,180,RGB(255,100,100),1);
var rr := new RoundRectWPF(200,180,180,50,20,RandomColor,1);
@ -29,11 +30,12 @@ begin
c.Height := 50;
c.Scale(2);
MoveAll(160,110);
ShowObjects;
while True do
begin
for var j:=0 to Objects.Count-1 do
Objects[j].MoveBy(Random(-1,1),Random(-1,1));
Objects[j].MoveOn(Random(-1,1),Random(-1,1));
Sleep(10);
end;
end.

View file

@ -8,16 +8,18 @@ begin
end;
begin
HideObjects;
Window.SetSize(640,480);
Window.Title := 'Разрушитель: метод Intersect пересечения объектов';
loop 500 do
new RectangleWPF(Random(Window.Width.Round-200)+100,Random(Window.Height.Round-100),Random(200),Random(200),clRandom);
Destroyer := new CircleWPF(10,Window.Height / 2,100,Colors.Black);
Destroyer.SetText('Destroyer',30,'Arial',Colors.Yellow);
ShowObjects;
loop 900 do
begin
Destroyer.MoveBy(1,0);
Destroyer.MoveOn(1,0);
CheckPulyaIntersects;
Sleep(1);
end;

View file

@ -1,4 +1,4 @@
uses WPFObjects, GraphWPF;
uses WPFObjects;
const
/// отступ по оси x
@ -7,7 +7,7 @@ const
zy = 50;
begin
//Window.IsFixedSize := True;
Window.IsFixedSize := True;
Window.Title := 'Секундомер';
var r := new RoundRectWPF(zx, zy, Window.Width - 2 * zx, Window.Height - 2 * zy, 100, Colors.LightGreen, 5, Colors.Green);
r.FontSize := 200;

View file

@ -1 +1 @@
3.8.0.2879
3.8.0.2884

View file

@ -1 +1 @@
!define VERSION '3.8.0.2879'
!define VERSION '3.8.0.2884'

View file

@ -373,7 +373,7 @@ type
/// Анимирует перемещение графического объекта на вектор (a,b) в течение sec секунд
procedure AnimMoveBy(a,b: real; sec: real := 1) := Invoke(AnimMoveByP,a,b,sec);
///--
procedure AnimMoveOn(a,b: real; sec: real := 1) := AnimMoveOn(a,b,sec);
procedure AnimMoveOn(a,b: real; sec: real := 1) := AnimMoveBy(a,b,sec);
/// Анимирует перемещение графического объекта в направлении RotateAngle (вверх при RotateAngle=0)
procedure AnimMoveForward(r: real);
begin
@ -406,7 +406,7 @@ type
/// Определяет, пересекается ли объект с объектом ob
function Intersects(ob: ObjectWPF): boolean;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): ObjectWPF;
function SetText(txt: string; size: real; fontname: string; c: GColor): ObjectWPF;
begin
Text := txt;
FontSize := size;
@ -414,6 +414,8 @@ type
Self.FontColor := c;
Result := Self;
end;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): ObjectWPF := SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): ObjectWPF;
begin
@ -472,7 +474,7 @@ type
read InvokeReal(()->Element.StrokeThickness)
write Invoke(EST,value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): BoundedObjectWPF;
function SetBorder(w: real; c: GColor): BoundedObjectWPF;
begin
//if c<>BorderColor then
BorderColor := c;
@ -480,6 +482,8 @@ type
BorderWidth := w;
Result := Self;
end;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): BoundedObjectWPF := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: BoundedObjectWPF
:= Invoke&<BoundedObjectWPF>(RemoveBorderP);
@ -509,18 +513,25 @@ type
/// Создает эллипс с центром в точке (x,y), радиусами (rx,ry) и цветом внутренности с
constructor (x,y,rx,ry: real; c: GColor) := Invoke(InitOb2,x,y,rx,ry,c);
/// Создает эллипс с центром в точке (x,y), радиусами (rx,ry) и цветом внутренности с, с границей ширины borderWidth и цвета borderColor
constructor (x,y,rx,ry: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,rx,ry,c); if borderWidth > 0 then SetBorder(borderWidth,borderColor); end;
constructor (x,y,rx,ry: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,rx,ry,c); if borderWidth > 0 then SetBorder(borderWidth,borderColor); end;
/// Создает эллипс с центром в точке (x,y), радиусами (rx,ry) и цветом внутренности с, с границей ширины borderWidth и цвета borderColor
constructor (x,y,rx,ry: real; c: GColor; borderWidth: real) := Create(x,y,rx,ry,c,borderWidth,Colors.Black);
/// Создает эллипс с центром в точке p, радиусами (rx,ry) и цветом внутренности с
constructor (p: Point; rx,ry: real; c: GColor) := Invoke(InitOb2,p.x,p.y,rx,ry,c);
/// Создает эллипс с центром в точке p, радиусами (rx,ry) и цветом внутренности с, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; rx,ry: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,rx,ry,c); if borderWidth > 0 then SetBorder(borderWidth,borderColor); end;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as EllipseWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as EllipseWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as EllipseWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): EllipseWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): EllipseWPF
:= inherited SetText(txt,size,fontname,c) as EllipseWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): EllipseWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): EllipseWPF := inherited SetRotate(da) as EllipseWPF;
/// Радиус эллипса по оси OX
@ -555,12 +566,16 @@ type
public
/// Создает круг радиуса r заданного цвета с координатами центра (x,y)
constructor (x,y,r: real; c: GColor) := Invoke(InitOb2,x,y,r,c);
/// Создает круг радиуса r заданного цвета с координатами центра (x,y), с границей ширины borderWidth
constructor (x,y,r: real; c: GColor; borderWidth: real) := Create(x,y,r,c,borderWidth,Colors.Black);
/// Создает круг радиуса r заданного цвета с координатами центра (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает круг радиуса r заданного цвета с центром p
constructor (p: Point; r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,r,c);
/// Создает круг радиуса r заданного цвета с координатами центра (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает круг радиуса r заданного цвета с центром p, с границей ширины borderWidth
constructor (p: Point; r: real; c: GColor; borderWidth: real) := Create(p,r,c,borderWidth,Colors.Black);
/// Создает круг радиуса r заданного цвета с центром p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,r,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,r,c); SetBorder(borderWidth,borderColor); end;
/// Ширина круга
property Width: real
read InvokeReal(()->ob.Width)
@ -574,12 +589,17 @@ type
read InvokeReal(()->ob.Height/2)
write Invoke(Rad,Value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as CircleWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as CircleWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as CircleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): CircleWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): CircleWPF
:= inherited SetText(txt,size,fontname,c) as CircleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): CircleWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): CircleWPF := inherited SetRotate(da) as CircleWPF;
end;
@ -599,19 +619,26 @@ type
public
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w,h: real; c: GColor) := Invoke(InitOb2,x,y,w,h,c);
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,h,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w,h: real; c: GColor; borderWidth: real) := Create(x,y,w,h,c,borderWidth,Colors.Black);
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w,h: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,c);
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,h,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w,h: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,h,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w,h: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,h,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w,h: real; c: GColor; borderWidth: real) := Create(p,w,h,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as RectangleWPF;
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as RectangleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RectangleWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RectangleWPF
:= inherited SetText(txt,size,fontname,c) as RectangleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RectangleWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RectangleWPF := inherited SetRotate(da) as RectangleWPF;
end;
@ -627,19 +654,29 @@ type
public
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w: real; c: GColor) := Invoke(InitOb2,x,y,w,c);
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w: real; c: GColor; borderWidth: real) := Create(x,y,w,c,borderWidth,Colors.Black);
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,c);
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w: real; c: GColor; borderWidth: real)
:= Create(p,w,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as SquareWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as SquareWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as SquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): SquareWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): SquareWPF
:= inherited SetText(txt,size,fontname,c) as SquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): SquareWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): SquareWPF
:= inherited SetRotate(da) as SquareWPF;
@ -662,19 +699,29 @@ type
public
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w,h,r: real; c: GColor) := Invoke(InitOb2,x,y,w,h,r,c);
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w,h,r: real; c: GColor; borderWidth: real) := Create(x,y,w,h,r,c,borderWidth,Colors.Black);
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w,h,r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,r,c);
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w,h,r: real; c: GColor; borderWidth: real)
:= Create(p,w,h,r,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as RoundRectWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as RoundRectWPF;
/// Декоратор выключения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as RoundRectWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundRectWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RoundRectWPF
:= inherited SetText(txt,size,fontname,c) as RoundRectWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RoundRectWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RoundRectWPF := inherited SetRotate(da) as RoundRectWPF;
/// Радиус скругления
@ -701,24 +748,34 @@ type
public
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w,r: real; c: GColor) := Invoke(InitOb2,x,y,w,r,c);
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w,r: real; c: GColor; borderWidth: real)
:= Create(x,y,w,r,c,borderWidth,Colors.Black);
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w,r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,r,c);
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,r,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w,r: real; c: GColor; borderWidth: real)
:= Create(p,w,r,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): RoundSquareWPF
function SetBorder(w: real; c: GColor): RoundSquareWPF
:= inherited SetBorder(w,c) as RoundSquareWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): RoundSquareWPF := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: RoundSquareWPF
:= inherited RemoveBorder as RoundSquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundSquareWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RoundSquareWPF
:= inherited SetText(txt,size,fontname,c) as RoundSquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RoundSquareWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RoundSquareWPF
:= inherited SetRotate(da) as RoundSquareWPF;
function SetRotate(da: real): RoundSquareWPF := inherited SetRotate(da) as RoundSquareWPF;
end;
MyText = class(FrameworkElement)
@ -772,7 +829,9 @@ type
/// Создает текст заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y: real; txt: string; c: GColor := Colors.Black) := Invoke(InitOb2,x,y,16,txt,c);
/// Создает текст заданного цвета с координатами левого верхнего угла (x,y) и размером шрифта sz
constructor (x,y,sz: real; txt: string; c: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,sz,txt,c); FontSize := sz; end;
constructor (x,y,sz: real; txt: string; c: GColor) := begin Invoke(InitOb2,x,y,sz,txt,c); FontSize := sz; end;
/// Создает текст заданного цвета с координатами левого верхнего угла (x,y) и размером шрифта sz
constructor (x,y,sz: real; txt: string) := Create(x,y,sz,txt,Colors.Black);
/// Размер шрифта
property FontSize: real read InvokeReal(()->Self.Element.sz) write
Invoke(procedure->begin Self.Element.sz := value; Self.Element.RecreateFormText; Width := Self.Element.Width; Height := Self.Element.Height; ob.InvalidateVisual; end); override;
@ -890,8 +949,11 @@ type
Invoke(procedure->begin gr1.Height := value; end);
end; override;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): LineWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): LineWPF
:= inherited SetText(txt,size,fontname,c) as LineWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): LineWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): LineWPF
:= inherited SetRotate(da) as LineWPF;
@ -943,12 +1005,18 @@ type
public
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r
constructor (x,y,r: real; n: integer; c: GColor) := Invoke(InitOb2,x,y,r,n,c);
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r, с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,r,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r, с границей ширины borderWidth
constructor (x,y,r: real; n: integer; c: GColor; borderWidth: real)
:= Create(x,y,r,n,c,borderWidth,Colors.Black);
/// Создает правильный многоугольник заданного цвета с центром в заданной точке p и радиусом описанной окружности r
constructor (p: Point; r: real; n: integer; c: GColor) := Create(p.X,p.Y,r,n,c);
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r, с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,r,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает правильный многоугольник заданного цвета с центром в заданной точке p и радиусом описанной окружности r, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,r,n,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,r,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает правильный многоугольник заданного цвета с центром в заданной точке p и радиусом описанной окружности r, с границей ширины borderWidth
constructor (p: Point; r: real; n: integer; c: GColor; borderWidth: real)
:= Create(p,r,n,c,borderWidth,Colors.Black);
/// Ширина объекта
property Width: real
read InvokeReal(()->gr.Width)
@ -966,14 +1034,20 @@ type
read InvokeInteger(()->n)
write Invoke(Cnt,Value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): RegularPolygonWPF
function SetBorder(w: real; c: GColor): RegularPolygonWPF
:= inherited SetBorder(w,c) as RegularPolygonWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): RegularPolygonWPF
:= SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: RegularPolygonWPF
:= inherited RemoveBorder as RegularPolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RegularPolygonWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RegularPolygonWPF
:= inherited SetText(txt,size,fontname,c) as RegularPolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RegularPolygonWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RegularPolygonWPF
:= inherited SetRotate(da) as RegularPolygonWPF;
@ -1034,15 +1108,21 @@ type
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal
constructor (p: Point; r,rinternal: real; n: integer; c: GColor) := Create(p.X,p.Y,r,rinternal,n,c);
/// Создает звезду заданного цвета с координатами центра (x,y), радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth и цвета borderColor
constructor (x,y,r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black);
constructor (x,y,r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor);
begin
if rinternal<r then
Invoke(InitOb2,x,y,r,rinternal,n,c)
else Invoke(InitOb2,x,y,rinternal,r,n,c);
SetBorder(borderWidth,borderColor);
end;
/// Создает звезду заданного цвета с координатами центра (x,y), радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth
constructor (x,y,r,rinternal: real; n: integer; c: GColor; borderWidth: real)
:= Create(x,y,r,rinternal, n, c, borderWidth, Colors.Black);
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.X,p.Y,r,rinternal,n,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.X,p.Y,r,rinternal,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth
constructor (p: Point; r,rinternal: real; n: integer; c: GColor; borderWidth: real)
:= Create(p,r,rinternal, n, c, borderWidth, Colors.Black);
/// Радиус описанной окружности
property Radius: real
read InvokeReal(()->gr.Height/2)
@ -1056,14 +1136,20 @@ type
read InvokeInteger(()->n)
write Invoke(Cnt,Value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): StarWPF
function SetBorder(w: real; c: GColor): StarWPF
:= inherited SetBorder(w,c) as StarWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): StarWPF
:= SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: StarWPF
:= inherited RemoveBorder as StarWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): StarWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): StarWPF
:= inherited SetText(txt,size,fontname,c) as StarWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): StarWPF
:= SetText(txt, size , fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): StarWPF
:= inherited SetRotate(da) as StarWPF;
@ -1101,7 +1187,10 @@ type
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp
constructor (pp: array of Point; c: GColor) := Invoke(InitOb2,pp,c);
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp, с границей ширины borderWidth и цвета borderColor
constructor (pp: array of Point; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,pp,c); SetBorder(borderWidth,borderColor); end;
constructor (pp: array of Point; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,pp,c); SetBorder(borderWidth,borderColor); end;
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp, с границей ширины borderWidth
constructor (pp: array of Point; c: GColor; borderWidth: real)
:= Create(pp,c,borderWidth,Colors.Black);
/// Массив вершин
property Points: array of Point
read Invoke&<PointsArray>(GetPointsArrayP)
@ -1119,14 +1208,20 @@ type
Invoke(procedure -> ob1.Points := new PointCollection(a));
end;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): PolygonWPF
function SetBorder(w: real; c: GColor): PolygonWPF
:= inherited SetBorder(w,c) as PolygonWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): PolygonWPF
:= SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: PolygonWPF
:= inherited RemoveBorder as PolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PolygonWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): PolygonWPF
:= inherited SetText(txt,size,fontname,c) as PolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): PolygonWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): PolygonWPF
:= inherited SetRotate(da) as PolygonWPF;
@ -1188,8 +1283,11 @@ type
/// Создает рисунок из файла fname с координатой левого верхнего угла, заданной точкой p, и размерами (w,h)
constructor (p: Point; w,h: real; fname: string) := Invoke(InitOb3,p.x,p.y,w,h,fname);
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PictureWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): PictureWPF
:= inherited SetText(txt,size,fontname,c) as PictureWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): PictureWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): PictureWPF := inherited SetRotate(da) as PictureWPF;
end;

View file

@ -373,7 +373,7 @@ type
/// Анимирует перемещение графического объекта на вектор (a,b) в течение sec секунд
procedure AnimMoveBy(a,b: real; sec: real := 1) := Invoke(AnimMoveByP,a,b,sec);
///--
procedure AnimMoveOn(a,b: real; sec: real := 1) := AnimMoveOn(a,b,sec);
procedure AnimMoveOn(a,b: real; sec: real := 1) := AnimMoveBy(a,b,sec);
/// Анимирует перемещение графического объекта в направлении RotateAngle (вверх при RotateAngle=0)
procedure AnimMoveForward(r: real);
begin
@ -406,7 +406,7 @@ type
/// Определяет, пересекается ли объект с объектом ob
function Intersects(ob: ObjectWPF): boolean;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): ObjectWPF;
function SetText(txt: string; size: real; fontname: string; c: GColor): ObjectWPF;
begin
Text := txt;
FontSize := size;
@ -414,6 +414,8 @@ type
Self.FontColor := c;
Result := Self;
end;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): ObjectWPF := SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): ObjectWPF;
begin
@ -472,7 +474,7 @@ type
read InvokeReal(()->Element.StrokeThickness)
write Invoke(EST,value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): BoundedObjectWPF;
function SetBorder(w: real; c: GColor): BoundedObjectWPF;
begin
//if c<>BorderColor then
BorderColor := c;
@ -480,6 +482,8 @@ type
BorderWidth := w;
Result := Self;
end;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): BoundedObjectWPF := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: BoundedObjectWPF
:= Invoke&<BoundedObjectWPF>(RemoveBorderP);
@ -509,18 +513,25 @@ type
/// Создает эллипс с центром в точке (x,y), радиусами (rx,ry) и цветом внутренности с
constructor (x,y,rx,ry: real; c: GColor) := Invoke(InitOb2,x,y,rx,ry,c);
/// Создает эллипс с центром в точке (x,y), радиусами (rx,ry) и цветом внутренности с, с границей ширины borderWidth и цвета borderColor
constructor (x,y,rx,ry: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,rx,ry,c); if borderWidth > 0 then SetBorder(borderWidth,borderColor); end;
constructor (x,y,rx,ry: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,rx,ry,c); if borderWidth > 0 then SetBorder(borderWidth,borderColor); end;
/// Создает эллипс с центром в точке (x,y), радиусами (rx,ry) и цветом внутренности с, с границей ширины borderWidth и цвета borderColor
constructor (x,y,rx,ry: real; c: GColor; borderWidth: real) := Create(x,y,rx,ry,c,borderWidth,Colors.Black);
/// Создает эллипс с центром в точке p, радиусами (rx,ry) и цветом внутренности с
constructor (p: Point; rx,ry: real; c: GColor) := Invoke(InitOb2,p.x,p.y,rx,ry,c);
/// Создает эллипс с центром в точке p, радиусами (rx,ry) и цветом внутренности с, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; rx,ry: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,rx,ry,c); if borderWidth > 0 then SetBorder(borderWidth,borderColor); end;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as EllipseWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as EllipseWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as EllipseWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): EllipseWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): EllipseWPF
:= inherited SetText(txt,size,fontname,c) as EllipseWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): EllipseWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): EllipseWPF := inherited SetRotate(da) as EllipseWPF;
/// Радиус эллипса по оси OX
@ -555,12 +566,16 @@ type
public
/// Создает круг радиуса r заданного цвета с координатами центра (x,y)
constructor (x,y,r: real; c: GColor) := Invoke(InitOb2,x,y,r,c);
/// Создает круг радиуса r заданного цвета с координатами центра (x,y), с границей ширины borderWidth
constructor (x,y,r: real; c: GColor; borderWidth: real) := Create(x,y,r,c,borderWidth,Colors.Black);
/// Создает круг радиуса r заданного цвета с координатами центра (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает круг радиуса r заданного цвета с центром p
constructor (p: Point; r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,r,c);
/// Создает круг радиуса r заданного цвета с координатами центра (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает круг радиуса r заданного цвета с центром p, с границей ширины borderWidth
constructor (p: Point; r: real; c: GColor; borderWidth: real) := Create(p,r,c,borderWidth,Colors.Black);
/// Создает круг радиуса r заданного цвета с центром p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,r,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,r,c); SetBorder(borderWidth,borderColor); end;
/// Ширина круга
property Width: real
read InvokeReal(()->ob.Width)
@ -574,12 +589,17 @@ type
read InvokeReal(()->ob.Height/2)
write Invoke(Rad,Value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as CircleWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as CircleWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as CircleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): CircleWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): CircleWPF
:= inherited SetText(txt,size,fontname,c) as CircleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): CircleWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): CircleWPF := inherited SetRotate(da) as CircleWPF;
end;
@ -599,19 +619,26 @@ type
public
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w,h: real; c: GColor) := Invoke(InitOb2,x,y,w,h,c);
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,h,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w,h: real; c: GColor; borderWidth: real) := Create(x,y,w,h,c,borderWidth,Colors.Black);
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w,h: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,c);
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,h,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w,h: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,h,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w,h: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,h,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w,h: real; c: GColor; borderWidth: real) := Create(p,w,h,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as RectangleWPF;
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as RectangleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RectangleWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RectangleWPF
:= inherited SetText(txt,size,fontname,c) as RectangleWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RectangleWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RectangleWPF := inherited SetRotate(da) as RectangleWPF;
end;
@ -627,19 +654,29 @@ type
public
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w: real; c: GColor) := Invoke(InitOb2,x,y,w,c);
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w: real; c: GColor; borderWidth: real) := Create(x,y,w,c,borderWidth,Colors.Black);
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,c);
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w: real; c: GColor; borderWidth: real)
:= Create(p,w,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as SquareWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as SquareWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as SquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): SquareWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): SquareWPF
:= inherited SetText(txt,size,fontname,c) as SquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): SquareWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): SquareWPF
:= inherited SetRotate(da) as SquareWPF;
@ -662,19 +699,29 @@ type
public
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w,h,r: real; c: GColor) := Invoke(InitOb2,x,y,w,h,r,c);
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w,h,r: real; c: GColor; borderWidth: real) := Create(x,y,w,h,r,c,borderWidth,Colors.Black);
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w,h,r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,r,c);
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w,h,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,h,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w,h,r: real; c: GColor; borderWidth: real)
:= Create(p,w,h,r,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as RoundRectWPF;
function SetBorder(w: real; c: GColor) := inherited SetBorder(w,c) as RoundRectWPF;
/// Декоратор выключения границы объекта
function SetBorder(w: real := 1) := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder := inherited RemoveBorder as RoundRectWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundRectWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RoundRectWPF
:= inherited SetText(txt,size,fontname,c) as RoundRectWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RoundRectWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RoundRectWPF := inherited SetRotate(da) as RoundRectWPF;
/// Радиус скругления
@ -701,24 +748,34 @@ type
public
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y,w,r: real; c: GColor) := Invoke(InitOb2,x,y,w,r,c);
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,w,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth
constructor (x,y,w,r: real; c: GColor; borderWidth: real)
:= Create(x,y,w,r,c,borderWidth,Colors.Black);
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
constructor (p: Point; w,r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,r,c);
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y), с границей ширины borderWidth и цвета borderColor
constructor (x,y,w,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,w,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; w,r: real; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,w,r,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; w,r: real; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,w,r,c); SetBorder(borderWidth,borderColor); end;
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p, с границей ширины borderWidth
constructor (p: Point; w,r: real; c: GColor; borderWidth: real)
:= Create(p,w,r,c,borderWidth,Colors.Black);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): RoundSquareWPF
function SetBorder(w: real; c: GColor): RoundSquareWPF
:= inherited SetBorder(w,c) as RoundSquareWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): RoundSquareWPF := SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: RoundSquareWPF
:= inherited RemoveBorder as RoundSquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundSquareWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RoundSquareWPF
:= inherited SetText(txt,size,fontname,c) as RoundSquareWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RoundSquareWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RoundSquareWPF
:= inherited SetRotate(da) as RoundSquareWPF;
function SetRotate(da: real): RoundSquareWPF := inherited SetRotate(da) as RoundSquareWPF;
end;
MyText = class(FrameworkElement)
@ -772,7 +829,9 @@ type
/// Создает текст заданного цвета с координатами левого верхнего угла (x,y)
constructor (x,y: real; txt: string; c: GColor := Colors.Black) := Invoke(InitOb2,x,y,16,txt,c);
/// Создает текст заданного цвета с координатами левого верхнего угла (x,y) и размером шрифта sz
constructor (x,y,sz: real; txt: string; c: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,sz,txt,c); FontSize := sz; end;
constructor (x,y,sz: real; txt: string; c: GColor) := begin Invoke(InitOb2,x,y,sz,txt,c); FontSize := sz; end;
/// Создает текст заданного цвета с координатами левого верхнего угла (x,y) и размером шрифта sz
constructor (x,y,sz: real; txt: string) := Create(x,y,sz,txt,Colors.Black);
/// Размер шрифта
property FontSize: real read InvokeReal(()->Self.Element.sz) write
Invoke(procedure->begin Self.Element.sz := value; Self.Element.RecreateFormText; Width := Self.Element.Width; Height := Self.Element.Height; ob.InvalidateVisual; end); override;
@ -890,8 +949,11 @@ type
Invoke(procedure->begin gr1.Height := value; end);
end; override;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): LineWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): LineWPF
:= inherited SetText(txt,size,fontname,c) as LineWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): LineWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): LineWPF
:= inherited SetRotate(da) as LineWPF;
@ -943,12 +1005,18 @@ type
public
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r
constructor (x,y,r: real; n: integer; c: GColor) := Invoke(InitOb2,x,y,r,n,c);
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r, с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,x,y,r,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r, с границей ширины borderWidth
constructor (x,y,r: real; n: integer; c: GColor; borderWidth: real)
:= Create(x,y,r,n,c,borderWidth,Colors.Black);
/// Создает правильный многоугольник заданного цвета с центром в заданной точке p и радиусом описанной окружности r
constructor (p: Point; r: real; n: integer; c: GColor) := Create(p.X,p.Y,r,n,c);
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r, с границей ширины borderWidth и цвета borderColor
constructor (x,y,r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,x,y,r,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает правильный многоугольник заданного цвета с центром в заданной точке p и радиусом описанной окружности r, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.x,p.y,r,n,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; r: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.x,p.y,r,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает правильный многоугольник заданного цвета с центром в заданной точке p и радиусом описанной окружности r, с границей ширины borderWidth
constructor (p: Point; r: real; n: integer; c: GColor; borderWidth: real)
:= Create(p,r,n,c,borderWidth,Colors.Black);
/// Ширина объекта
property Width: real
read InvokeReal(()->gr.Width)
@ -966,14 +1034,20 @@ type
read InvokeInteger(()->n)
write Invoke(Cnt,Value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): RegularPolygonWPF
function SetBorder(w: real; c: GColor): RegularPolygonWPF
:= inherited SetBorder(w,c) as RegularPolygonWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): RegularPolygonWPF
:= SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: RegularPolygonWPF
:= inherited RemoveBorder as RegularPolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RegularPolygonWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): RegularPolygonWPF
:= inherited SetText(txt,size,fontname,c) as RegularPolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): RegularPolygonWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): RegularPolygonWPF
:= inherited SetRotate(da) as RegularPolygonWPF;
@ -1034,15 +1108,21 @@ type
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal
constructor (p: Point; r,rinternal: real; n: integer; c: GColor) := Create(p.X,p.Y,r,rinternal,n,c);
/// Создает звезду заданного цвета с координатами центра (x,y), радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth и цвета borderColor
constructor (x,y,r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black);
constructor (x,y,r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor);
begin
if rinternal<r then
Invoke(InitOb2,x,y,r,rinternal,n,c)
else Invoke(InitOb2,x,y,rinternal,r,n,c);
SetBorder(borderWidth,borderColor);
end;
/// Создает звезду заданного цвета с координатами центра (x,y), радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth
constructor (x,y,r,rinternal: real; n: integer; c: GColor; borderWidth: real)
:= Create(x,y,r,rinternal, n, c, borderWidth, Colors.Black);
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth и цвета borderColor
constructor (p: Point; r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,p.X,p.Y,r,rinternal,n,c); SetBorder(borderWidth,borderColor); end;
constructor (p: Point; r,rinternal: real; n: integer; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,p.X,p.Y,r,rinternal,n,c); SetBorder(borderWidth,borderColor); end;
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal, с границей ширины borderWidth
constructor (p: Point; r,rinternal: real; n: integer; c: GColor; borderWidth: real)
:= Create(p,r,rinternal, n, c, borderWidth, Colors.Black);
/// Радиус описанной окружности
property Radius: real
read InvokeReal(()->gr.Height/2)
@ -1056,14 +1136,20 @@ type
read InvokeInteger(()->n)
write Invoke(Cnt,Value);
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): StarWPF
function SetBorder(w: real; c: GColor): StarWPF
:= inherited SetBorder(w,c) as StarWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): StarWPF
:= SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: StarWPF
:= inherited RemoveBorder as StarWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): StarWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): StarWPF
:= inherited SetText(txt,size,fontname,c) as StarWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): StarWPF
:= SetText(txt, size , fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): StarWPF
:= inherited SetRotate(da) as StarWPF;
@ -1101,7 +1187,10 @@ type
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp
constructor (pp: array of Point; c: GColor) := Invoke(InitOb2,pp,c);
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp, с границей ширины borderWidth и цвета borderColor
constructor (pp: array of Point; c: GColor; borderWidth: real; borderColor: GColor := Colors.Black) := begin Invoke(InitOb2,pp,c); SetBorder(borderWidth,borderColor); end;
constructor (pp: array of Point; c: GColor; borderWidth: real; borderColor: GColor) := begin Invoke(InitOb2,pp,c); SetBorder(borderWidth,borderColor); end;
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp, с границей ширины borderWidth
constructor (pp: array of Point; c: GColor; borderWidth: real)
:= Create(pp,c,borderWidth,Colors.Black);
/// Массив вершин
property Points: array of Point
read Invoke&<PointsArray>(GetPointsArrayP)
@ -1119,14 +1208,20 @@ type
Invoke(procedure -> ob1.Points := new PointCollection(a));
end;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1; c: GColor := Colors.Black): PolygonWPF
function SetBorder(w: real; c: GColor): PolygonWPF
:= inherited SetBorder(w,c) as PolygonWPF;
/// Декоратор включения границы объекта
function SetBorder(w: real := 1): PolygonWPF
:= SetBorder(w,Colors.Black);
/// Декоратор выключения границы объекта
function RemoveBorder: PolygonWPF
:= inherited RemoveBorder as PolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PolygonWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): PolygonWPF
:= inherited SetText(txt,size,fontname,c) as PolygonWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): PolygonWPF
:= SetText(txt,size,fontname,Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): PolygonWPF
:= inherited SetRotate(da) as PolygonWPF;
@ -1188,8 +1283,11 @@ type
/// Создает рисунок из файла fname с координатой левого верхнего угла, заданной точкой p, и размерами (w,h)
constructor (p: Point; w,h: real; fname: string) := Invoke(InitOb3,p.x,p.y,w,h,fname);
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PictureWPF
function SetText(txt: string; size: real; fontname: string; c: GColor): PictureWPF
:= inherited SetText(txt,size,fontname,c) as PictureWPF;
/// Декоратор текста объекта
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'): PictureWPF
:= SetText(txt, size, fontname, Colors.Black);
/// Декоратор поворота объекта
function SetRotate(da: real): PictureWPF := inherited SetRotate(da) as PictureWPF;
end;