diff --git a/Compiler/ConsoleCompilerCommands.cs b/Compiler/ConsoleCompilerCommands.cs index bd2bb8b44..dfb20147c 100644 --- a/Compiler/ConsoleCompilerCommands.cs +++ b/Compiler/ConsoleCompilerCommands.cs @@ -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 = "***"; diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 9595c61f6..8aa6101e7 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -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; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 5e14d3906..abd2480bd 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=8 -%REVISION%=2879 %COREVERSION%=0 +%REVISION%=2884 +%MINOR%=8 %MAJOR%=3 diff --git a/InstallerSamples/Graphics/WPFObjects/MovingFrameBasedTime.pas b/InstallerSamples/Graphics/WPFObjects/MovingFrameBasedTime.pas index a411db26d..0755523cb 100644 --- a/InstallerSamples/Graphics/WPFObjects/MovingFrameBasedTime.pas +++ b/InstallerSamples/Graphics/WPFObjects/MovingFrameBasedTime.pas @@ -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. \ No newline at end of file diff --git a/InstallerSamples/Graphics/WPFObjects/Shooter.pas b/InstallerSamples/Graphics/WPFObjects/Shooter.pas index 288c1f804..f0b3cc3f0 100644 --- a/InstallerSamples/Graphics/WPFObjects/Shooter.pas +++ b/InstallerSamples/Graphics/WPFObjects/Shooter.pas @@ -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 diff --git a/InstallerSamples/Graphics/WPFObjects/gr_All_Brown_WPF.pas b/InstallerSamples/Graphics/WPFObjects/gr_All_Brown_WPF.pas index 48b31e208..b2405ab23 100644 --- a/InstallerSamples/Graphics/WPFObjects/gr_All_Brown_WPF.pas +++ b/InstallerSamples/Graphics/WPFObjects/gr_All_Brown_WPF.pas @@ -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. diff --git a/InstallerSamples/Graphics/WPFObjects/gr_IntersectWPF.pas b/InstallerSamples/Graphics/WPFObjects/gr_IntersectWPF.pas index 5b45068fd..85e15769d 100644 --- a/InstallerSamples/Graphics/WPFObjects/gr_IntersectWPF.pas +++ b/InstallerSamples/Graphics/WPFObjects/gr_IntersectWPF.pas @@ -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; diff --git a/InstallerSamples/Graphics/WPFObjects/gr_RealNumber_WPF.pas b/InstallerSamples/Graphics/WPFObjects/gr_RealNumber_WPF.pas index 7f0f50755..ebcce64e5 100644 --- a/InstallerSamples/Graphics/WPFObjects/gr_RealNumber_WPF.pas +++ b/InstallerSamples/Graphics/WPFObjects/gr_RealNumber_WPF.pas @@ -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; diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index 25aa26fc4..ed1705d6c 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.8.0.2879 +3.8.0.2884 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index a40ea42ea..b3647a210 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.8.0.2879' +!define VERSION '3.8.0.2884' diff --git a/TestSuite/CompilationSamples/WPFObjects.pas b/TestSuite/CompilationSamples/WPFObjects.pas index a2417153c..fa810e1ec 100644 --- a/TestSuite/CompilationSamples/WPFObjects.pas +++ b/TestSuite/CompilationSamples/WPFObjects.pas @@ -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&(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 rinternalgr.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&(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; diff --git a/bin/Lib/WPFObjects.pas b/bin/Lib/WPFObjects.pas index a2417153c..fa810e1ec 100644 --- a/bin/Lib/WPFObjects.pas +++ b/bin/Lib/WPFObjects.pas @@ -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&(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 rinternalgr.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&(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;