Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

Ошибка запуска

04.03.2018, 09:54. Показов 915. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему не работает когда подключаю модуль MaterialsAndProperties:
Pascal
1
2
3
4
uses BaseGraphicsSystem, MaterialsAndProperties;
begin
  (new TMaterialInfo(clBlack, TBrushStyleType.bsSolid, THatchStyle.BackwardDiagonal)).Println();
end.
?
Если код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
///Предоставляет данные аргументов событий.
unit Events;
 
type
  ///Главный класс аргументов событий.
  TEventArgs = class
  private
    _Description: string;
    
  public
    ///Описание события.
    property Description: string read _Description;
    
  internal
    constructor(description_: string := '');
    begin
      _Description := description_;
    end;
  
  public
    ///Возвращает строковое представление объекта TEventArgs.
    function ToString() := Format('TEventArgs: ({0})', _Description);
    ///Выводит на экран строковое представление объекта TEventArgs.
    procedure Print() := Write(ToString());
    ///Выводит на экран строковое представление объекта TEventArgs и переходит на новую строку.
    procedure Println() := Writeln(ToString());
  end;
  
type
  ///Кнопки мыши.
  TMouseButtonEnum = (NoneButton, LeftButton, MiddleButton, RightButton);
  ///Аргументы событий, связанных с курсором мыши.
  TMouseEventArgs = class(TEventArgs)
  private
    _X, _Y: integer;
    _Button: TMouseButtonEnum;
    _Moving: boolean;
  
  public
    ///X координата курсора во время наступления события.
    property X: integer read _X;
    ///Y координата курсора во время наступления события.
    property Y: integer read _Y;
    ///Нажатая кнопка мыши во время наступления события.
    property Button: TMouseButtonEnum read _Button;
    ///Указывает перемещение курсора.
    property Moving: boolean read _Moving;
    
  internal
    constructor(x_, y_: integer; button_: TMouseButtonEnum; moving_: boolean; description_: string := '');
    begin
      inherited Create(description_);
      (_X, _Y) := (x_, y_);
      _Button := button_;
      _Moving := moving_;
    end;
    
  public
    ///Возвращает строковое представление объекта TMouseEventArgs.
    function ToString() := Format('TMouseEventArgs: ({0}, {1}, {2}, {3})', _X, _Y, _Button, _Moving);
    ///Выводит на экран строковое представление объекта TMouseEventArgs.
    procedure Print() := Write(ToString());
    ///Выводит на экран строковое представление объекта TMouseEventArgs и переходит на новую строку.
    procedure Println() := Writeln(ToString());
  end;
  
type
  ///Состояния нажатия клавиш.
  TKeyboardActionEnum = (PressedKey, ReleasedKey);
  ///Аргументы событий, связанных с клавиатурой.
  TKeyboardEventArgs = class(TEventArgs)
  private
    _Code: integer;
    _PressedState: TKeyboardActionEnum;
    
  public
    ///Код нажатой клавиши во время наступления события.
    property Code: integer read _Code;
    ///Состояние нажатия клавиши во время наступления события.
    property PressedState: TKeyboardActionEnum read _PressedState;
  
  internal
    constructor(code_: integer; pressedState_: TKeyboardActionEnum; description_: string := '');
    begin
      inherited Create(description_);
      _Code := code_;
      _PressedState := pressedState_;
    end;
  
  public
    ///Возвращает строковое представление объекта TKeyboardEventArgs.
    function ToString() := Format('TKeyboardEventArgs: ({0}, {1})', _Code, _PressedState);
    ///Выводит на экран строковое представление объекта TKeyboardEventArgs.
    procedure Print() := Write(ToString());
    ///Выводит на экран строковое представление объекта TKeyboardEventArgs и переходит на новую строку.
    procedure Println() := Writeln(ToString());
  end;
  
