MathgeomGLS

Форк
0
/
faGridColors.pas 
306 строк · 9.7 Кб
1
unit faGridColors;
2

3
interface
4

5
uses
6
  Winapi.Windows,
7
  Winapi.Messages,
8
  System.SysUtils,
9
  System.Variants,
10
  System.Classes,
11
  System.UITypes,
12
  Vcl.Graphics,
13
  Vcl.Controls,
14
  Vcl.Forms,
15
  Vcl.Dialogs,
16
  Vcl.ComCtrls,
17
  Vcl.StdCtrls,
18
  Vcl.Buttons,
19

20
  Graf.Global2d;
21

22
type
23
  TGridColorsForm = class(TForm)
24
    GroupBox1: TGroupBox;
25
    Label1: TLabel;
26
    Label2: TLabel;
27
    Label3: TLabel;
28
    Label4: TLabel;
29
    xyRed: TTrackBar;
30
    xyGreen: TTrackBar;
31
    xyBlue: TTrackBar;
32
    xyAlpha: TTrackBar;
33
    GroupBox2: TGroupBox;
34
    Label5: TLabel;
35
    Label6: TLabel;
36
    Label7: TLabel;
37
    Label8: TLabel;
38
    xzRed: TTrackBar;
39
    xzGreen: TTrackBar;
40
    xzBlue: TTrackBar;
41
    xzAlpha: TTrackBar;
42
    GroupBox3: TGroupBox;
43
    Label9: TLabel;
44
    Label10: TLabel;
45
    Label11: TLabel;
46
    Label12: TLabel;
47
    yzRed: TTrackBar;
48
    yzGreen: TTrackBar;
49
    yzBlue: TTrackBar;
50
    yzAlpha: TTrackBar;
51
    GroupBox4: TGroupBox;
52
    Label13: TLabel;
53
    Label14: TLabel;
54
    Label15: TLabel;
55
    Label16: TLabel;
56
    BoxRed: TTrackBar;
57
    BoxGreen: TTrackBar;
58
    BoxBlue: TTrackBar;
59
    BoxAlpha: TTrackBar;
60
    BackColorBtn: TSpeedButton;
61
    BitBtn1: TBitBtn;
62
    ColorDialog: TColorDialog;
63
    procedure FormShow(Sender: TObject);
64
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
65
    procedure xyRedChange(Sender: TObject);
66
    procedure xyGreenChange(Sender: TObject);
67
    procedure xyBlueChange(Sender: TObject);
68
    procedure xyAlphaChange(Sender: TObject);
69
    procedure xzRedChange(Sender: TObject);
70
    procedure xzGreenChange(Sender: TObject);
71
    procedure xzBlueChange(Sender: TObject);
72
    procedure xzAlphaChange(Sender: TObject);
73
    procedure yzRedChange(Sender: TObject);
74
    procedure yzGreenChange(Sender: TObject);
75
    procedure yzBlueChange(Sender: TObject);
76
    procedure yzAlphaChange(Sender: TObject);
77
    procedure BitBtn1Click(Sender: TObject);
78
    procedure BackColorBtnClick(Sender: TObject);
79
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
80
    procedure BoxRedChange(Sender: TObject);
81
    procedure BoxGreenChange(Sender: TObject);
82
    procedure BoxBlueChange(Sender: TObject);
83
    procedure BoxAlphaChange(Sender: TObject);
84
  private
85
  public
86
    procedure ShowGridColorData;
87
  end;
88

89
var
90
  GridColorsForm: TGridColorsForm;
91

92
//==================================================================
93
implementation
94
//==================================================================
95

96
uses
97
  faGraf2d;
98

99
{$R *.dfm}
100

101
procedure TGridColorsForm.BackColorBtnClick(Sender: TObject);
102
begin
103
  ColorDialog.Color := ViewData.BackColor;
104
  if ColorDialog.Execute then
105
  begin
106
    ViewData.BackColor := ColorDialog.Color;
107
    FormPlotStars.GLSViewer.Buffer.BackgroundColor := Viewdata.BackColor;
108
    Altered := True;
109
  end;
110
end;
111

112
procedure TGridColorsForm.BitBtn1Click(Sender: TObject);
113
begin
114
  Close;
115
end;
116

117
procedure TGridColorsForm.FormCloseQuery(Sender: TObject;
118
                                   var CanClose: Boolean);
119
begin
120
  if GridColorsAltered then
121
  begin
