|
|
|
@ -80,7 +80,7 @@ function Rect(x,y,w,h: real): GRect;
|
|
|
|
function ColorBrush(c: Color): GBrush;
|
|
|
|
function ColorBrush(c: Color): GBrush;
|
|
|
|
//{{{--doc: Конец секции 1 }}}
|
|
|
|
//{{{--doc: Конец секции 1 }}}
|
|
|
|
|
|
|
|
|
|
|
|
procedure Invoke(p: ()->());
|
|
|
|
procedure Redraw(p: ()->());
|
|
|
|
|
|
|
|
|
|
|
|
//{{{doc: Начало секции 2 }}}
|
|
|
|
//{{{doc: Начало секции 2 }}}
|
|
|
|
type
|
|
|
|
type
|
|
|
|
@ -185,6 +185,8 @@ type
|
|
|
|
property Text: string read InvokeString(()->t.Text) write Invoke(procedure->t.Text := value); virtual;
|
|
|
|
property Text: string read InvokeString(()->t.Text) write Invoke(procedure->t.Text := value); virtual;
|
|
|
|
/// Целое число, выводимое в центре графического объекта. Используется свойство Text
|
|
|
|
/// Целое число, выводимое в центре графического объекта. Используется свойство Text
|
|
|
|
property Number: integer read Text.ToInteger(0) write Text := Value.ToString;
|
|
|
|
property Number: integer read Text.ToInteger(0) write Text := Value.ToString;
|
|
|
|
|
|
|
|
/// Вещественное число, выводимое в центре графического объекта. Используется свойство Text
|
|
|
|
|
|
|
|
property RealNumber: real read Text.ToReal(0.0) write Text := string.Format('{0:f1}',Value).Replace(',','.');
|
|
|
|
private
|
|
|
|
private
|
|
|
|
procedure WTA(value: Alignment);
|
|
|
|
procedure WTA(value: Alignment);
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
@ -268,7 +270,8 @@ type
|
|
|
|
procedure Rotate(a: real) := RotateAngle += a;
|
|
|
|
procedure Rotate(a: real) := RotateAngle += a;
|
|
|
|
/// Масштабирует графический объект в r раз относительно текущего размера
|
|
|
|
/// Масштабирует графический объект в r раз относительно текущего размера
|
|
|
|
procedure Scale(r: real) := ScaleFactor *= r;
|
|
|
|
procedure Scale(r: real) := ScaleFactor *= r;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
procedure AnimMoveOnP(a,b,sec: real);
|
|
|
|
procedure AnimMoveOnP(a,b,sec: real);
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
var ax := new DoubleAnimation(a + transl.X, System.TimeSpan.FromSeconds(sec));
|
|
|
|
var ax := new DoubleAnimation(a + transl.X, System.TimeSpan.FromSeconds(sec));
|
|
|
|
@ -276,9 +279,10 @@ type
|
|
|
|
transl.BeginAnimation(TranslateTransform.XProperty, ax, HandoffBehavior.Compose);
|
|
|
|
transl.BeginAnimation(TranslateTransform.XProperty, ax, HandoffBehavior.Compose);
|
|
|
|
transl.BeginAnimation(TranslateTransform.YProperty, ay, HandoffBehavior.Compose);
|
|
|
|
transl.BeginAnimation(TranslateTransform.YProperty, ay, HandoffBehavior.Compose);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
public
|
|
|
|
/// Анимирует перемещение графического объекта на вектор (a,b) в течение sec секунд
|
|
|
|
/// Анимирует перемещение графического объекта на вектор (a,b) в течение sec секунд
|
|
|
|
procedure AnimMoveOn(a,b: real; sec: real := 1) := Invoke(AnimMoveOnP,a,b,sec);
|
|
|
|
procedure AnimMoveOn(a,b: real; sec: real := 1) := Invoke(AnimMoveOnP,a,b,sec);
|
|
|
|
|
|
|
|
private
|
|
|
|
procedure AnimMoveToP(x,y,sec: real);
|
|
|
|
procedure AnimMoveToP(x,y,sec: real);
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
var ax := new DoubleAnimation(x, System.TimeSpan.FromSeconds(sec));
|
|
|
|
var ax := new DoubleAnimation(x, System.TimeSpan.FromSeconds(sec));
|
|
|
|
@ -286,9 +290,10 @@ type
|
|
|
|
transl.BeginAnimation(TranslateTransform.XProperty, ax, HandoffBehavior.Compose);
|
|
|
|
transl.BeginAnimation(TranslateTransform.XProperty, ax, HandoffBehavior.Compose);
|
|
|
|
transl.BeginAnimation(TranslateTransform.YProperty, ay, HandoffBehavior.Compose);
|
|
|
|
transl.BeginAnimation(TranslateTransform.YProperty, ay, HandoffBehavior.Compose);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
public
|
|
|
|
/// Анимирует перемещение графического объекта к точке (x,y) в течение sec секунд
|
|
|
|
/// Анимирует перемещение графического объекта к точке (x,y) в течение sec секунд
|
|
|
|
procedure AnimMoveTo(x,y: real; sec: real := 1) := Invoke(AnimMoveToP,x,y,sec);
|
|
|
|
procedure AnimMoveTo(x,y: real; sec: real := 1) := Invoke(AnimMoveToP,x,y,sec);
|
|
|
|
|
|
|
|
private
|
|
|
|
procedure AnimMoveEndP;
|
|
|
|
procedure AnimMoveEndP;
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
var animation := new DoubleAnimation();
|
|
|
|
var animation := new DoubleAnimation();
|
|
|
|
@ -296,23 +301,26 @@ type
|
|
|
|
transl.BeginAnimation(TranslateTransform.XProperty, animation);
|
|
|
|
transl.BeginAnimation(TranslateTransform.XProperty, animation);
|
|
|
|
transl.BeginAnimation(TranslateTransform.YProperty, animation);
|
|
|
|
transl.BeginAnimation(TranslateTransform.YProperty, animation);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
public
|
|
|
|
/// Завершает анимацию перемещения
|
|
|
|
/// Завершает анимацию перемещения
|
|
|
|
procedure AnimMoveEnd := Invoke(AnimMoveEndP);
|
|
|
|
procedure AnimMoveEnd := Invoke(AnimMoveEndP);
|
|
|
|
|
|
|
|
private
|
|
|
|
procedure AnimRotateP(a,sec: real);
|
|
|
|
procedure AnimRotateP(a,sec: real);
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
var an := new DoubleAnimation(a, System.TimeSpan.FromSeconds(sec));
|
|
|
|
var an := new DoubleAnimation(a, System.TimeSpan.FromSeconds(sec));
|
|
|
|
rot.BeginAnimation(RotateTransform.AngleProperty, an, HandoffBehavior.Compose);
|
|
|
|
rot.BeginAnimation(RotateTransform.AngleProperty, an, HandoffBehavior.Compose);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
public
|
|
|
|
/// Анимирует вращение графического объекта на угол a в течение sec секунд
|
|
|
|
/// Анимирует вращение графического объекта на угол a в течение sec секунд
|
|
|
|
procedure AnimRotate(a: real; sec: real := 1) := Invoke(AnimRotateP,a,sec);
|
|
|
|
procedure AnimRotate(a: real; sec: real := 1) := Invoke(AnimRotateP,a,sec);
|
|
|
|
|
|
|
|
private
|
|
|
|
procedure AnimScaleP(a,sec: real);
|
|
|
|
procedure AnimScaleP(a,sec: real);
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
var an := new DoubleAnimation(a, System.TimeSpan.FromSeconds(sec));
|
|
|
|
var an := new DoubleAnimation(a, System.TimeSpan.FromSeconds(sec));
|
|
|
|
sca.BeginAnimation(ScaleTransform.ScaleXProperty, an, HandoffBehavior.Compose);
|
|
|
|
sca.BeginAnimation(ScaleTransform.ScaleXProperty, an, HandoffBehavior.Compose);
|
|
|
|
sca.BeginAnimation(ScaleTransform.ScaleYProperty, an, HandoffBehavior.Compose);
|
|
|
|
sca.BeginAnimation(ScaleTransform.ScaleYProperty, an, HandoffBehavior.Compose);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
public
|
|
|
|
/// Анимирует масштабирование графического объекта на величину a в течение sec секунд
|
|
|
|
/// Анимирует масштабирование графического объекта на величину a в течение sec секунд
|
|
|
|
procedure AnimScale(a: real; sec: real := 1) := Invoke(AnimScaleP,a,sec);
|
|
|
|
procedure AnimScale(a: real; sec: real := 1) := Invoke(AnimScaleP,a,sec);
|
|
|
|
|
|
|
|
|
|
|
|
@ -334,7 +342,7 @@ type
|
|
|
|
/// Определяет, пересекается ли объект с объектом ob
|
|
|
|
/// Определяет, пересекается ли объект с объектом ob
|
|
|
|
function Intersects(ob: ObjectWPF): boolean;
|
|
|
|
function Intersects(ob: ObjectWPF): boolean;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): ObjectWPF;
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): ObjectWPF;
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
Text := txt;
|
|
|
|
Text := txt;
|
|
|
|
FontSize := size;
|
|
|
|
FontSize := size;
|
|
|
|
@ -343,7 +351,7 @@ type
|
|
|
|
Result := Self;
|
|
|
|
Result := Self;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): ObjectWPF;
|
|
|
|
function SetRotate(da: real): ObjectWPF;
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
Rotate(da);
|
|
|
|
Rotate(da);
|
|
|
|
Result := Self;
|
|
|
|
Result := Self;
|
|
|
|
@ -371,7 +379,7 @@ type
|
|
|
|
if Element.Stroke = nil then
|
|
|
|
if Element.Stroke = nil then
|
|
|
|
Element.Stroke := new SolidColorBrush(Colors.Black)
|
|
|
|
Element.Stroke := new SolidColorBrush(Colors.Black)
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
function WithNoBorderP: BoundedObjectWPF;
|
|
|
|
function RemoveBorderP: BoundedObjectWPF;
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
Element.Stroke := nil;
|
|
|
|
Element.Stroke := nil;
|
|
|
|
Result := Self;
|
|
|
|
Result := Self;
|
|
|
|
@ -393,16 +401,17 @@ type
|
|
|
|
read InvokeReal(()->Element.StrokeThickness)
|
|
|
|
read InvokeReal(()->Element.StrokeThickness)
|
|
|
|
write Invoke(EST,value);
|
|
|
|
write Invoke(EST,value);
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1): BoundedObjectWPF;
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black): BoundedObjectWPF;
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
BorderColor := BorderColor;
|
|
|
|
//if c<>BorderColor then
|
|
|
|
if (w>=0) then
|
|
|
|
BorderColor := c;
|
|
|
|
BorderWidth := w;
|
|
|
|
//if w<>BorderWidth then
|
|
|
|
|
|
|
|
BorderWidth := w;
|
|
|
|
Result := Self;
|
|
|
|
Result := Self;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder: BoundedObjectWPF
|
|
|
|
function RemoveBorder: BoundedObjectWPF
|
|
|
|
:= Invoke&<BoundedObjectWPF>(WithNoBorderP);
|
|
|
|
:= Invoke&<BoundedObjectWPF>(RemoveBorderP);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -416,18 +425,22 @@ type
|
|
|
|
public
|
|
|
|
public
|
|
|
|
/// Создает эллипс размера (w,h) заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
/// Создает эллипс размера (w,h) заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
constructor (x,y,w,h: real; c: GColor) := Invoke(InitOb2,x,y,w,h,c);
|
|
|
|
constructor (x,y,w,h: real; c: GColor) := Invoke(InitOb2,x,y,w,h,c);
|
|
|
|
/// Создает эллипс размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой
|
|
|
|
/// Создает эллипс размера (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
|
|
|
|
constructor (p: Point; w,h: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,c);
|
|
|
|
constructor (p: Point; w,h: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,c);
|
|
|
|
|
|
|
|
/// Создает эллипс размера (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;
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1) := inherited WithBorder(w) as EllipseWPF;
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as EllipseWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder := inherited WithNoBorder as EllipseWPF;
|
|
|
|
function RemoveBorder := inherited RemoveBorder as EllipseWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): EllipseWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): EllipseWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as EllipseWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as EllipseWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): EllipseWPF
|
|
|
|
function SetRotate(da: real): EllipseWPF
|
|
|
|
:= inherited WithRotate(da) as EllipseWPF;
|
|
|
|
:= inherited SetRotate(da) as EllipseWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -463,6 +476,10 @@ type
|
|
|
|
constructor (x,y,r: real; c: GColor) := Invoke(InitOb2,x,y,r,c);
|
|
|
|
constructor (x,y,r: real; c: GColor) := Invoke(InitOb2,x,y,r,c);
|
|
|
|
/// Создает круг радиуса r заданного цвета с центром p
|
|
|
|
/// Создает круг радиуса r заданного цвета с центром p
|
|
|
|
constructor (p: Point; r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,r,c);
|
|
|
|
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 и цвета 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;
|
|
|
|
/// Ширина круга
|
|
|
|
/// Ширина круга
|
|
|
|
property Width: real
|
|
|
|
property Width: real
|
|
|
|
read InvokeReal(()->ob.Width)
|
|
|
|
read InvokeReal(()->ob.Width)
|
|
|
|
@ -476,14 +493,14 @@ type
|
|
|
|
read InvokeReal(()->ob.Height/2)
|
|
|
|
read InvokeReal(()->ob.Height/2)
|
|
|
|
write Invoke(Rad,Value);
|
|
|
|
write Invoke(Rad,Value);
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1) := inherited WithBorder(w) as CircleWPF;
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as CircleWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder := inherited WithNoBorder as CircleWPF;
|
|
|
|
function RemoveBorder := inherited RemoveBorder as CircleWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): CircleWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): CircleWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as CircleWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as CircleWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): CircleWPF := inherited WithRotate(da) as CircleWPF;
|
|
|
|
function SetRotate(da: real): CircleWPF := inherited SetRotate(da) as CircleWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -501,17 +518,21 @@ type
|
|
|
|
public
|
|
|
|
public
|
|
|
|
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
constructor (x,y,w,h: real; c: GColor) := Invoke(InitOb2,x,y,w,h,c);
|
|
|
|
constructor (x,y,w,h: real; c: GColor) := Invoke(InitOb2,x,y,w,h,c);
|
|
|
|
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой
|
|
|
|
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
|
|
|
|
constructor (p: Point; w,h: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,c);
|
|
|
|
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;
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1) := inherited WithBorder(w) as RectangleWPF;
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as RectangleWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder := inherited WithNoBorder as RectangleWPF;
|
|
|
|
function RemoveBorder := inherited RemoveBorder as RectangleWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RectangleWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RectangleWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as RectangleWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as RectangleWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): RectangleWPF := inherited WithRotate(da) as RectangleWPF;
|
|
|
|
function SetRotate(da: real): RectangleWPF := inherited SetRotate(da) as RectangleWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -525,18 +546,22 @@ type
|
|
|
|
public
|
|
|
|
public
|
|
|
|
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
constructor (x,y,w: real; c: GColor) := Invoke(InitOb2,x,y,w,c);
|
|
|
|
constructor (x,y,w: real; c: GColor) := Invoke(InitOb2,x,y,w,c);
|
|
|
|
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой
|
|
|
|
/// Создает квадрат со стороной w заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
|
|
|
|
constructor (p: Point; w: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,c);
|
|
|
|
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;
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1) := inherited WithBorder(w) as SquareWPF;
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as SquareWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder := inherited WithNoBorder as SquareWPF;
|
|
|
|
function RemoveBorder := inherited RemoveBorder as SquareWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): SquareWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): SquareWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as SquareWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as SquareWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): SquareWPF
|
|
|
|
function SetRotate(da: real): SquareWPF
|
|
|
|
:= inherited WithRotate(da) as SquareWPF;
|
|
|
|
:= inherited SetRotate(da) as SquareWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -556,17 +581,21 @@ type
|
|
|
|
public
|
|
|
|
public
|
|
|
|
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
constructor (x,y,w,h,r: real; c: GColor) := Invoke(InitOb2,x,y,w,h,r,c);
|
|
|
|
constructor (x,y,w,h,r: real; c: GColor) := Invoke(InitOb2,x,y,w,h,r,c);
|
|
|
|
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой
|
|
|
|
/// Создает прямоугольник со скругленными краями размера (w,h) с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
|
|
|
|
constructor (p: Point; w,h,r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,h,r,c);
|
|
|
|
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;
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1) := inherited WithBorder(w) as RoundRectWPF;
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black) := inherited SetBorder(w,c) as RoundRectWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder := inherited WithNoBorder as RoundRectWPF;
|
|
|
|
function RemoveBorder := inherited RemoveBorder as RoundRectWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundRectWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundRectWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as RoundRectWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as RoundRectWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): RoundRectWPF := inherited WithRotate(da) as RoundRectWPF;
|
|
|
|
function SetRotate(da: real): RoundRectWPF := inherited SetRotate(da) as RoundRectWPF;
|
|
|
|
/// Радиус скругления
|
|
|
|
/// Радиус скругления
|
|
|
|
property RoundRadius: real
|
|
|
|
property RoundRadius: real
|
|
|
|
read InvokeReal(()->(ob as Rectangle).RadiusX)
|
|
|
|
read InvokeReal(()->(ob as Rectangle).RadiusX)
|
|
|
|
@ -591,20 +620,24 @@ type
|
|
|
|
public
|
|
|
|
public
|
|
|
|
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
constructor (x,y,w,r: real; c: GColor) := Invoke(InitOb2,x,y,w,r,c);
|
|
|
|
constructor (x,y,w,r: real; c: GColor) := Invoke(InitOb2,x,y,w,r,c);
|
|
|
|
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой
|
|
|
|
/// Создает квадрат со скругленными краями со стороной w с радиусом скругления r заданного цвета с координатами левого верхнего угла, задаваемыми точкой p
|
|
|
|
constructor (p: Point; w,r: real; c: GColor) := Invoke(InitOb2,p.x,p.y,w,r,c);
|
|
|
|
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;
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1): RoundSquareWPF
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black): RoundSquareWPF
|
|
|
|
:= inherited WithBorder(w) as RoundSquareWPF;
|
|
|
|
:= inherited SetBorder(w,c) as RoundSquareWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder: RoundSquareWPF
|
|
|
|
function RemoveBorder: RoundSquareWPF
|
|
|
|
:= inherited WithNoBorder as RoundSquareWPF;
|
|
|
|
:= inherited RemoveBorder as RoundSquareWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundSquareWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RoundSquareWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as RoundSquareWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as RoundSquareWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): RoundSquareWPF
|
|
|
|
function SetRotate(da: real): RoundSquareWPF
|
|
|
|
:= inherited WithRotate(da) as RoundSquareWPF;
|
|
|
|
:= inherited SetRotate(da) as RoundSquareWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
MyText = class(FrameworkElement)
|
|
|
|
MyText = class(FrameworkElement)
|
|
|
|
@ -644,9 +677,9 @@ type
|
|
|
|
private
|
|
|
|
private
|
|
|
|
function Element := ob as MyText;
|
|
|
|
function Element := ob as MyText;
|
|
|
|
|
|
|
|
|
|
|
|
procedure InitOb2(x,y: real; txt: string; c: GColor);
|
|
|
|
procedure InitOb2(x,y,sz: real; txt: string; c: GColor);
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
var rr := new MyText(txt,'Arial',16,c);
|
|
|
|
var rr := new MyText(txt,'Arial',sz,c);
|
|
|
|
InitOb(x,y,rr.Width,rr.Height,rr);
|
|
|
|
InitOb(x,y,rr.Width,rr.Height,rr);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
function GetInternalGeometry: Geometry; override;
|
|
|
|
function GetInternalGeometry: Geometry; override;
|
|
|
|
@ -655,8 +688,10 @@ type
|
|
|
|
Result := new RectangleGeometry(r);
|
|
|
|
Result := new RectangleGeometry(r);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
public
|
|
|
|
public
|
|
|
|
/// Создает прямоугольник размера (w,h) заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
/// Создает текст заданного цвета с координатами левого верхнего угла (x,y)
|
|
|
|
constructor (x,y: real; txt: string; c: GColor := Colors.Black) := Invoke(InitOb2,x,y,txt,c);
|
|
|
|
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;
|
|
|
|
/// Размер шрифта
|
|
|
|
/// Размер шрифта
|
|
|
|
property FontSize: real read InvokeReal(()->Self.Element.sz) write
|
|
|
|
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;
|
|
|
|
Invoke(procedure->begin Self.Element.sz := value; Self.Element.RecreateFormText; Width := Self.Element.Width; Height := Self.Element.Height; ob.InvalidateVisual; end); override;
|
|
|
|
@ -673,7 +708,7 @@ type
|
|
|
|
property Text: string read InvokeString(()->Element.Text)
|
|
|
|
property Text: string read InvokeString(()->Element.Text)
|
|
|
|
write Invoke(procedure->begin Self.Element.Text := value; Self.Element.RecreateFormText; Width := Self.Element.Width; Height := Self.Element.Height; ob.InvalidateVisual end); override;
|
|
|
|
write Invoke(procedure->begin Self.Element.Text := value; Self.Element.RecreateFormText; Width := Self.Element.Width; Height := Self.Element.Height; ob.InvalidateVisual end); override;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): TextWPF := inherited WithRotate(da) as TextWPF;
|
|
|
|
function SetRotate(da: real): TextWPF := inherited SetRotate(da) as TextWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -774,13 +809,13 @@ type
|
|
|
|
Invoke(procedure->begin gr1.Height := value; end);
|
|
|
|
Invoke(procedure->begin gr1.Height := value; end);
|
|
|
|
end; override;
|
|
|
|
end; override;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): LineWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): LineWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as LineWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as LineWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): LineWPF
|
|
|
|
function SetRotate(da: real): LineWPF
|
|
|
|
:= inherited WithRotate(da) as LineWPF;
|
|
|
|
:= inherited SetRotate(da) as LineWPF;
|
|
|
|
/// Декоратор ширины линии отрезка
|
|
|
|
/// Декоратор ширины линии отрезка
|
|
|
|
function WithLineWidth(lw: real): LineWPF;
|
|
|
|
function SetLineWidth(lw: real): LineWPF;
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
LineWidth := lw;
|
|
|
|
LineWidth := lw;
|
|
|
|
Result := Self;
|
|
|
|
Result := Self;
|
|
|
|
@ -827,8 +862,12 @@ type
|
|
|
|
public
|
|
|
|
public
|
|
|
|
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r
|
|
|
|
/// Создает правильный многоугольник заданного цвета с координатами центра (x,y) и радиусом описанной окружности r
|
|
|
|
constructor (x,y,r: real; n: integer; c: GColor) := Invoke(InitOb2,x,y,r,n,c);
|
|
|
|
constructor (x,y,r: real; n: integer; c: GColor) := Invoke(InitOb2,x,y,r,n,c);
|
|
|
|
/// Создает правильный многоугольник заданного цвета с центром в заданной точке и радиусом описанной окружности r
|
|
|
|
/// Создает правильный многоугольник заданного цвета с центром в заданной точке p и радиусом описанной окружности r
|
|
|
|
constructor (p: Point; r: real; n: integer; c: GColor) := Create(p.X,p.Y,r,n,c);
|
|
|
|
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;
|
|
|
|
/// Ширина объекта
|
|
|
|
/// Ширина объекта
|
|
|
|
property Width: real
|
|
|
|
property Width: real
|
|
|
|
read InvokeReal(()->gr.Width)
|
|
|
|
read InvokeReal(()->gr.Width)
|
|
|
|
@ -846,17 +885,17 @@ type
|
|
|
|
read InvokeInteger(()->n)
|
|
|
|
read InvokeInteger(()->n)
|
|
|
|
write Invoke(Cnt,Value);
|
|
|
|
write Invoke(Cnt,Value);
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1): RegularPolygonWPF
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black): RegularPolygonWPF
|
|
|
|
:= inherited WithBorder(w) as RegularPolygonWPF;
|
|
|
|
:= inherited SetBorder(w,c) as RegularPolygonWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder: RegularPolygonWPF
|
|
|
|
function RemoveBorder: RegularPolygonWPF
|
|
|
|
:= inherited WithNoBorder as RegularPolygonWPF;
|
|
|
|
:= inherited RemoveBorder as RegularPolygonWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RegularPolygonWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): RegularPolygonWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as RegularPolygonWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as RegularPolygonWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): RegularPolygonWPF
|
|
|
|
function SetRotate(da: real): RegularPolygonWPF
|
|
|
|
:= inherited WithRotate(da) as RegularPolygonWPF;
|
|
|
|
:= inherited SetRotate(da) as RegularPolygonWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -913,6 +952,16 @@ type
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal
|
|
|
|
/// Создает звезду заданного цвета c центром в точке p, радиусом описанной окружности r и внутренним радиусом rinternal
|
|
|
|
constructor (p: Point; r,rinternal: real; n: integer; c: GColor) := Create(p.X,p.Y,r,rinternal,n,c);
|
|
|
|
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);
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
/// Создает звезду заданного цвета 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;
|
|
|
|
/// Радиус описанной окружности
|
|
|
|
/// Радиус описанной окружности
|
|
|
|
property Radius: real
|
|
|
|
property Radius: real
|
|
|
|
read InvokeReal(()->gr.Height/2)
|
|
|
|
read InvokeReal(()->gr.Height/2)
|
|
|
|
@ -926,17 +975,17 @@ type
|
|
|
|
read InvokeInteger(()->n)
|
|
|
|
read InvokeInteger(()->n)
|
|
|
|
write Invoke(Cnt,Value);
|
|
|
|
write Invoke(Cnt,Value);
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1): StarWPF
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black): StarWPF
|
|
|
|
:= inherited WithBorder(w) as StarWPF;
|
|
|
|
:= inherited SetBorder(w,c) as StarWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder: StarWPF
|
|
|
|
function RemoveBorder: StarWPF
|
|
|
|
:= inherited WithNoBorder as StarWPF;
|
|
|
|
:= inherited RemoveBorder as StarWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): StarWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): StarWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as StarWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as StarWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): StarWPF
|
|
|
|
function SetRotate(da: real): StarWPF
|
|
|
|
:= inherited WithRotate(da) as StarWPF;
|
|
|
|
:= inherited SetRotate(da) as StarWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
PointsArray = array of Point;
|
|
|
|
PointsArray = array of Point;
|
|
|
|
@ -970,6 +1019,8 @@ type
|
|
|
|
function Element := ob as System.Windows.Shapes.Polygon;
|
|
|
|
function Element := ob as System.Windows.Shapes.Polygon;
|
|
|
|
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp
|
|
|
|
/// Создает многоугольник заданного цвета с координатами вершин, заданными массивом точек pp
|
|
|
|
constructor (pp: array of Point; c: GColor) := Invoke(InitOb2,pp,c);
|
|
|
|
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;
|
|
|
|
/// Массив вершин
|
|
|
|
/// Массив вершин
|
|
|
|
property Points: array of Point
|
|
|
|
property Points: array of Point
|
|
|
|
read Invoke&<PointsArray>(GetPointsArrayP)
|
|
|
|
read Invoke&<PointsArray>(GetPointsArrayP)
|
|
|
|
@ -987,17 +1038,17 @@ type
|
|
|
|
Invoke(procedure -> ob1.Points := new PointCollection(a));
|
|
|
|
Invoke(procedure -> ob1.Points := new PointCollection(a));
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
/// Декоратор включения границы объекта
|
|
|
|
function WithBorder(w: real := -1): PolygonWPF
|
|
|
|
function SetBorder(w: real := 1; c: GColor := Colors.Black): PolygonWPF
|
|
|
|
:= inherited WithBorder(w) as PolygonWPF;
|
|
|
|
:= inherited SetBorder(w,c) as PolygonWPF;
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
/// Декоратор выключения границы объекта
|
|
|
|
function WithNoBorder: PolygonWPF
|
|
|
|
function RemoveBorder: PolygonWPF
|
|
|
|
:= inherited WithNoBorder as PolygonWPF;
|
|
|
|
:= inherited RemoveBorder as PolygonWPF;
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PolygonWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PolygonWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as PolygonWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as PolygonWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): PolygonWPF
|
|
|
|
function SetRotate(da: real): PolygonWPF
|
|
|
|
:= inherited WithRotate(da) as PolygonWPF;
|
|
|
|
:= inherited SetRotate(da) as PolygonWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -1043,10 +1094,10 @@ type
|
|
|
|
/// Создает рисунок из файла fname с координатой левого верхнего угла, заданной точкой p, и размерами (w,h)
|
|
|
|
/// Создает рисунок из файла fname с координатой левого верхнего угла, заданной точкой p, и размерами (w,h)
|
|
|
|
constructor (p: Point; w,h: real; fname: string) := Invoke(InitOb3,p.x,p.y,w,h,fname);
|
|
|
|
constructor (p: Point; w,h: real; fname: string) := Invoke(InitOb3,p.x,p.y,w,h,fname);
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
/// Декоратор текста объекта
|
|
|
|
function WithText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PictureWPF
|
|
|
|
function SetText(txt: string; size: real := 16; fontname: string := 'Arial'; c: GColor := Colors.Black): PictureWPF
|
|
|
|
:= inherited WithText(txt,size,fontname,c) as PictureWPF;
|
|
|
|
:= inherited SetText(txt,size,fontname,c) as PictureWPF;
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
/// Декоратор поворота объекта
|
|
|
|
function WithRotate(da: real): PictureWPF := inherited WithRotate(da) as PictureWPF;
|
|
|
|
function SetRotate(da: real): PictureWPF := inherited SetRotate(da) as PictureWPF;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------
|
|
|
|
// -----------------------------------------------------
|
|
|
|
@ -1117,7 +1168,7 @@ function Pnt(x,y: real) := new Point(x,y);
|
|
|
|
function Rect(x,y,w,h: real) := new System.Windows.Rect(x,y,w,h);
|
|
|
|
function Rect(x,y,w,h: real) := new System.Windows.Rect(x,y,w,h);
|
|
|
|
function ColorBrush(c: Color) := new SolidColorBrush(c);
|
|
|
|
function ColorBrush(c: Color) := new SolidColorBrush(c);
|
|
|
|
|
|
|
|
|
|
|
|
procedure Invoke(p: ()->()) := GraphWPFBase.Invoke(p);
|
|
|
|
procedure Redraw(p: ()->()) := GraphWPFBase.Invoke(p);
|
|
|
|
|
|
|
|
|
|
|
|
procedure SetLeft(Self: UIElement; l: integer) := Self.SetLeft(l);
|
|
|
|
procedure SetLeft(Self: UIElement; l: integer) := Self.SetLeft(l);
|
|
|
|
procedure SetTop(Self: UIElement; t: integer) := Self.SetTop(t);
|
|
|
|
procedure SetTop(Self: UIElement; t: integer) := Self.SetTop(t);
|
|
|
|
|