Editor window now has controls for precise moving and rotating triangles.

This commit is contained in:
utak3r 2005-06-01 19:26:55 +00:00
parent 66381de71b
commit 4d31a7c21a
3 changed files with 528 additions and 133 deletions

View File

@ -4,6 +4,7 @@
B1116907 Values Editing events B1116907 Values Editing events
+ FR1183940 Added triangle rotation functions in the editors popup menu. + FR1183940 Added triangle rotation functions in the editors popup menu.
+ Added gradient drawing in a tooltip form in the gradient browser window. + Added gradient drawing in a tooltip form in the gradient browser window.
+ Editor window now has controls for precise moving and rotating triangles.
2.02g 2.02g
+ Delphi2005 Project + Delphi2005 Project

View File

@ -145,130 +145,361 @@ object EditForm: TEditForm
Top = 148 Top = 148
Width = 167 Width = 167
Height = 277 Height = 277
ActivePage = TabSheet2 ActivePage = TabSheet1
Anchors = [akLeft, akTop, akRight, akBottom] Anchors = [akLeft, akTop, akRight, akBottom]
MultiLine = True MultiLine = True
TabOrder = 2 TabOrder = 2
TabStop = False TabStop = False
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Triangle' Caption = 'Triangle'
object Label7: TLabel object TriangleScrollBox: TScrollBox
Left = 9 Left = 0
Top = 12 Top = 0
Width = 17 Width = 159
Height = 13 Height = 231
Caption = 'Ax:' HorzScrollBar.Visible = False
end VertScrollBar.Smooth = True
object Label8: TLabel VertScrollBar.Style = ssFlat
Left = 9 VertScrollBar.Tracking = True
Top = 36 Align = alClient
Width = 17 BevelInner = bvNone
Height = 13 BevelOuter = bvNone
Caption = 'Ay:' BorderStyle = bsNone
end
object Label9: TLabel
Left = 9
Top = 60
Width = 16
Height = 13
Caption = 'Bx:'
end
object Label10: TLabel
Left = 9
Top = 84
Width = 16
Height = 13
Caption = 'By:'
end
object Label11: TLabel
Left = 9
Top = 108
Width = 17
Height = 13
Caption = 'Cx:'
end
object Label12: TLabel
Left = 9
Top = 132
Width = 17
Height = 13
Caption = 'Cy:'
end
object txtAx: TEdit
Left = 32
Top = 8
Width = 110
Height = 21
AutoSelect = False
TabOrder = 0 TabOrder = 0
Text = '0' object TrianglePanel: TPanel
OnExit = CornerEditExit Left = 0
OnKeyPress = CornerEditKeyPress Top = 0
end Width = 155
object txtAy: TEdit Height = 302
Left = 32 BevelOuter = bvNone
Top = 32 TabOrder = 0
Width = 110 object Label9: TLabel
Height = 21 Left = 6
AutoSelect = False Top = 54
TabOrder = 1 Width = 16
Text = '0' Height = 13
OnExit = CornerEditExit Caption = 'Bx:'
OnKeyPress = CornerEditKeyPress end
end object Label8: TLabel
object txtBx: TEdit Left = 6
Left = 32 Top = 30
Top = 56 Width = 17
Width = 110 Height = 13
Height = 21 Caption = 'Ay:'
AutoSelect = False end
TabOrder = 2 object Label7: TLabel
Text = '0' Left = 6
OnExit = CornerEditExit Top = 6
OnKeyPress = CornerEditKeyPress Width = 17
end Height = 13
object txtBy: TEdit Caption = 'Ax:'
Left = 32 end
Top = 80 object Label12: TLabel
Width = 110 Left = 6
Height = 21 Top = 126
AutoSelect = False Width = 17
TabOrder = 3 Height = 13
Text = '0' Caption = 'Cy:'
OnExit = CornerEditExit end
OnKeyPress = CornerEditKeyPress object Label11: TLabel
end Left = 6
object txtCx: TEdit Top = 102
Left = 32 Width = 17
Top = 104 Height = 13
Width = 110 Caption = 'Cx:'
Height = 21 end
AutoSelect = False object Label10: TLabel
TabOrder = 4 Left = 6
Text = '0' Top = 78
OnExit = CornerEditExit Width = 16
OnKeyPress = CornerEditKeyPress Height = 13
end Caption = 'By:'
object txtCy: TEdit end
Left = 32 object btTrgRotateRight: TSpeedButton
Top = 128 Left = 90
Width = 110 Top = 184
Height = 21 Width = 33
AutoSelect = False Height = 24
TabOrder = 5 Flat = True
Text = '0' Glyph.Data = {
OnExit = CornerEditExit F6000000424DF600000000000000760000002800000010000000100000000100
OnKeyPress = CornerEditKeyPress 04000000000080000000130B0000130B00001000000000000000000000000000
end 8000008000000080800080000000800080008080000080808000C0C0C0000000
object chkPreserve: TCheckBox FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FFFFFFFFFFFF
Left = 8 FFFF77FFFFFFFFFFFFFF70FFFFFFFFFFFFFF708FFFFFFFFFFFFF707FFFFFFFFF
Top = 168 FFFF7007FFFFFFFFFFFFF0007FFFFF7FFFFFF7000788FF70FFFFF80000077770
Width = 129 0FFFFF770000000000FFFFF770000000000FFFFF777000000078FFFFF8777770
Height = 17 078FFFFFFFFF870078FFFFFFFFFFFF778FFFFFFFFFFFFF78FFFF}
Caption = 'Preserve weights' OnClick = btTrgRotateRightClick
Checked = True end
State = cbChecked object btTrgRotateLeft: TSpeedButton
TabOrder = 6 Left = 22
Top = 184
Width = 33
Height = 24
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFF000000404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0000000404040FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF404040000000404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0E0E0FFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000000000808080FFFFFFFFFFFF
FFFFFFFFFFFFE0E0E0606060FFFFFFFFFFFFFFFFFFFFFFFFE0E0E08080800000
00000000000000E0E0E0FFFFFFFFFFFFFFFFFFE0E0E0202020404040FFFFFFE0
E0E0C0C0C0A0A0A0404040000000000000000000404040FFFFFFFFFFFFFFFFFF
E0E0E02020200000004040408080804040404040400000000000000000000000
00000000C0C0C0FFFFFFFFFFFFE0E0E020202000000000000000000000000000
0000000000000000000000000000404040404040FFFFFFFFFFFFFFFFFF202020
0000000000000000000000000000000000000000000000000000004040408080
80FFFFFFFFFFFFFFFFFFC0C0C080808000000000000000000000000000000000
0000000000404040808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0
808080000000000000404040808080808080808080808080C0C0C0FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080000000202020808080C0
C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFC0C0C0808080404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080FFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
OnClick = btTrgRotateLeftClick
end
object btTrgMoveUp: TSpeedButton
Left = 56
Top = 226
Width = 33
Height = 24
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF404040000000C0C0C0FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFF808080C0C0C0FFFFFFFFFFFF000000000000808080FFFFFFFFFFFF4040
40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000404040C0C0C000
0000000000808080808080000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF808080000000000000000000000000000000000000000000FFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000
0000000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFF808080000000000000000000000000000000FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000
0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000000000FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
OnClick = btTrgMoveUpClick
end
object btTrgMoveRight: TSpeedButton
Left = 90
Top = 250
Width = 33
Height = 24
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40404080
8080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
8080000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080
8080808080808080808080808080808080800000000000000000000000000000
00808080FFFFFFFFFFFF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000808080404040000000
0000000000000000000000000000000000000000000000000000000000000000
00000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
C0C0000000000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF404040000000000000808080FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C000
0000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
OnClick = btTrgMoveRightClick
end
object btTrgMoveLeft: TSpeedButton
Left = 22
Top = 250
Width = 33
Height = 24
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF808080404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000000000
0000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
8080800000000000000000000000000000008080808080808080808080808080
80808080808080C0C0C080808000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000FFFFFF808080
0000000000000000000000000000000000000000000000000000000000000000
00000000000000404040FFFFFFFFFFFFFFFFFF80808000000000000000000000
0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFF808080000000000000404040FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
8080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
OnClick = btTrgMoveLeftClick
end
object btTrgMoveDown: TSpeedButton
Left = 56
Top = 274
Width = 33
Height = 24
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
0000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000
0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFF808080000000000000000000000000FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000
0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFF808080000000000000000000000000000000000000FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000
0000000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFF808080000000808080808080000000000000C0C0C0404040000000FFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF404040FFFFFFFFFFFF80808000
0000000000FFFFFFFFFFFFC0C0C0808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000
0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000
0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C000
0000404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
OnClick = btTrgMoveDownClick
end
object txtTrgRotateValue: TEdit
Left = 56
Top = 184
Width = 33
Height = 24
TabOrder = 7
Text = '5'
end
object txtTrgMoveValue: TEdit
Left = 56
Top = 250
Width = 33
Height = 24
TabOrder = 8
Text = '0.05'
end
object txtCy: TEdit
Left = 28
Top = 122
Width = 110
Height = 21
AutoSelect = False
TabOrder = 5
Text = '0'
OnExit = CornerEditExit
OnKeyPress = CornerEditKeyPress
end
object txtCx: TEdit
Left = 28
Top = 98
Width = 110
Height = 21
AutoSelect = False
TabOrder = 4
Text = '0'
OnExit = CornerEditExit
OnKeyPress = CornerEditKeyPress
end
object txtBy: TEdit
Left = 28
Top = 74
Width = 110
Height = 21
AutoSelect = False
TabOrder = 3
Text = '0'
OnExit = CornerEditExit
OnKeyPress = CornerEditKeyPress
end
object txtBx: TEdit
Left = 28
Top = 50
Width = 110
Height = 21
AutoSelect = False
TabOrder = 2
Text = '0'
OnExit = CornerEditExit
OnKeyPress = CornerEditKeyPress
end
object txtAy: TEdit
Left = 28
Top = 26
Width = 110
Height = 21
AutoSelect = False
TabOrder = 1
Text = '0'
OnExit = CornerEditExit
OnKeyPress = CornerEditKeyPress
end
object txtAx: TEdit
Left = 28
Top = 2
Width = 110
Height = 21
AutoSelect = False
TabOrder = 0
Text = '0'
OnExit = CornerEditExit
OnKeyPress = CornerEditKeyPress
end
object chkPreserve: TCheckBox
Left = 28
Top = 152
Width = 105
Height = 17
Caption = 'Preserve weights'
Checked = True
State = cbChecked
TabOrder = 6
end
end
end end
end end
object XForm: TTabSheet object XForm: TTabSheet
@ -575,6 +806,14 @@ object EditForm: TEditForm
Caption = 'Rotate Left' Caption = 'Rotate Left'
OnClick = mnuRotateLeftClick OnClick = mnuRotateLeftClick
end end
object mnuScaleUp: TMenuItem
Caption = 'Scale Up'
OnClick = mnuScaleUpClick
end
object mnuScaleDown: TMenuItem
Caption = 'Scale Down'
OnClick = mnuScaleDownClick
end
object N2: TMenuItem object N2: TMenuItem
Caption = '-' Caption = '-'
end end