122
    case MessageDlg('The current graph''s color data has been altered.'+
123
              #13#10'Do you wish to save the alterations ?', mtConfirmation,
124
                    [mbYes, mbNo, mbCancel], 0) of
125
    mrYes: Altered := Altered or GridColorsAltered;
126
 mrCancel: begin
127
             CanClose := False;
128
             Exit;
129
           end;
130
    end;
131
  end;
132
end;
133

134
procedure TGridColorsForm.FormKeyDown(Sender: TObject; var Key: Word;
135
                                       Shift: TShiftState);
136
begin
137
  if Key = VK_ESCAPE then Close;
138
end;
139

140
procedure TGridColorsForm.FormShow(Sender: TObject);
141
begin
142
  ShowGridColorData;
143
  GridColorsAltered := False;
144
end;
145

146
procedure TGridColorsForm.xyRedChange(Sender: TObject);
147
begin
148
  FormPlotStars.GLxyGrid.LineColor.Red := xyRed.Position/255;
149
  ViewData.xyGrid.Color.X := FormPlotStars.GLxyGrid.LineColor.Red;
150
  GridColorsAltered := True;
151
end;    { TGridColorsForm.xyRedChange }
152

153
procedure TGridColorsForm.xyGreenChange(Sender: TObject);
154
begin
155
  FormPlotStars.GLxyGrid.LineColor.Green := xyGreen.Position/255;
156
  ViewData.xyGrid.Color.Y := FormPlotStars.GLxyGrid.LineColor.Green;
157
  GridColorsAltered := True;
158
end;    { TGridColorsForm.xyGreenChange }
159

160
procedure TGridColorsForm.xyBlueChange(Sender: TObject);
161
begin
162
  FormPlotStars.GLxyGrid.LineColor.Blue := xyBlue.Position/255;
163
  ViewData.xyGrid.Color.Z := FormPlotStars.GLxyGrid.LineColor.Blue;
164
  GridColorsAltered := True;
165
end;    { TGridColorsForm.xyBlueChange }
166

167
procedure TGridColorsForm.xyAlphaChange(Sender: TObject);
168
begin
169
  FormPlotStars.GLxyGrid.LineColor.Alpha := xyAlpha.Position/1000;
170
  ViewData.xyGrid.Color.W := FormPlotStars.GLxyGrid.LineColor.Alpha;
171
  GridColorsAltered := True;
172
end;    { TGridColorsForm.xyAlphaChange }
173

174
procedure TGridColorsForm.xzRedChange(Sender: TObject);
175
begin
176
  FormPlotStars.GLxzGrid.LineColor.Red := xzRed.Position/255;
177
  ViewData.xzGrid.Color.X := FormPlotStars.GLxzGrid.LineColor.Red;
178
  GridColorsAltered := True;
179
end;    { TGridColorsForm.xzRedChange }
180

181
procedure TGridColorsForm.xzGreenChange(Sender: TObject);
182
begin
183
  FormPlotStars.GLxzGrid.LineColor.Green := xzGreen.Position/255;
184
  ViewData.xzGrid.Color.Y := FormPlotStars.GLxzGrid.LineColor.Green;
185
  GridColorsAltered := True;
186
end;    { TGridColorsForm.xzGreenChange }
187

188
procedure TGridColorsForm.xzBlueChange(Sender: TObject);
189
begin
190
  FormPlotStars.GLxzGrid.LineColor.Blue := xzBlue.Position/255;
191
  ViewData.xzGrid.Color.Z := FormPlotStars.GLxzGrid.LineColor.Blue;
192
  GridColorsAltered := True;
193
end;    { TGridColorsForm.xzBlueChange }
194

195
procedure TGridColorsForm.xzAlphaChange(Sender: TObject);
196
begin
197
  FormPlotStars.GLxzGrid.LineColor.Alpha := xzAlpha.Position/1000;
198
  ViewData.xzGrid.Color.W := FormPlotStars.GLxzGrid.LineColor.Alpha;
199
  GridColorsAltered := True;
200
end;    { TGridColorsForm.xzAlphaChange }
201

202
procedure TGridColorsForm.yzRedChange(Sender: TObject);
203
begin
204
  FormPlotStars.GLyzGrid.LineColor.Red := yzRed.Position/255;
205
  ViewData.yzGrid.Color.X := FormPlotStars.GLyzGrid.LineColor.Red;
206
  GridColorsAltered := True;
207
end;    { TGridColorsForm.yzRedChange }
208

209
procedure TGridColorsForm.yzGreenChange(Sender: TObject);
210
begin
211
  FormPlotStars.GLyzGrid.LineColor.Green := yzGreen.Position/255;