type
  ///Событие изменения объекта TProperty<T>.
  TPropertyChangedEventArgs = class(TEventArgs)
  private
    _PropertyName: string;
  
  public
    ///Имя изменяемого игрового свойства.
    property PropertyName: string read _PropertyName;
    
  internal
    constructor(propertyName_: string; description_: string := '');
    begin
      inherited Create(description_);
      _PropertyName := propertyName_;
    end;
  
  public
    ///Возвращает строковое представление объекта TPropertyChangedEventArgs.
    function ToString() := Format('TPropertyChangedEventArgs: ({0})', _PropertyName);
    ///Выводит на экран строковое представление объекта TPropertyChangedEventArgs.
    procedure Print() := Write(ToString());
    ///Выводит на экран строковое представление объекта TPropertyChangedEventArgs и переходит на новую строку.
    procedure Println() := Writeln(ToString());
  end;
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
///Предоставляет базовые процедуры и функции для работы с графикой в игровом движке.
unit BaseGraphicsSystem;
uses GraphABC;
const
  //Цветовые константы
  clAquamarine = Color.Aquamarine;             clAzure = Color.Azure;                     
  clBeige = Color.Beige;                       clBisque = Color.Bisque;                   
  clBlack = Color.Black;                       clBlanchedAlmond = Color.BlanchedAlmond;   
  clBlue = Color.Blue;                         clBlueViolet = Color.BlueViolet;           
  clBrown = Color.Brown;                       clBurlyWood = Color.BurlyWood;             
  clCadetBlue = Color.CadetBlue;               clChartreuse = Color.Chartreuse;           
  clChocolate = Color.Chocolate;               clCoral = Color.Coral;                     
  clCornflowerBlue = Color.CornflowerBlue;     clCornsilk = Color.Cornsilk;               
  clCrimson = Color.Crimson;                   clCyan = Color.Cyan;                       
  clDarkBlue = Color.DarkBlue;                 clDarkCyan = Color.DarkCyan;               
  clDarkGoldenrod = Color.DarkGoldenrod;       clDarkGray = Color.DarkGray;               
  clDarkGreen = Color.DarkGreen;               clDarkKhaki = Color.DarkKhaki;             
  clDarkMagenta = Color.DarkMagenta;           clDarkOliveGreen = Color.DarkOliveGreen;   
  clDarkOrange = Color.DarkOrange;             clDarkOrchid = Color.DarkOrchid;           
  clDarkRed = Color.DarkRed;                   clDarkTurquoise = Color.DarkTurquoise;     
  clDarkSeaGreen = Color.DarkSeaGreen;         clDarkSlateBlue = Color.DarkSlateBlue;     
  clDarkSlateGray = Color.DarkSlateGray;       clDarkViolet = Color.DarkViolet;           
  clDeepPink = Color.DeepPink;                 clDarkSalmon = Color.DarkSalmon;           
  clDeepSkyBlue = Color.DeepSkyBlue;           clDimGray = Color.DimGray;                 
  clDodgerBlue = Color.DodgerBlue;             clFirebrick = Color.Firebrick;             
  clFloralWhite = Color.FloralWhite;           clForestGreen = Color.ForestGreen;         
  clFuchsia = Color.Fuchsia;                   clGainsboro = Color.Gainsboro;             
  clGhostWhite = Color.GhostWhite;             clGold = Color.Gold;                       
  clGoldenrod = Color.Goldenrod;               clGray = Color.Gray;                       
  clGreen = Color.Green;                       clGreenYellow = Color.GreenYellow;         
  clHoneydew = Color.Honeydew;                 clHotPink = Color.HotPink;                 
  clIndianRed = Color.IndianRed;               clIndigo = Color.Indigo;                   
  clIvory = Color.Ivory;                       clKhaki = Color.Khaki;                     
  clLavender = Color.Lavender;                 clLavenderBlush = Color.LavenderBlush;     
  clLawnGreen = Color.LawnGreen;               clLemonChiffon = Color.LemonChiffon;       
  clLightBlue = Color.LightBlue;               clLightCoral = Color.LightCoral;           
  clLightCyan = Color.LightCyan;               clLightGray = Color.LightGray;             
  clLightGreen = Color.LightGreen;             clLightGoldenrodYellow = Color.LightGoldenrodYellow;
  clLightPink = Color.LightPink;               clLightSalmon = Color.LightSalmon;         
  clLightSeaGreen = Color.LightSeaGreen;       clLightSkyBlue = Color.LightSkyBlue;       
  clLightSlateGray = Color.LightSlateGray;     clLightSteelBlue = Color.LightSteelBlue;   
  clLightYellow = Color.LightYellow;           clLime = Color.Lime;                       
  clLimeGreen = Color.LimeGreen;               clLinen = Color.Linen;                     
  clMagenta = Color.Magenta;                   clMaroon = Color.Maroon;                   
  clMediumBlue = Color.MediumBlue;             clMediumOrchid = Color.MediumOrchid;       
  clMediumAquamarine = Color.MediumAquamarine; clMediumPurple = Color.MediumPurple;       
  clMediumSeaGreen = Color.MediumSeaGreen;     clMediumSlateBlue = Color.MediumSlateBlue; 
  clPlum = Color.Plum;                         clMistyRose = Color.MistyRose;             
  clNavy = Color.Navy;                         clMidnightBlue = Color.MidnightBlue;       
  clMintCream = Color.MintCream;               clMediumSpringGreen = Color.MediumSpringGreen;
  clMoccasin = Color.Moccasin;                 clNavajoWhite = Color.NavajoWhite;         
  clMediumTurquoise = Color.MediumTurquoise;   clOldLace = Color.OldLace;                 
  clOlive = Color.Olive;                       clOliveDrab = Color.OliveDrab;             
  clOrange = Color.Orange;                     clOrangeRed = Color.OrangeRed;             
  clOrchid = Color.Orchid;                     clPaleGoldenrod = Color.PaleGoldenrod;     
  clPaleGreen = Color.PaleGreen;               clPaleTurquoise = Color.PaleTurquoise;     
  clPaleVioletRed = Color.PaleVioletRed;       clPapayaWhip = Color.PapayaWhip;           
  clPeachPuff = Color.PeachPuff;               clPeru = Color.Peru;                       
  clPink = Color.Pink;                         clMediumVioletRed = Color.MediumVioletRed; 
  clPowderBlue = Color.PowderBlue;             clPurple = Color.Purple;                   
  clRed = Color.Red;                           clRosyBrown = Color.RosyBrown;             
  clRoyalBlue = Color.RoyalBlue;               clSaddleBrown = Color.SaddleBrown;         
  clSalmon = Color.Salmon;                     clSandyBrown = Color.SandyBrown;           
  clSeaGreen = Color.SeaGreen;                 clSeaShell = Color.SeaShell;               
  clSienna = Color.Sienna;                     clSilver = Color.Silver;                   
  clSkyBlue = Color.SkyBlue;                   clSlateBlue = Color.SlateBlue;             
  clSlateGray = Color.SlateGray;               clSnow = Color.Snow;                       
  clSpringGreen = Color.SpringGreen;           clSteelBlue = Color.SteelBlue;             
  clTan = Color.Tan;                           clTeal = Color.Teal;                       
  clThistle = Color.Thistle;                   clTomato = Color.Tomato;                   
  clTransparent = Color.Transparent;           clTurquoise = Color.Turquoise;             
  clViolet = Color.Violet;                     clWheat = Color.Wheat;                     
  clWhite = Color.White;                       clWhiteSmoke = Color.WhiteSmoke;           
  clYellow = Color.Yellow;                     clYellowGreen = Color.YellowGreen;
  
  //Коды клавиш
  VK_Back = 8;              VK_Tab = 9;
  VK_LineFeed = 10;         VK_Enter = 13;
  VK_Return = 13;           VK_ShiftKey = 16;           VK_ControlKey = 17;
  VK_Menu = 18;             VK_Pause = 19;              VK_CapsLock = 20;
  VK_Capital = 20;
  VK_Escape = 27;
  VK_Space = 32;
  VK_Prior = 33;            VK_PageUp = 33;             VK_PageDown = 34;
  VK_Next = 34;             VK_End = 35;                VK_Home = 36;
  VK_Left = 37;             VK_Up = 38;                 VK_Right = 39;
  VK_Down = 40;             VK_Select = 41;             VK_Print = 42;
  VK_Snapshot = 44;         VK_PrintScreen = 44;
  VK_Insert = 45;           VK_Delete = 46;             VK_Help = 47;
  VK_A = 65;                VK_B = 66;
  VK_C = 67;                VK_D = 68;                  VK_E = 69;
  VK_F = 70;                VK_G = 71;                  VK_H = 72;
  VK_I = 73;                VK_J = 74;                  VK_K = 75;
  VK_L = 76;                VK_M = 77;                  VK_N = 78;
  VK_O = 79;                VK_P = 80;                  VK_Q = 81;
  VK_R = 82;                VK_S = 83;                  VK_T = 84;
  VK_U = 85;                VK_V = 86;                  VK_W = 87;
  VK_X = 88;                VK_Y = 89;                  VK_Z = 90;
  VK_LWin = 91;             VK_RWin = 92;               VK_Apps = 93;
  VK_Sleep = 95;            VK_NumPad0 = 96;            VK_NumPad1 = 97;
  VK_NumPad2 = 98;          VK_NumPad3 = 99;            VK_NumPad4 = 100;
  VK_NumPad5 = 101;         VK_NumPad6 = 102;           VK_NumPad7 = 103;
  VK_NumPad8 = 104;         VK_NumPad9 = 105;           VK_Multiply = 106;
  VK_Add = 107;             VK_Separator = 108;         VK_Subtract = 109;
  VK_Decimal = 110;         VK_Divide = 111;            VK_F1 = 112;
  VK_F2 = 113;              VK_F3 = 114;                VK_F4 = 115;
  VK_F5 = 116;              VK_F6 = 117;                VK_F7 = 118;
  VK_F8 = 119;              VK_F9 = 120;                VK_F10 = 121;
  VK_F11 = 122;             VK_F12 = 123;               VK_NumLock = 144;
  VK_Scroll = 145;          VK_LShiftKey = 160;         VK_RShiftKey = 161;
  VK_LControlKey = 162;     VK_RControlKey = 163;       VK_LMenu = 164;
  VK_RMenu = 165;           
  VK_KeyCode = 65535;       VK_Shift = 65536;           VK_Control = 131072;
  VK_Alt = 262144;          VK_Modifiers = -65536;
  