View File

@ -23,7 +23,7 @@ interface
uses uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, ComCtrls, Math, Menus, ToolWin, Registry, MyTypes, ExtCtrls, StdCtrls, ComCtrls, Math, Menus, ToolWin, Registry, MyTypes,
ControlPoint, Render, cmap, Grids, ValEdit; ControlPoint, Render, cmap, Grids, ValEdit, Buttons;
const const
// PixelCountMax = 32768; // PixelCountMax = 32768;
@ -65,19 +65,6 @@ type
N6: TMenuItem; N6: TMenuItem;
PageControl: TPageControl; PageControl: TPageControl;
TabSheet1: TTabSheet; TabSheet1: TTabSheet;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
txtAx: TEdit;
txtAy: TEdit;
txtBx: TEdit;
txtBy: TEdit;
txtCx: TEdit;
txtCy: TEdit;
chkPreserve: TCheckBox;
XForm: TTabSheet; XForm: TTabSheet;
lbla: TLabel; lbla: TLabel;
Label1: TLabel; Label1: TLabel;
@ -112,6 +99,31 @@ type
N2: TMenuItem; N2: TMenuItem;
mnuRotateRight: TMenuItem; mnuRotateRight: TMenuItem;
mnuRotateLeft: TMenuItem; mnuRotateLeft: TMenuItem;
mnuScaleUp: TMenuItem;
mnuScaleDown: TMenuItem;
TriangleScrollBox: TScrollBox;
TrianglePanel: TPanel;
txtTrgRotateValue: TEdit;
txtTrgMoveValue: TEdit;
txtCy: TEdit;
txtCx: TEdit;
txtBy: TEdit;
txtBx: TEdit;
txtAy: TEdit;
txtAx: TEdit;
Label9: TLabel;
Label8: TLabel;
Label7: TLabel;
Label12: TLabel;
Label11: TLabel;
Label10: TLabel;
chkPreserve: TCheckBox;
btTrgRotateRight: TSpeedButton;
btTrgRotateLeft: TSpeedButton;
btTrgMoveUp: TSpeedButton;
btTrgMoveRight: TSpeedButton;
btTrgMoveLeft: TSpeedButton;
btTrgMoveDown: TSpeedButton;
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure GraphImageMouseMove(Sender: TObject; Shift: TShiftState; X, procedure GraphImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: integer); Y: integer);
@ -167,6 +179,14 @@ type
const KeyName, KeyValue: String); const KeyName, KeyValue: String);
procedure mnuRotateRightClick(Sender: TObject); procedure mnuRotateRightClick(Sender: TObject);
procedure mnuRotateLeftClick(Sender: TObject); procedure mnuRotateLeftClick(Sender: TObject);
procedure mnuScaleUpClick(Sender: TObject);
procedure mnuScaleDownClick(Sender: TObject);
procedure btTrgRotateLeftClick(Sender: TObject);
procedure btTrgRotateRightClick(Sender: TObject);
procedure btTrgMoveLeftClick(Sender: TObject);
procedure btTrgMoveRightClick(Sender: TObject);
procedure btTrgMoveUpClick(Sender: TObject);
procedure btTrgMoveDownClick(Sender: TObject);
private private
bm: TBitmap; bm: TBitmap;
cmap: TColorMap; cmap: TColorMap;
@ -1018,14 +1038,28 @@ procedure TEditForm.mnuRotateRightClick(Sender: TObject);
begin begin
MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], -(PI / 20)); MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], -(PI / 20));
HasChanged := True; HasChanged := True;
UpdateFlame(False); UpdateFlame(true);
end; end;
procedure TEditForm.mnuRotateLeftClick(Sender: TObject); procedure TEditForm.mnuRotateLeftClick(Sender: TObject);
begin begin
MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], PI / 20); MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], PI / 20);
HasChanged := True; HasChanged := True;
UpdateFlame(False); UpdateFlame(true);
end;
procedure TEditForm.mnuScaleUpClick(Sender: TObject);
begin
MainTriangles[SelectedTriangle] := ScaleTriangleCenter(MainTriangles[SelectedTriangle], 1.1);
HasChanged := True;
UpdateFlame(true);
end;
procedure TEditForm.mnuScaleDownClick(Sender: TObject);
begin
MainTriangles[SelectedTriangle] := ScaleTriangleCenter(MainTriangles[SelectedTriangle], 0.9);
HasChanged := True;
UpdateFlame(true);
end; end;
procedure TEditForm.FormShow(Sender: TObject); procedure TEditForm.FormShow(Sender: TObject);
@ -1915,5 +1949,126 @@ begin
end; end;
end; end;
{ **************************************************************************** }
procedure TEditForm.btTrgRotateLeftClick(Sender: TObject);
var
offset: double;
begin
try
offset := StrToFloat(txtTrgRotateValue.Text);
except
offset := 0;
txtTrgRotateValue.Text := '0';
end;
if offset <> 0 then
begin
MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], (PI/180) * offset); HasChanged := True;
UpdateFlame(true);
end;
end;
procedure TEditForm.btTrgRotateRightClick(Sender: TObject);
var
offset: double;
begin
try
offset := StrToFloat(txtTrgRotateValue.Text);
except
offset := 0;
txtTrgRotateValue.Text := '0';
end;
if offset <> 0 then
begin
MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], -((PI/180) * offset));
HasChanged := True;
UpdateFlame(true);
end;
end;
procedure TEditForm.btTrgMoveLeftClick(Sender: TObject);
var
i: integer;
offset: double;
begin
try
offset := StrToFloat(txtTrgMoveValue.Text);
except
offset := 0;
txtTrgMoveValue.Text := '0';
end;
if offset <> 0 then
begin
for i := 0 to 2 do
MainTriangles[SelectedTriangle].x[i] :=
MainTriangles[SelectedTriangle].x[i] - offset;
HasChanged := True;
UpdateFlame(true);
end;
end;
procedure TEditForm.btTrgMoveRightClick(Sender: TObject);
var
i: integer;
offset: double;
begin
try
offset := StrToFloat(txtTrgMoveValue.Text);
except
offset := 0;
txtTrgMoveValue.Text := '0';
end;
if offset <> 0 then
begin
for i := 0 to 2 do
MainTriangles[SelectedTriangle].x[i] :=
MainTriangles[SelectedTriangle].x[i] + offset;
HasChanged := True;
UpdateFlame(true);
end;
end;
procedure TEditForm.btTrgMoveUpClick(Sender: TObject);
var
i: integer;
offset: double;
begin
try
offset := StrToFloat(txtTrgMoveValue.Text);
except
offset := 0;
txtTrgMoveValue.Text := '0';
end;
if offset <> 0 then
begin
for i := 0 to 2 do
MainTriangles[SelectedTriangle].y[i] :=
MainTriangles[SelectedTriangle].y[i] + offset;
HasChanged := True;
UpdateFlame(true);
end;
end;
procedure TEditForm.btTrgMoveDownClick(Sender: TObject);
var
i: integer;
offset: double;
begin
try
offset := StrToFloat(txtTrgMoveValue.Text);
except
offset := 0;
txtTrgMoveValue.Text := '0';
end;
if offset <> 0 then
begin
for i := 0 to 2 do
MainTriangles[SelectedTriangle].y[i] :=
MainTriangles[SelectedTriangle].y[i] - offset;
HasChanged := True;
UpdateFlame(true);
end;
end;
end. end.