212
  ViewData.yzGrid.Color.Y := FormPlotStars.GLyzGrid.LineColor.Green;
213
  GridColorsAltered := True;
214
end;    { TGridColorsForm.yzGreenChange }
215

216
procedure TGridColorsForm.yzBlueChange(Sender: TObject);
217
begin
218
  FormPlotStars.GLyzGrid.LineColor.Blue := yzBlue.Position/255;
219
  ViewData.yzGrid.Color.Z := FormPlotStars.GLyzGrid.LineColor.Blue;
220
  GridColorsAltered := True;
221
end;    { TGridColorsForm.yzBlueChange }
222

223
procedure TGridColorsForm.yzAlphaChange(Sender: TObject);
224
begin
225
  FormPlotStars.GLyzGrid.LineColor.Alpha := yzAlpha.Position/1000;
226
  ViewData.yzGrid.Color.W := FormPlotStars.GLyzGrid.LineColor.Alpha;
227
  GridColorsAltered := True;
228
end;    { TGridColorsForm.yzAlphaChange }
229

230
procedure TGridColorsForm.BoxRedChange(Sender: TObject);
231
begin
232
  FormPlotStars.BoxLine1.LineColor.Red := BoxRed.Position/255;
233
  FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
234
  FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
235
  FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
236
  ViewData.BoxLnColor.X := FormPlotStars.BoxLine1.LineColor.Red;
237
  GridColorsAltered := True;
238
end;    { TGridColorsForm.BoxRedChange }
239

240
procedure TGridColorsForm.BoxGreenChange(Sender: TObject);
241
begin
242
  FormPlotStars.BoxLine1.LineColor.Green := BoxGreen.Position/255;
243
  FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
244
  FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
245
  FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
246
  ViewData.BoxLnColor.Y := FormPlotStars.BoxLine1.LineColor.Green;
247
  GridColorsAltered := True;
248
end;    { TGridColorsForm.BoxGreenChange }
249

250
procedure TGridColorsForm.BoxBlueChange(Sender: TObject);
251
begin
252
  FormPlotStars.BoxLine1.LineColor.Blue := BoxBlue.Position/255;
253
  FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
254
  FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
255
  FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
256
  ViewData.BoxLnColor.Z := FormPlotStars.BoxLine1.LineColor.Blue;
257
  GridColorsAltered := True;
258
end;    { TGridColorsForm.BoxBlueChange }
259

260
procedure TGridColorsForm.BoxAlphaChange(Sender: TObject);
261
begin
262
  FormPlotStars.BoxLine1.LineColor.Alpha := BoxAlpha.Position/1000;
263
  ViewData.BoxLnColor.W := FormPlotStars.BoxLine1.LineColor.Alpha;
264
  FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
265
  FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
266
  FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
267
  GridColorsAltered := True;
268
end;    { TGridColorsForm.BoxAlphaChange }
269

270
    { Public declarations }
271
procedure TGridColorsForm.ShowGridColorData;
272
begin
273
  Caption := GraphFName;
274
  GridColorsAltered := False;
275

276
  with FormPlotStars.GLxyGrid.LineColor do
277
  begin
278
    xyRed.Position := round(Red*255);
279
    xyGreen.Position := round(Green*255);
280
    xyBlue.Position := round(Blue*255);
281
    xyAlpha.Position := round(Alpha*1000);
282
  end;
283
  with FormPlotStars.GLxzGrid.LineColor do
284
  begin
285
    xzRed.Position := round(Red*255);
286
    xzGreen.Position := round(Green*255);
287
    xzBlue.Position := round(Blue*255);
288
    xzAlpha.Position := round(Alpha*1000);
289
  end;
290
  with FormPlotStars.GLyzGrid.LineColor do
291
  begin
292
    yzRed.Position := round(Red*255);
293
    yzGreen.Position := round(Green*255);
294
    yzBlue.Position := round(Blue*255);
295
    yzAlpha.Position := round(Alpha*1000);
296
  end;
297
  with FormPlotStars do
298
  begin
299
    BoxRed.Position := round(BoxLine1.LineColor.Red*255);
300
    BoxGreen.Position := round(BoxLine1.LineColor.Green*255);
301
    BoxBlue.Position := round(BoxLine1.LineColor.Blue*255);
302
    BoxAlpha.Position := round(BoxLine1.LineColor.Alpha*1000);
303
  end;
304
end;
305

306
end.
307

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.