type
  ///Тип цвета.
  TColor = Color;
  ///Тип точки.
  TPoint = Point;
  ///Тип рисунка.
  TPicture = Picture;
  ///Тип массива точек.
  TPointArray = array of TPoint;
  ///Тип пера
  TPen = GraphABCPen;
  ///Тип кисти
  TBrush = GraphABCBrush;
  ///Тип кисти
  TFont = GraphABCFont;
  ///Стили кисти.
  TBrushStyleType = BrushStyleType;
  ///Тип штриховки кисти.
  THatchStyle = HatchStyle;
 
///Возвращает текущее перо.
function GetPen() := Pen();
///Возвращает текущую кисть.
function GetBrush() := Brush();
 
///Центрирует окно.
procedure SetCenterOnScreen() := Window.CenterOnScreen();
///Получает центр окна.
procedure GetWindowCenter() := WindowCenter();
 
///Устанавливает заголовок окна.
procedure SetWindowCaption(obj: object) := SetWindowCaption(obj.ToString());
///Получает заголовок окна.
procedure GetWindowCaption() := WindowCaption();
 
///Устанавливает смещение окна.
procedure SetWindowPosition(p: TPoint) := SetWindowPos(p.X, p.Y);
///Получает смещение окна.
procedure GetWindowPosition(p: TPoint) := new TPoint(WindowLeft(), WindowTop());
 
