MathgeomGLS

Форк
0
/
fGridColors.pas 
307 строк · 9.4 Кб
1
unit fGridColors;
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
  uGlobal;
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
    { Private declarations }
86
  public
87
    procedure ShowGridColorData;
88
  end;
89

90
var
91
  GridColorsForm: TGridColorsForm;
92

93
//==================================================================
94
implementation
95
//==================================================================
96

97
uses
98
  fPlot3D;
99

100
{$R *.dfm}
101

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

307
end.
308

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

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

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

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