MathgeomGLS
306 строк · 9.7 Кб
1unit faGridColors;
2
3interface
4
5uses
6Winapi.Windows,
7Winapi.Messages,
8System.SysUtils,
9System.Variants,
10System.Classes,
11System.UITypes,
12Vcl.Graphics,
13Vcl.Controls,
14Vcl.Forms,
15Vcl.Dialogs,
16Vcl.ComCtrls,
17Vcl.StdCtrls,
18Vcl.Buttons,
19
20Graf.Global2d;
21
22type
23TGridColorsForm = class(TForm)
24GroupBox1: TGroupBox;
25Label1: TLabel;
26Label2: TLabel;
27Label3: TLabel;
28Label4: TLabel;
29xyRed: TTrackBar;
30xyGreen: TTrackBar;
31xyBlue: TTrackBar;
32xyAlpha: TTrackBar;
33GroupBox2: TGroupBox;
34Label5: TLabel;
35Label6: TLabel;
36Label7: TLabel;
37Label8: TLabel;
38xzRed: TTrackBar;
39xzGreen: TTrackBar;
40xzBlue: TTrackBar;
41xzAlpha: TTrackBar;
42GroupBox3: TGroupBox;
43Label9: TLabel;
44Label10: TLabel;
45Label11: TLabel;
46Label12: TLabel;
47yzRed: TTrackBar;
48yzGreen: TTrackBar;
49yzBlue: TTrackBar;
50yzAlpha: TTrackBar;
51GroupBox4: TGroupBox;
52Label13: TLabel;
53Label14: TLabel;
54Label15: TLabel;
55Label16: TLabel;
56BoxRed: TTrackBar;
57BoxGreen: TTrackBar;
58BoxBlue: TTrackBar;
59BoxAlpha: TTrackBar;
60BackColorBtn: TSpeedButton;
61BitBtn1: TBitBtn;
62ColorDialog: TColorDialog;
63procedure FormShow(Sender: TObject);
64procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
65procedure xyRedChange(Sender: TObject);
66procedure xyGreenChange(Sender: TObject);
67procedure xyBlueChange(Sender: TObject);
68procedure xyAlphaChange(Sender: TObject);
69procedure xzRedChange(Sender: TObject);
70procedure xzGreenChange(Sender: TObject);
71procedure xzBlueChange(Sender: TObject);
72procedure xzAlphaChange(Sender: TObject);
73procedure yzRedChange(Sender: TObject);
74procedure yzGreenChange(Sender: TObject);
75procedure yzBlueChange(Sender: TObject);
76procedure yzAlphaChange(Sender: TObject);
77procedure BitBtn1Click(Sender: TObject);
78procedure BackColorBtnClick(Sender: TObject);
79procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
80procedure BoxRedChange(Sender: TObject);
81procedure BoxGreenChange(Sender: TObject);
82procedure BoxBlueChange(Sender: TObject);
83procedure BoxAlphaChange(Sender: TObject);
84private
85public
86procedure ShowGridColorData;
87end;
88
89var
90GridColorsForm: TGridColorsForm;
91
92//==================================================================
93implementation
94//==================================================================
95
96uses
97faGraf2d;
98
99{$R *.dfm}
100
101procedure TGridColorsForm.BackColorBtnClick(Sender: TObject);
102begin
103ColorDialog.Color := ViewData.BackColor;
104if ColorDialog.Execute then
105begin
106ViewData.BackColor := ColorDialog.Color;
107FormPlotStars.GLSViewer.Buffer.BackgroundColor := Viewdata.BackColor;
108Altered := True;
109end;
110end;
111
112procedure TGridColorsForm.BitBtn1Click(Sender: TObject);
113begin
114Close;
115end;
116
117procedure TGridColorsForm.FormCloseQuery(Sender: TObject;
118var CanClose: Boolean);
119begin
120if GridColorsAltered then
121begin
122case 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
125mrYes: Altered := Altered or GridColorsAltered;
126mrCancel: begin
127CanClose := False;
128Exit;
129end;
130end;
131end;
132end;
133
134procedure TGridColorsForm.FormKeyDown(Sender: TObject; var Key: Word;
135Shift: TShiftState);
136begin
137if Key = VK_ESCAPE then Close;
138end;
139
140procedure TGridColorsForm.FormShow(Sender: TObject);
141begin
142ShowGridColorData;
143GridColorsAltered := False;
144end;
145
146procedure TGridColorsForm.xyRedChange(Sender: TObject);
147begin
148FormPlotStars.GLxyGrid.LineColor.Red := xyRed.Position/255;
149ViewData.xyGrid.Color.X := FormPlotStars.GLxyGrid.LineColor.Red;
150GridColorsAltered := True;
151end; { TGridColorsForm.xyRedChange }
152
153procedure TGridColorsForm.xyGreenChange(Sender: TObject);
154begin
155FormPlotStars.GLxyGrid.LineColor.Green := xyGreen.Position/255;
156ViewData.xyGrid.Color.Y := FormPlotStars.GLxyGrid.LineColor.Green;
157GridColorsAltered := True;
158end; { TGridColorsForm.xyGreenChange }
159
160procedure TGridColorsForm.xyBlueChange(Sender: TObject);
161begin
162FormPlotStars.GLxyGrid.LineColor.Blue := xyBlue.Position/255;
163ViewData.xyGrid.Color.Z := FormPlotStars.GLxyGrid.LineColor.Blue;
164GridColorsAltered := True;
165end; { TGridColorsForm.xyBlueChange }
166
167procedure TGridColorsForm.xyAlphaChange(Sender: TObject);
168begin
169FormPlotStars.GLxyGrid.LineColor.Alpha := xyAlpha.Position/1000;
170ViewData.xyGrid.Color.W := FormPlotStars.GLxyGrid.LineColor.Alpha;
171GridColorsAltered := True;
172end; { TGridColorsForm.xyAlphaChange }
173
174procedure TGridColorsForm.xzRedChange(Sender: TObject);
175begin
176FormPlotStars.GLxzGrid.LineColor.Red := xzRed.Position/255;
177ViewData.xzGrid.Color.X := FormPlotStars.GLxzGrid.LineColor.Red;
178GridColorsAltered := True;
179end; { TGridColorsForm.xzRedChange }
180
181procedure TGridColorsForm.xzGreenChange(Sender: TObject);
182begin
183FormPlotStars.GLxzGrid.LineColor.Green := xzGreen.Position/255;
184ViewData.xzGrid.Color.Y := FormPlotStars.GLxzGrid.LineColor.Green;
185GridColorsAltered := True;
186end; { TGridColorsForm.xzGreenChange }
187
188procedure TGridColorsForm.xzBlueChange(Sender: TObject);
189begin
190FormPlotStars.GLxzGrid.LineColor.Blue := xzBlue.Position/255;
191ViewData.xzGrid.Color.Z := FormPlotStars.GLxzGrid.LineColor.Blue;
192GridColorsAltered := True;
193end; { TGridColorsForm.xzBlueChange }
194
195procedure TGridColorsForm.xzAlphaChange(Sender: TObject);
196begin
197FormPlotStars.GLxzGrid.LineColor.Alpha := xzAlpha.Position/1000;
198ViewData.xzGrid.Color.W := FormPlotStars.GLxzGrid.LineColor.Alpha;
199GridColorsAltered := True;
200end; { TGridColorsForm.xzAlphaChange }
201
202procedure TGridColorsForm.yzRedChange(Sender: TObject);
203begin
204FormPlotStars.GLyzGrid.LineColor.Red := yzRed.Position/255;
205ViewData.yzGrid.Color.X := FormPlotStars.GLyzGrid.LineColor.Red;
206GridColorsAltered := True;
207end; { TGridColorsForm.yzRedChange }
208
209procedure TGridColorsForm.yzGreenChange(Sender: TObject);
210begin
211FormPlotStars.GLyzGrid.LineColor.Green := yzGreen.Position/255;
212ViewData.yzGrid.Color.Y := FormPlotStars.GLyzGrid.LineColor.Green;
213GridColorsAltered := True;
214end; { TGridColorsForm.yzGreenChange }
215
216procedure TGridColorsForm.yzBlueChange(Sender: TObject);
217begin
218FormPlotStars.GLyzGrid.LineColor.Blue := yzBlue.Position/255;
219ViewData.yzGrid.Color.Z := FormPlotStars.GLyzGrid.LineColor.Blue;
220GridColorsAltered := True;
221end; { TGridColorsForm.yzBlueChange }
222
223procedure TGridColorsForm.yzAlphaChange(Sender: TObject);
224begin
225FormPlotStars.GLyzGrid.LineColor.Alpha := yzAlpha.Position/1000;
226ViewData.yzGrid.Color.W := FormPlotStars.GLyzGrid.LineColor.Alpha;
227GridColorsAltered := True;
228end; { TGridColorsForm.yzAlphaChange }
229
230procedure TGridColorsForm.BoxRedChange(Sender: TObject);
231begin
232FormPlotStars.BoxLine1.LineColor.Red := BoxRed.Position/255;
233FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
234FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
235FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
236ViewData.BoxLnColor.X := FormPlotStars.BoxLine1.LineColor.Red;
237GridColorsAltered := True;
238end; { TGridColorsForm.BoxRedChange }
239
240procedure TGridColorsForm.BoxGreenChange(Sender: TObject);
241begin
242FormPlotStars.BoxLine1.LineColor.Green := BoxGreen.Position/255;
243FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
244FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
245FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
246ViewData.BoxLnColor.Y := FormPlotStars.BoxLine1.LineColor.Green;
247GridColorsAltered := True;
248end; { TGridColorsForm.BoxGreenChange }
249
250procedure TGridColorsForm.BoxBlueChange(Sender: TObject);
251begin
252FormPlotStars.BoxLine1.LineColor.Blue := BoxBlue.Position/255;
253FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
254FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
255FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
256ViewData.BoxLnColor.Z := FormPlotStars.BoxLine1.LineColor.Blue;
257GridColorsAltered := True;
258end; { TGridColorsForm.BoxBlueChange }
259
260procedure TGridColorsForm.BoxAlphaChange(Sender: TObject);
261begin
262FormPlotStars.BoxLine1.LineColor.Alpha := BoxAlpha.Position/1000;
263ViewData.BoxLnColor.W := FormPlotStars.BoxLine1.LineColor.Alpha;
264FormPlotStars.BoxLine2.LineColor := FormPlotStars.BoxLine1.LineColor;
265FormPlotStars.BoxLine3.LineColor := FormPlotStars.BoxLine1.LineColor;
266FormPlotStars.BoxLine4.LineColor := FormPlotStars.BoxLine1.LineColor;
267GridColorsAltered := True;
268end; { TGridColorsForm.BoxAlphaChange }
269
270{ Public declarations }
271procedure TGridColorsForm.ShowGridColorData;
272begin
273Caption := GraphFName;
274GridColorsAltered := False;
275
276with FormPlotStars.GLxyGrid.LineColor do
277begin
278xyRed.Position := round(Red*255);
279xyGreen.Position := round(Green*255);
280xyBlue.Position := round(Blue*255);
281xyAlpha.Position := round(Alpha*1000);
282end;
283with FormPlotStars.GLxzGrid.LineColor do
284begin
285xzRed.Position := round(Red*255);
286xzGreen.Position := round(Green*255);
287xzBlue.Position := round(Blue*255);
288xzAlpha.Position := round(Alpha*1000);
289end;
290with FormPlotStars.GLyzGrid.LineColor do
291begin
292yzRed.Position := round(Red*255);
293yzGreen.Position := round(Green*255);
294yzBlue.Position := round(Blue*255);
295yzAlpha.Position := round(Alpha*1000);
296end;
297with FormPlotStars do
298begin
299BoxRed.Position := round(BoxLine1.LineColor.Red*255);
300BoxGreen.Position := round(BoxLine1.LineColor.Green*255);
301BoxBlue.Position := round(BoxLine1.LineColor.Blue*255);
302BoxAlpha.Position := round(BoxLine1.LineColor.Alpha*1000);
303end;
304end;
305
306end.
307