///Максимизирует графическое окно.
procedure Maximize() := Window.Maximize();
 ///Миниммизирует графическое окно.
procedure Minimize() := Window.Minimize();
  
//---------------------------------------------------------------------------
procedure SetPixel(x, y: real; c: TColor) := SetPixel(Round(x), Round(y), c);
 
procedure PutPixel(x, y: real; c: TColor) := SetPixel(x, y, c);
 
function GetPixel(x, y: real): TColor := GetPixel(Round(x), Round(y));
 
//---------------------------------------------------------------------------
procedure MoveTo(x, y: real) := MoveTo(Round(x), Round(y));
 
procedure LineTo(x,y: real) := LineTo(Round(x), Round(y));
 
procedure LineTo(x, y: real; c: TColor) := LineTo(Round(x), Round(y), c);
 
//---------------------------------------------------------------------------
procedure Line(x1, y1, x2, y2: real) := Line(Round(x1), Round(y1), Round(x2), Round(y2));
 
procedure Line(x1, y1, x2, y2: real; c: TColor) := Line(Round(x1), Round(y1), Round(x2), Round(y2), c);
 
procedure FillCircle(x, y, r: real) := FillCircle(Round(x), Round(y), Round(r));
 
procedure DrawCircle(x, y, r: real) := FillCircle(Round(x), Round(y), Round(r));
 
procedure FillEllipse(x1, y1, x2, y2: real) := FillEllipse(Round(x1), Round(y1), Round(x2), Round(y2));
 
procedure DrawEllipse(x1, y1, x2, y2: real) := DrawEllipse(Round(x1), Round(y1), Round(x2), Round(y2));
 
procedure FillRectangle(x1, y1, x2, y2: real) := FillRectangle(Round(x1), Round(y1), Round(x2), Round(y2));
 
procedure DrawRectangle(x1, y1, x2, y2: real) := DrawRectangle(Round(x1), Round(y1), Round(x2), Round(y2));
 
procedure FillRoundRect(x1, y1, x2, y2, w, h: real) := FillRoundRect(Round(x1), Round(y1), Round(x2), Round(y2), Round(w), Round(h));
 
procedure DrawRoundRect(x1, y1, x2, y2, w, h: real) := DrawRoundRect(Round(x1), Round(y1), Round(x2), Round(y2), Round(w), Round(h));
 
procedure Arc(x, y, r, a1, a2: real) := Arc(Round(x), Round(y), Round(r), Round(a1), Round(a2));
 
procedure FillPie(x, y, r, a1, a2: real) := FillPie(Round(x), Round(y), Round(r), Round(a1), Round(a2));
 
procedure DrawPie(x, y, r, a1, a2: real) := DrawPie(Round(x), Round(y), Round(r), Round(a1), Round(a2));
 
procedure Pie(x, y, r, a1, a2: real) := Pie(Round(x), Round(y), Round(r), Round(a1), Round(a2));
 
procedure TextOut<T>(x, y: real; obj: object) := TextOut(Round(x), Round(y), obj.ToString());
 
procedure DrawTextCentered<T>(x1, y1, x2, y2: real; obj: T) := DrawTextCentered(Round(x1), Round(y1), Round(x2), Round(y2), obj.ToString());
 
procedure FloodFill(x, y: real; c: TColor) := FloodFill(Round(x), Round(y), c);
 
//---------------------------------------------------------------------------
procedure Circle(x, y, r: real) := Circle(Round(x), Round(y), Round(r));
 
procedure Ellipse(x1, y1, x2, y2: real) := Ellipse(Round(x1), Round(y1), Round(x2), Round(y2));
 
procedure Rectangle(x1, y1, x2, y2: real) := Rectangle(Round(x1), Round(y1), Round(x2), Round(y2));
 
procedure RoundRectangle(x1, y1, x2, y2, w, h: real) := RoundRect(Round(x1), Round(y1), Round(x2), Round(y2), Round(w), Round(h));
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
///Предоставляет материалы и изменяемые свойства для сущностей движка.
unit MaterialsAndProperties;
uses System;
uses Events, BaseGraphicsSystem;
const
  GamePropertyDefaultDescription = 'game property';
  GamePropertyDefaultColor = clBlack;
  
type
  ///Обработчик события OnChange объекта TProperty<T>.
  TPropertyChangedEventHandler<TObject> = procedure(sender: TObject; e: TPropertyChangedEventArgs);
  ///Игровое свойство.
  TProperty<T> = class(IEquatable<TProperty<T>>)
  public
    ///Событие изменения значения свойства.
    event OnChange: TPropertyChangedEventHandler<TProperty<T>>;
  
  private
    _Value: T;
    _IsReadOnly: boolean;
    _Name, _Description: string;
  
  procedure SetValue(v: T);
  begin
    if _IsReadOnly then
      raise new Exception('Попытка записи значения в read-only свойство.');
    if OnChange <> nil then
      OnChange(self, new TPropertyChangedEventArgs(_Name, _Description));
    _Value := v;
  end;
  
  public
    ///Значение.
    property Value: T read _Value write SetValue;
    ///Является ли игровое свойство read-only свойством.
    property IsReadOnly: boolean read _IsReadOnly;
    ///Имя.
    property Name: string read _Name;
    ///Описание.
    property Description: string read _Description;
  
  internal
    constructor(value_: T; isReadOnly_: boolean; name_, description_: string);
    begin
      Value := value_;
      _IsReadOnly := isReadOnly_;
      (_Name, _Description) := (name_, description_);
    end;
  
  public
    ///Определяет равенство объектов TProperty<T>.
    function Equals(gameProperty: TProperty<T>) := _Value = gameProperty.Value;
    
    ///Клонирует объект TProperty<T>.
    function CloneAs() := new TProperty<T>(_Value, _IsReadOnly, _Name, _Description);
    
    ///Возвращает строковое представление объекта TProperty<T>.
    function ToString() := Format('TProperty<T>: ({0}, {1}, {2})', _Value, _Name, _Description);
    ///Выводит на экран строковое представление объекта TProperty<T>.
    procedure Print() := Write(ToString());
    ///Выводит на экран строковое представление объекта TProperty<T> и переходит на новую строку.
    procedure Println() := Writeln(ToString());
  end;
  
type
  ///Изменяемое свойство типа integer.
  TIntegerProperty = TProperty<integer>;
  ///Изменяемое свойство типа int64.
  TInt64Property = TProperty<int64>;
  ///Изменяемое свойство типа real.
  TRealProperty = TProperty<real>;
  ///Изменяемое свойство типа boolean.
  TBooleanProperty = TProperty<boolean>;
  ///Изменяемое свойство типа string.
  TStringProperty = TProperty<string>;
  ///Изменяемое свойство типа TColor.
  TColorProperty = TProperty<TColor>;
  ///Изменяемое свойство типа TPoint.
  TPointProperty = TProperty<TPoint>;
  ///Изменяемое свойство типа TBrushStyleType.
  TBrushStyleTypeProperty = TProperty<TBrushStyleType>;
  ///Изменяемое свойство типа THatchStyle.
  THatchStyleProperty = TProperty<THatchStyle>;
 
///Создает свойство из value.
function FromInteger(value: integer) := new TIntegerProperty(value, false, GamePropertyDefaultDescription, 'integer');
///Создает свойство из value.
function FromInt64(value: int64) := new TInt64Property(value, false, GamePropertyDefaultDescription, 'int64');
///Создает свойство из value.
function FromReal(value: real) := new TRealProperty(value, false, GamePropertyDefaultDescription, 'real');
///Создает свойство из value.
function FromString(value: string) := new TStringProperty(value, false, GamePropertyDefaultDescription, 'string');
 
type
  ///Тип материала.
  ///[Взаимодействует с: GraphABC.GraphABCBrush.
  /// Предназначен для управления стилем заливки фигур.
  /// Для управления контуром заливки используйте свойство объекта.]
  TMaterialInfo = class(IEquatable<TMaterialInfo>, ICloneable)
  private
    _Color: TColorProperty;
    _BrushStyleType: TBrushStyleTypeProperty;
    _HatchStyle: THatchStyleProperty;
  
  public
    ///Цвет материала.
    property Color: TColorProperty read _Color write _Color;
    ///Тип стиля кисти.
    property BrushStyleType: TBrushStyleTypeProperty read _BrushStyleType write _BrushStyleType;
    ///Тип штриховки кисти.
    property HatchStyle: THatchStyleProperty read _HatchStyle write _HatchStyle;
    
    constructor(color_: TColor; brushStyleType_: TBrushStyleType; hatchStyle_: THatchStyle);
    begin
      Color := new TColorProperty(color_, false, 'Color', 'Цвет материала');
      BrushStyleType := new TBrushStyleTypeProperty(brushStyleType_, false, 'BrushStyleType', 'Стиль кисти материала');
      HatchStyle := new THatchStyleProperty(hatchStyle_, false, 'HatchStyle', 'Стиль штриховки кисти');
    end;
    
    constructor();
    begin
      Create(GamePropertyDefaultColor, TBrushStyleType.bsSolid, THatchStyle.BackwardDiagonal);
    end;
    
    constructor(color_: TColorProperty; brushStyleType_: TBrushStyleTypeProperty; hatchStyle_: THatchStyleProperty);
    begin
      Color := color_;
      BrushStyleType := brushStyleType_;
      HatchStyle := hatchStyle_;
    end;
    
    
    ///Определяет равенство объектов TMaterialInfo.
    function Equals(matInfo: TMaterialInfo) := _Color.Equals(matInfo.Color) and _BrushStyleType.Equals(matInfo.BrushStyleType) and _HatchStyle.Equals(matInfo.HatchStyle);
    
    ///Клонирует объект TMaterialInfo.
    function Clone(): object := new TMaterialInfo(_Color.CloneAs(), _BrushStyleType.CloneAs(), _HatchStyle.CloneAs());
    ///Клонирует объект TMaterialInfo.
    function CloneAs() := TMaterialInfo(Clone());
    
    ///Возвращает строковое представление объекта TMaterialInfo.
    function ToString() := Format('TMaterialInfo: ({0}, {1}, {2})', _Color.ToString(), _BrushStyleType.ToString(), _HatchStyle.ToString());
    ///Выводит на экран строковое представление объекта TMaterialInfo.
    procedure Print() := Write(ToString());
    ///Выводит на экран строковое представление объекта TMaterialInfo и переходит на новую строку.
    procedure Println() := Writeln(ToString());
    
  internal
    ///Применяет настройки материала.
    procedure ApplyMaterial();
    begin
      GetBrush().Color := _Color.Value;
      GetBrush().Style := _BrushStyleType.Value;
      GetBrush().Hatch := _HatchStyle.Value;
    end;
  end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2018, 09:54
Ответы с готовыми решениями:

Ошибка после запуска программы
Выдает вот такую ошибку, что это может быть ? читал , ничего такого нет

Ошибка во время запуска диалогового окна
НЕзнаю почему так.Непонимаю как исправить. Пишет ошибку во время запуска диалоговыого окна вот...

OnMouseDown, OnMouseMove-во время запуска при движении мышкой (или нажатия) над окном вылетает ошибка
Пытаюсь что-то сделать с графикой в Pabc.net: Сделал для пробы программу-эмулятор жизни клеток...

Ошибка запуска Eclipse. Исчезает ехе файл запуска
Привет всем :P Изучаю С++ на Eclipse. Создал проект Hello World. Нажимаю Run - все хорошо. ...

1
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
04.03.2018, 10:07  [ТС] 2
Текст ошибки:
System.ComponentModel.Win32Exception (0x80004005): Указанный исполняемый файл не является действительным приложением для этой операционной системы.
в System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
в VisualPascalABC.Utils.ProcessRunner.Start(String command, String arguments, Boolean redirectIO, Boolean redirectErrors, Boolean RunWithPause, Boolean attachDebugger, Boolean fictive_attach)
в VisualPascalABC.RunManager.Run(String fileName, String args, Boolean redirectIO, Boolean redirectErrors, Boolean RunWithPause, String WorkingDirectory, Boolean attachDebugger, Boolean fictive_attach)
в VisualPascalABC.WorkbenchRunService.Run(ICodeFileDocument tabPage, Boolean forDebugging, Boolean startWithGoto, Boolean needFirstBreakpoint)
в VisualPascalABC.WorkbenchRunService.Run(Boolean Debug)
в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ToolStrip.WndProc(Message& m)
в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
0
04.03.2018, 10:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2018, 10:07
Помогаю со студенческими работами здесь

Ошибка запуска
Доброго времени суток! При запуске при установке windows xp, возникает ошибка. У меня UEFI нет...

Ошибка запуска
Народ выручайте, не знаю что делать переустановка винды не катит нужны адекватные варианты, срочно...

Ошибка запуска
Всем hello!!! У мя токая проблема: вкл свой рабочий ПК решил запустить документ и вылетила ошибка...

Ошибка запуска
В общем следующая проблема. Не могу запустить консоль потому что сразу вылазит ошибка как на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru