(Almost) finished the 'custom triangle view control'...
Well, actually it's just a workaround to intercept keystrokes... It still can't even catch arrow-keys, looks like I missed something... :-\
This commit is contained in:
parent
711742df89
commit
09e406a927
@ -173,7 +173,7 @@ object AdjustForm: TAdjustForm
|
||||
Top = 133
|
||||
Width = 390
|
||||
Height = 131
|
||||
ActivePage = TabSheet3
|
||||
ActivePage = TabSheet1
|
||||
Align = alBottom
|
||||
TabOrder = 1
|
||||
object TabSheet1: TTabSheet
|
||||
@ -450,6 +450,7 @@ object AdjustForm: TAdjustForm
|
||||
Top = 76
|
||||
Width = 113
|
||||
Height = 21
|
||||
Cursor = crHandPoint
|
||||
BevelOuter = bvLowered
|
||||
Color = clBlack
|
||||
TabOrder = 6
|
||||
|
62
2.10/Source/CustomDrawControl.pas
Normal file
62
2.10/Source/CustomDrawControl.pas
Normal file
@ -0,0 +1,62 @@
|
||||
unit CustomDrawControl;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, Controls, Messages, Windows, Graphics;
|
||||
|
||||
type
|
||||
TCustomDrawControl = class(TCustomControl)
|
||||
private
|
||||
FOnPaint: TNotifyEvent;
|
||||
|
||||
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
|
||||
// procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
|
||||
// procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
|
||||
protected
|
||||
|
||||
public
|
||||
procedure Paint; override;
|
||||
|
||||
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
|
||||
property Canvas;
|
||||
|
||||
property OnDblClick;
|
||||
property OnKeyDown;
|
||||
// property OnKeyPress;
|
||||
// property OnKeyUp;
|
||||
property OnMouseDown;
|
||||
property OnMouseMove;
|
||||
property OnMouseUp;
|
||||
property OnMouseWheel;
|
||||
// property OnMouseWheelDown;
|
||||
// property OnMouseWheelUp;
|
||||
property OnEnter;
|
||||
property OnExit;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
procedure TCustomDrawControl.WMEraseBkgnd(var Message: TWMEraseBkgnd);
|
||||
begin
|
||||
Message.Result := 1;
|
||||
end;
|
||||
|
||||
{
|
||||
procedure TCustomDrawControl.WMSetFocus(var Message: TWMSetFocus);
|
||||
begin
|
||||
Invalidate;
|
||||
end;
|
||||
|
||||
procedure TCustomDrawControl.WMKillFocus(var Message: TWMKillFocus);
|
||||
begin
|
||||
Invalidate;
|
||||
end;
|
||||
}
|
||||
|
||||
procedure TCustomDrawControl.Paint;
|
||||
begin
|
||||
if Assigned(FOnPaint) then FOnPaint(Self);
|
||||
end;
|
||||
|
||||
end.
|
@ -417,11 +417,9 @@ object EditForm: TEditForm
|
||||
Color = clBlack
|
||||
DropDownCount = 12
|
||||
ItemHeight = 13
|
||||
TabOrder = 1
|
||||
TabStop = False
|
||||
TabOrder = 0
|
||||
OnChange = cbTransformsChange
|
||||
OnDrawItem = cbTransformsDrawItem
|
||||
OnKeyDown = cbKeyDown
|
||||
end
|
||||
object PageControl: TPageControl
|
||||
Left = 1
|
||||
@ -432,7 +430,7 @@ object EditForm: TEditForm
|
||||
Align = alBottom
|
||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||
MultiLine = True
|
||||
TabOrder = 0
|
||||
TabOrder = 1
|
||||
TabStop = False
|
||||
object TriangleTab: TTabSheet
|
||||
Caption = 'Triangle'
|
||||
@ -1419,6 +1417,7 @@ object EditForm: TEditForm
|
||||
Top = 72
|
||||
Width = 129
|
||||
Height = 17
|
||||
Cursor = crHandPoint
|
||||
BevelOuter = bvLowered
|
||||
Color = clBlack
|
||||
TabOrder = 0
|
||||
@ -1448,6 +1447,7 @@ object EditForm: TEditForm
|
||||
Top = 152
|
||||
Width = 129
|
||||
Height = 17
|
||||
Cursor = crHandPoint
|
||||
BevelOuter = bvLowered
|
||||
Color = clGray
|
||||
TabOrder = 3
|
||||
@ -1458,6 +1458,7 @@ object EditForm: TEditForm
|
||||
Top = 112
|
||||
Width = 62
|
||||
Height = 17
|
||||
Cursor = crHandPoint
|
||||
BevelOuter = bvLowered
|
||||
Color = clBlack
|
||||
TabOrder = 4
|
||||
@ -1468,6 +1469,7 @@ object EditForm: TEditForm
|
||||
Top = 112
|
||||
Width = 62
|
||||
Height = 17
|
||||
Cursor = crHandPoint
|
||||
BevelOuter = bvLowered
|
||||
Color = clBlack
|
||||
TabOrder = 5
|
||||
|
@ -23,7 +23,7 @@ interface
|
||||
uses
|
||||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
ExtCtrls, StdCtrls, ComCtrls, Math, Menus, ToolWin, Registry, MyTypes,
|
||||
ControlPoint, Render, cmap, Grids, ValEdit, Buttons, ImgList, TriangleGraph;
|
||||
ControlPoint, Render, cmap, Grids, ValEdit, Buttons, ImgList, CustomDrawControl;
|
||||
|
||||
const
|
||||
// PixelCountMax = 32768;
|
||||
@ -159,19 +159,22 @@ type
|
||||
procedure vleVariablesKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure vleVariablesExit(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure GraphImageMouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
procedure TriangleViewMouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
Y: integer);
|
||||
procedure GraphImageMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
procedure TriangleViewMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: integer);
|
||||
procedure GraphImageMouseUp(Sender: TObject; Button: TMouseButton;
|
||||
procedure TriangleViewMouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: integer);
|
||||
procedure TriangleViewMouseWheel(Sender: TObject; Shift: TShiftState;
|
||||
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
||||
procedure TriangleViewDblClick(Sender: TObject);
|
||||
procedure TriangleViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure mnuDeleteClick(Sender: TObject);
|
||||
procedure mnuAddClick(Sender: TObject);
|
||||
procedure mnuDupClick(Sender: TObject);
|
||||
procedure mnuAutoZoomClick(Sender: TObject);
|
||||
// procedure mnuXFlipClick(Sender: TObject);
|
||||
// procedure mnuYFlipClick(Sender: TObject);
|
||||
procedure btnCloseClick(Sender: TObject);
|
||||
procedure FormResize(Sender: TObject);
|
||||
procedure txtPKeyPress(Sender: TObject; var Key: Char);
|
||||
@ -191,7 +194,6 @@ type
|
||||
procedure mnuHorizintalFlipAllClick(Sender: TObject);
|
||||
procedure mnuFlipVerticalClick(Sender: TObject);
|
||||
procedure mnuFlipHorizontalClick(Sender: TObject);
|
||||
procedure GraphImageDblClick(Sender: TObject);
|
||||
procedure cbTransformsChange(Sender: TObject);
|
||||
procedure CoefKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure CoefExit(Sender: TObject);
|
||||
@ -206,14 +208,11 @@ type
|
||||
procedure txtXFormColorKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure txtSymmetryExit(Sender: TObject);
|
||||
procedure txtSymmetryKeyPress(Sender: TObject; var Key: Char);
|
||||
|
||||
procedure VEVarsKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure VEVarsExit(Sender: TObject);
|
||||
procedure VEVarsValidate(Sender: TObject; ACol, ARow: Integer;
|
||||
const KeyName, KeyValue: String);
|
||||
// procedure mnuRotateRightClick(Sender: TObject);
|
||||
// procedure mnuRotateLeftClick(Sender: TObject);
|
||||
// procedure mnuScaleUpClick(Sender: TObject);
|
||||
// procedure mnuScaleDownClick(Sender: TObject);
|
||||
|
||||
procedure btTrgRotateLeftClick(Sender: TObject);
|
||||
procedure btTrgRotateRightClick(Sender: TObject);
|
||||
@ -226,15 +225,12 @@ type
|
||||
procedure btTrgMoveDownClick(Sender: TObject);
|
||||
procedure btTrgScaleUpClick(Sender: TObject);
|
||||
procedure btTrgScaleDownClick(Sender: TObject);
|
||||
procedure editKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
procedure splitterMoved(Sender: TObject);
|
||||
procedure tbSelectClick(Sender: TObject);
|
||||
procedure btTrgMoveLUClick(Sender: TObject);
|
||||
procedure btTrgMoveLDClick(Sender: TObject);
|
||||
procedure btTrgMoveRUClick(Sender: TObject);
|
||||
procedure btTrgMoveRDClick(Sender: TObject);
|
||||
procedure editMouseWheel(Sender: TObject; Shift: TShiftState;
|
||||
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
||||
procedure PreviewImageDblClick(Sender: TObject);
|
||||
procedure editKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure rgPivotClicked(Sender: TObject);
|
||||
@ -254,8 +250,6 @@ type
|
||||
|
||||
procedure cbTransformsDrawItem(Control: TWinControl; Index: Integer;
|
||||
Rect: TRect; State: TOwnerDrawState);
|
||||
procedure cbKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
|
||||
procedure tbFullViewClick(Sender: TObject);
|
||||
|
||||
@ -267,16 +261,15 @@ type
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
|
||||
private
|
||||
TriangleGraph: TTriangleGraph;
|
||||
bm: TBitmap;
|
||||
TriangleView: TCustomDrawControl;
|
||||
// bm: TBitmap;
|
||||
cmap: TColorMap;
|
||||
// cp1: TControlPoint;
|
||||
PreviewDensity: double;
|
||||
|
||||
// --Z--
|
||||
graphDragMode, dragged: boolean;
|
||||
viewDragMode, viewDragged: boolean;
|
||||
editMode: (modeMove, modeRotate, modeScale);
|
||||
key_handled: boolean; // hack... there must be a better way to do this :-\
|
||||
|
||||
MousePos: TPoint; // in screen coordinates
|
||||
mouseOverTriangle: integer;
|
||||
@ -320,7 +313,7 @@ type
|
||||
|
||||
// --Z-- functions moved from outside (?)
|
||||
procedure ShowSelectedInfo;
|
||||
procedure Scale(var fx, fy: double; x, y, Width, Height: integer);
|
||||
procedure Scale(var fx, fy: double; x, y: integer);
|
||||
procedure ReadjustWeights(var cp: TControlPoint);
|
||||
|
||||
public
|
||||
@ -331,7 +324,7 @@ type
|
||||
|
||||
procedure UpdateDisplay(preview_only: boolean = false);
|
||||
procedure AutoZoom;
|
||||
procedure DrawGraph;
|
||||
procedure TriangleViewPaint(Sender: TObject);
|
||||
end;
|
||||
|
||||
const
|
||||
@ -369,11 +362,14 @@ var
|
||||
oldTriangle: TTriangle;
|
||||
gCenterX: double;
|
||||
gCentery: double;
|
||||
gxlength: double;
|
||||
gylength: double;
|
||||
|
||||
{$R *.DFM}
|
||||
|
||||
procedure DrawGraph;
|
||||
begin
|
||||
EditForm.TriangleView.Invalidate;
|
||||
end;
|
||||
|
||||
{ Triangle transformations }
|
||||
|
||||
function OffsetTriangleRandom(t: TTriangle): TTriangle;
|
||||
@ -567,7 +563,6 @@ begin
|
||||
|
||||
ShowSelectedInfo;
|
||||
AutoZoom;
|
||||
DrawGraph;
|
||||
end;
|
||||
|
||||
procedure TEditForm.DrawPreview;
|
||||
@ -692,19 +687,20 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEditForm.Scale(var fx, fy: double; x, y, Width, Height: integer);
|
||||
procedure TEditForm.Scale(var fx, fy: double; x, y: integer);
|
||||
var
|
||||
sc: double;
|
||||
begin
|
||||
sc := 50 * GraphZoom;
|
||||
fx := (x - (Width / 2)) / sc + gCenterX;
|
||||
fy := -((y - (Height / 2)) / sc - gCentery);
|
||||
fx := (x - (TriangleView.Width / 2)) / sc + gCenterX;
|
||||
fy := -((y - (TriangleView.Height / 2)) / sc - gCentery);
|
||||
end;
|
||||
|
||||
procedure TEditForm.AutoZoom;
|
||||
var
|
||||
i, j: integer;
|
||||
xminz, yminz, xmaxz, ymaxz: double;
|
||||
gxlength, gylength: double;
|
||||
begin
|
||||
xminz := 0;
|
||||
yminz := 0;
|
||||
@ -724,15 +720,18 @@ begin
|
||||
gylength := ymaxz - yminz;
|
||||
gCenterX := xminz + gxlength / 2;
|
||||
gCentery := yminz + gylength / 2;
|
||||
|
||||
if gxlength >= gylength then
|
||||
begin
|
||||
GraphZoom := TriangleGraph.Width / 60 / gxlength;
|
||||
GraphZoom := TriangleView.Width / 60 / gxlength;
|
||||
end
|
||||
else
|
||||
begin
|
||||
GraphZoom := TriangleGraph.Height / 60 / gylength;
|
||||
GraphZoom := TriangleView.Height / 60 / gylength;
|
||||
end;
|
||||
EditForm.StatusBar.Panels[2].Text := Format('Zoom: %f', [GraphZoom]);
|
||||
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
|
||||
procedure TEditForm.UpdateFlameX;
|
||||
@ -757,7 +756,7 @@ begin
|
||||
if not chkPreserve.checked then ComputeWeights(cp, MainTriangles, transforms);
|
||||
DrawPreview;
|
||||
ShowSelectedInfo;
|
||||
DrawGraph;
|
||||
TriangleView.Refresh;;
|
||||
end;
|
||||
|
||||
procedure TEditForm.UpdateFlame(DrawMain: boolean);
|
||||
@ -768,7 +767,7 @@ begin
|
||||
if not chkPreserve.Checked then ComputeWeights(cp, MainTriangles, transforms);
|
||||
DrawPreview;
|
||||
ShowSelectedInfo;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
if DrawMain then begin
|
||||
MainForm.StopThread;
|
||||
MainCp.Copy(cp);
|
||||
@ -916,35 +915,45 @@ begin
|
||||
else Result := clr[n mod 16];
|
||||
end;
|
||||
|
||||
procedure TEditForm.DrawGraph;
|
||||
procedure TEditForm.TriangleViewPaint(Sender: TObject);
|
||||
var
|
||||
ix, iy, sc: double;
|
||||
|
||||
function ToScreen(fx, fy: double): TPoint;
|
||||
begin
|
||||
Result.x := integer(round(ix + (fx - gCenterX) * sc));
|
||||
Result.y := integer(round(iy - (fy - gCenterY) * sc));
|
||||
end;
|
||||
var
|
||||
i: integer;
|
||||
ix, iy, sc: double;
|
||||
ax, ay, bx, by, cx, cy: integer;
|
||||
|
||||
ax, ay {, bx, by, cx, cy}: integer;
|
||||
a, b, c: TPoint;
|
||||
|
||||
BitMap: TBitMap;
|
||||
Width, Height: integer;
|
||||
// BitMap: TBitMap;
|
||||
// --Z--
|
||||
|
||||
gridX1, gridX2, gridY1, gridY2, gi, gstep: double;
|
||||
gp: TRoundToRange;
|
||||
label DrawCorner;
|
||||
begin
|
||||
// --Z-- hmmm:
|
||||
if SelectedTriangle < 0 then SelectedTriangle := 0
|
||||
else if SelectedTriangle >= Transforms then SelectedTriangle := Transforms-1;
|
||||
assert(SelectedTriangle >= 0);
|
||||
assert(TCustomDrawControl(Sender) = TriangleView);
|
||||
if SelectedTriangle >= Transforms then SelectedTriangle := Transforms-1;
|
||||
|
||||
// BitMap := TBitMap.Create;
|
||||
BitMap := TBitMap.Create;
|
||||
Width := TriangleView.Width;
|
||||
Height := TriangleView.Height;
|
||||
Bitmap.Width := Width;
|
||||
Bitmap.Height := Height;
|
||||
ix := Width / 2;
|
||||
iy := Height / 2;
|
||||
sc := 50 * GraphZoom;
|
||||
try
|
||||
Width := TriangleGraph.Width;
|
||||
Height := TriangleGraph.Height;
|
||||
// BitMap.Width := Width;
|
||||
// BitMap.Height := Height;
|
||||
ix := Width / 2;
|
||||
iy := Height / 2;
|
||||
sc := 50 * GraphZoom;
|
||||
// with Bitmap.canvas do
|
||||
with TriangleGraph.Canvas do
|
||||
with Bitmap.Canvas do
|
||||
begin
|
||||
brush.Color := pnlBackColor.Color;
|
||||
//if not TriangleView.Focused then brush.Color := brush.Color xor $1f1f1f;
|
||||
FillRect(rect(0, 0, Width, Height));
|
||||
|
||||
Pen.Width := 1;
|
||||
@ -996,6 +1005,7 @@ begin
|
||||
{Reference Triangle}
|
||||
Pen.Style := psDot;
|
||||
Pen.color := pnlReference.Color;
|
||||
{
|
||||
ax := integer(round(ix + (MainTriangles[-1].x[0] - gCenterX) * sc));
|
||||
ay := integer(round(iy - (MainTriangles[-1].y[0] - gCenterY) * sc));
|
||||
bx := integer(round(ix + (MainTriangles[-1].x[1] - gCenterX) * sc));
|
||||
@ -1003,62 +1013,47 @@ begin
|
||||
cx := integer(round(ix + (MainTriangles[-1].x[2] - gCenterX) * sc));
|
||||
cy := integer(round(iy - (MainTriangles[-1].y[2] - gCenterY) * sc));
|
||||
Polyline([Point(ax,ay), Point(bx,by), Point(cx,cy), Point(ax,ay)]);
|
||||
}
|
||||
a := ToScreen(MainTriangles[-1].x[0], MainTriangles[-1].y[0]);
|
||||
b := ToScreen(MainTriangles[-1].x[1], MainTriangles[-1].y[1]);
|
||||
c := ToScreen(MainTriangles[-1].x[2], MainTriangles[-1].y[2]);
|
||||
Polyline([a, b, c, a]);
|
||||
|
||||
Font.color := Pen.color;
|
||||
TextOut(ax, ay, 'A');
|
||||
TextOut(bx, by, 'B');
|
||||
TextOut(cx, cy, 'C');
|
||||
TextOut(a.x, a.y, 'A');
|
||||
TextOut(b.x, b.y, 'B');
|
||||
TextOut(c.x, c.y, 'C');
|
||||
|
||||
Pen.Style := psSolid;
|
||||
|
||||
{Transforms}
|
||||
for i := 0 to Transforms - 1 do
|
||||
begin
|
||||
{
|
||||
ax := integer(round(ix + (MainTriangles[i].x[0] - gCenterX) * sc));
|
||||
ay := integer(round(iy - (MainTriangles[i].y[0] - gCenterY) * sc));
|
||||
bx := integer(round(ix + (MainTriangles[i].x[1] - gCenterX) * sc));
|
||||
by := integer(round(iy - (MainTriangles[i].y[1] - gCenterY) * sc));
|
||||
cx := integer(round(ix + (MainTriangles[i].x[2] - gCenterX) * sc));
|
||||
cy := integer(round(iy - (MainTriangles[i].y[2] - gCenterY) * sc));
|
||||
{
|
||||
TrgPoints[0].x := integer(round(ix + (MainTriangles[i].x[0] - gCenterX) * sc));
|
||||
TrgPoints[0].y := integer(round(iy - (MainTriangles[i].y[0] - gCenterY) * sc));
|
||||
TrgPoints[1].x := integer(round(ix + (MainTriangles[i].x[1] - gCenterX) * sc));
|
||||
TrgPoints[1].y := integer(round(iy - (MainTriangles[i].y[1] - gCenterY) * sc));
|
||||
TrgPoints[2].x := integer(round(ix + (MainTriangles[i].x[2] - gCenterX) * sc));
|
||||
TrgPoints[2].y := integer(round(iy - (MainTriangles[i].y[2] - gCenterY) * sc));
|
||||
}
|
||||
//brush.Color := pnlBackColor.Color;
|
||||
a := ToScreen(MainTriangles[i].x[0], MainTriangles[i].y[0]);
|
||||
b := ToScreen(MainTriangles[i].x[1], MainTriangles[i].y[1]);
|
||||
c := ToScreen(MainTriangles[i].x[2], MainTriangles[i].y[2]);
|
||||
|
||||
Pen.Color := GetTriangleColor(i);
|
||||
|
||||
if i <> SelectedTriangle then Pen.Style := psDot;
|
||||
//MoveTo(ax, ay); LineTo(bx, by); LineTo(cx, cy); LineTo(ax, ay);
|
||||
Polyline([Point(ax,ay), Point(bx,by), Point(cx,cy), Point(ax,ay)]);
|
||||
Polyline([a, b, c, a]);
|
||||
|
||||
Pen.Style := psSolid;
|
||||
Ellipse(ax - 4, ay - 4, ax + 4, ay + 4);
|
||||
Ellipse(bx - 4, by - 4, bx + 4, by + 4);
|
||||
Ellipse(cx - 4, cy - 4, cx + 4, cy + 4);
|
||||
Ellipse(a.x - 4, a.y - 4, a.x + 4, a.y + 4);
|
||||
Ellipse(b.x - 4, b.y - 4, b.x + 4, b.y + 4);
|
||||
Ellipse(c.x - 4, c.y - 4, c.x + 4, c.y + 4);
|
||||
|
||||
Font.color := Pen.color;
|
||||
//brush.Color := pnlBackColor.Color;
|
||||
TextOut(ax, ay, 'A');
|
||||
TextOut(bx, by, 'B');
|
||||
TextOut(cx, cy, 'C');
|
||||
{
|
||||
brush.style:=bsClear;
|
||||
Font.color := pnlBackColor.Color;
|
||||
font.style:=[fsBold];
|
||||
TextOut(ax+2, ay+2, 'A');
|
||||
TextOut(bx+2, by+2, 'B');
|
||||
TextOut(cx+2, cy+2, 'C');
|
||||
font.style:=[];
|
||||
|
||||
Font.color := Pen.color;
|
||||
TextOut(ax+1, ay+1, 'A');
|
||||
TextOut(bx+1, by+1, 'B');
|
||||
TextOut(cx+1, cy+1, 'C');
|
||||
}
|
||||
TextOut(a.x, a.y, 'A');
|
||||
TextOut(b.x, b.y, 'B');
|
||||
TextOut(c.x, c.y, 'C');
|
||||
end;
|
||||
|
||||
// if dragging, draw pivot axis
|
||||
@ -1067,28 +1062,32 @@ begin
|
||||
Pen.Mode := pmMerge;
|
||||
Pen.Color := $555555;
|
||||
Pen.Style := psDot;
|
||||
ax := integer(round(ix + (Pivot.x - gCenterX)*sc));
|
||||
ay := integer(round(iy + (gCentery - Pivot.y)*sc));
|
||||
MoveTo(ax, 0);
|
||||
LineTo(ax, Height);
|
||||
MoveTo(0, ay);
|
||||
LineTo(Width, ay);
|
||||
// ax := integer(round(ix + (Pivot.x - gCenterX)*sc));
|
||||
// ay := integer(round(iy + (gCentery - Pivot.y)*sc));
|
||||
a := ToScreen(Pivot.x, Pivot.y);
|
||||
MoveTo(a.x, 0);
|
||||
LineTo(a.x, Height);
|
||||
MoveTo(0, a.y);
|
||||
LineTo(Width, a.y);
|
||||
Pen.Color := $707070;
|
||||
Pen.Style := psSolid;
|
||||
Pen.Mode := pmXor;
|
||||
if CornerCaught then
|
||||
begin
|
||||
ax := integer(round(ix + (MainTriangles[SelectedTriangle].x[SelectedCorner] - gCenterX)*sc));
|
||||
ay := integer(round(iy - (MainTriangles[SelectedTriangle].y[SelectedCorner] - gCenterY)*sc));
|
||||
// ax := integer(round(ix + (MainTriangles[SelectedTriangle].x[SelectedCorner] - gCenterX)*sc));
|
||||
// ay := integer(round(iy - (MainTriangles[SelectedTriangle].y[SelectedCorner] - gCenterY)*sc));
|
||||
a := ToScreen(MainTriangles[SelectedTriangle].x[SelectedCorner],
|
||||
MainTriangles[SelectedTriangle].y[SelectedCorner]);
|
||||
end
|
||||
else begin
|
||||
ax := integer(round(ix + (GetPivot.x - gCenterX)*sc));
|
||||
ay := integer(round(iy - (GetPivot.y - gCenterY)*sc));
|
||||
// ax := integer(round(ix + (GetPivot.x - gCenterX)*sc));
|
||||
// ay := integer(round(iy - (GetPivot.y - gCenterY)*sc));
|
||||
a := ToScreen(GetPivot.x, GetPivot.y);
|
||||
end;
|
||||
MoveTo(ax, 0);
|
||||
LineTo(ax, Height);
|
||||
MoveTo(0, ay);
|
||||
LineTo(Width, ay);
|
||||
MoveTo(a.x, 0);
|
||||
LineTo(a.x, Height);
|
||||
MoveTo(0, a.y);
|
||||
LineTo(Width, a.y);
|
||||
Pen.Mode := pmCopy;
|
||||
|
||||
mouseOverTriangle := SelectedTriangle;
|
||||
@ -1096,26 +1095,31 @@ begin
|
||||
|
||||
if (mouseOverTriangle >= 0) then // highlight triangle under cursor
|
||||
begin
|
||||
{
|
||||
ax := integer(round(ix + (MainTriangles[mouseOverTriangle].x[0] - gCenterX) * sc));
|
||||
ay := integer(round(iy - (MainTriangles[mouseOverTriangle].y[0] - gCenterY) * sc));
|
||||
bx := integer(round(ix + (MainTriangles[mouseOverTriangle].x[1] - gCenterX) * sc));
|
||||
by := integer(round(iy - (MainTriangles[mouseOverTriangle].y[1] - gCenterY) * sc));
|
||||
cx := integer(round(ix + (MainTriangles[mouseOverTriangle].x[2] - gCenterX) * sc));
|
||||
cy := integer(round(iy - (MainTriangles[mouseOverTriangle].y[2] - gCenterY) * sc));
|
||||
// Pen.Style:=psSolid;
|
||||
}
|
||||
a := ToScreen(MainTriangles[mouseOverTriangle].x[0], MainTriangles[mouseOverTriangle].y[0]);
|
||||
b := ToScreen(MainTriangles[mouseOverTriangle].x[1], MainTriangles[mouseOverTriangle].y[1]);
|
||||
c := ToScreen(MainTriangles[mouseOverTriangle].x[2], MainTriangles[mouseOverTriangle].y[2]);
|
||||
|
||||
pen.Width:=2;
|
||||
Pen.Color:=GetTriangleColor(mouseOverTriangle) shr 1 and $7f7f7f;
|
||||
Pen.Mode:=pmMerge;//pmXor;
|
||||
Pen.Mode:=pmMerge;
|
||||
brush.Color:=Pen.Color shr 1 and $7f7f7f;
|
||||
//Polyline([Point(ax,ay), Point(bx,by), Point(cx,cy), Point(ax,ay)]);
|
||||
Polygon([Point(ax,ay), Point(bx,by), Point(cx,cy)]);
|
||||
// Polygon([Point(ax,ay), Point(bx,by), Point(cx,cy)]);
|
||||
Polygon([a, b, c]);
|
||||
|
||||
pen.width:=4;
|
||||
Ellipse(ax - 3, ay - 3, ax + 3, ay + 3);
|
||||
Ellipse(bx - 3, by - 3, bx + 3, by + 3);
|
||||
Ellipse(cx - 3, cy - 3, cx + 3, cy + 3);
|
||||
Ellipse(a.x - 3, a.y - 3, a.x + 3, a.y + 3);
|
||||
Ellipse(b.x - 3, b.y - 3, b.x + 3, b.y + 3);
|
||||
Ellipse(c.x - 3, c.y - 3, c.x + 3, c.y + 3);
|
||||
pen.width:=1;
|
||||
pen.mode:=pmCopy;
|
||||
// brush.Color := pen.Color;
|
||||
end;
|
||||
|
||||
pen.color := clWhite;
|
||||
@ -1128,7 +1132,6 @@ begin
|
||||
end
|
||||
else if (mouseOverTriangle>=0) and (mouseOverCorner >= 0) then // highlight corner under cursor
|
||||
begin
|
||||
// brush.Color := GetTriangleColor(mouseOverTriangle) shr 1 and $7f7f7f;
|
||||
ax := integer(round(ix + (MainTriangles[mouseOverTriangle].x[mouseOverCorner] - gCenterX) * sc));
|
||||
ay := integer(round(iy - (MainTriangles[mouseOverTriangle].y[mouseOverCorner] - gCenterY) * sc));
|
||||
Ellipse(ax - 4, ay - 4, ax + 4, ay + 4);
|
||||
@ -1141,19 +1144,11 @@ begin
|
||||
pen.Color:=clWhite;
|
||||
brush.Color:=clSilver;
|
||||
Ellipse(ax - 2, ay - 2, ax + 2, ay + 2);
|
||||
{
|
||||
MoveTo(ax-3, ay);
|
||||
LineTo(ax, ay-3);
|
||||
LineTo(ax+3, ay);
|
||||
LineTo(ax, ay+3);
|
||||
LineTo(ax-3, ay);
|
||||
}
|
||||
// --
|
||||
end;
|
||||
// GraphImage.Picture.Graphic := Bitmap;
|
||||
// GraphImage.Refresh;
|
||||
TriangleView.Canvas.Draw(0, 0, Bitmap);
|
||||
finally
|
||||
// BitMap.Free;
|
||||
BitMap.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1161,22 +1156,25 @@ procedure TEditForm.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
//
|
||||
TriangleGraph := TTriangleGraph.Create(self);
|
||||
TriangleGraph.TabStop := True;
|
||||
TriangleGraph.Parent := GrphPnl;
|
||||
TriangleGraph.Align := alClient;
|
||||
TriangleGraph.Visible := True;
|
||||
// Custom control setup
|
||||
TriangleView := TCustomDrawControl.Create(self);
|
||||
TriangleView.TabStop := True;
|
||||
TriangleView.TabOrder := 0;
|
||||
TriangleView.Parent := GrphPnl;
|
||||
TriangleView.Align := alClient;
|
||||
TriangleView.Visible := True;
|
||||
|
||||
TriangleGraph.OnDblClick := GraphImageDblClick;
|
||||
TriangleGraph.OnMouseDown := GraphImageMouseDown;
|
||||
TriangleGraph.OnMouseMove := GraphImageMouseMove;
|
||||
TriangleGraph.OnMouseUp := GraphImageMouseUp;
|
||||
TriangleGraph.OnMouseWheel := EditMouseWheel;
|
||||
TriangleGraph.OnKeyDown := EditKeyDown;
|
||||
TriangleView.OnPaint := TriangleViewPaint;
|
||||
|
||||
// TriangleGraph.PopupMenu := EditPopup;
|
||||
// TriangleGraph.OnPaint :=
|
||||
TriangleView.OnDblClick := TriangleViewDblClick;
|
||||
TriangleView.OnMouseDown := TriangleViewMouseDown;
|
||||
TriangleView.OnMouseMove := TriangleViewMouseMove;
|
||||
TriangleView.OnMouseUp := TriangleViewMouseUp;
|
||||
TriangleView.OnMouseWheel := TriangleViewMouseWheel;
|
||||
TriangleView.OnKeyDown := TriangleViewKeyDown;
|
||||
|
||||
TriangleView.OnEnter := rgPivotClicked; // hack:
|
||||
TriangleView.OnExit := rgPivotClicked; // there's only Invalidate() in there :)
|
||||
//
|
||||
|
||||
for i:= 0 to NRVAR - 1 do begin
|
||||
@ -1187,7 +1185,7 @@ begin
|
||||
vleVariables.InsertRow(GetVariableNameAt(i), '0', True);
|
||||
end;
|
||||
|
||||
bm := TBitmap.Create;
|
||||
// bm := TBitmap.Create;
|
||||
GraphZoom := 1;
|
||||
|
||||
case EditPrevQual of
|
||||
@ -1216,7 +1214,7 @@ begin
|
||||
VarsCache[i] := MinDouble;
|
||||
end;
|
||||
|
||||
procedure TEditForm.GraphImageMouseMove(Sender: TObject; Shift: TShiftState;
|
||||
procedure TEditForm.TriangleViewMouseMove(Sender: TObject; Shift: TShiftState;
|
||||
X, Y: integer);
|
||||
var
|
||||
vx, vy, fx, fy: double;
|
||||
@ -1226,7 +1224,7 @@ var
|
||||
d: double;
|
||||
label FoundCorner;
|
||||
begin
|
||||
Scale(fx, fy, x, y, TriangleGraph.Width, TriangleGraph.Height);
|
||||
Scale(fx, fy, x, y);
|
||||
// --Z--
|
||||
StatusBar.Panels[0].Text := Format('X: %f', [fx]);
|
||||
StatusBar.Panels[1].Text := Format('Y: %f', [fy]);
|
||||
@ -1265,16 +1263,16 @@ FoundCorner:
|
||||
|
||||
|
||||
if (mouseOverTriangle >= 0) and (SelectMode or (mouseOverTriangle = SelectedTriangle)) then
|
||||
TriangleGraph.Cursor := crHandPoint
|
||||
TriangleView.Cursor := crHandPoint
|
||||
else
|
||||
TriangleGraph.Cursor := crArrow;
|
||||
TriangleView.Cursor := crArrow;
|
||||
|
||||
if graphDragMode then // graph panning
|
||||
if viewDragMode then // graph panning
|
||||
begin
|
||||
dragged := true;
|
||||
viewDragged := true;
|
||||
GcenterX := GcenterX - (fx - oldx);
|
||||
GcenterY := GcenterY - (fy - oldy);
|
||||
DrawGraph;
|
||||
TriangleView.Refresh;
|
||||
exit;
|
||||
end;
|
||||
|
||||
@ -1386,24 +1384,24 @@ FoundCorner:
|
||||
if (mouseOverTriangle >= 0) then
|
||||
StatusBar.Panels[2].Text := Format('Transform #%d', [mouseOverTriangle+1])
|
||||
else StatusBar.Panels[2].Text := '';
|
||||
DrawGraph;
|
||||
TriangleView.Refresh;;
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TEditForm.GraphImageMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
procedure TEditForm.TriangleViewMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: integer);
|
||||
var
|
||||
d, fx, fy: double;
|
||||
i, j: integer;
|
||||
//label GotCorner;
|
||||
begin
|
||||
// intoldx := x;
|
||||
// intoldy := y;
|
||||
TWinControl(Sender).SetFocus;
|
||||
|
||||
CornerCaught := False;
|
||||
TriangleCaught := False;
|
||||
dragged := false; // --Z--
|
||||
Scale(fx, fy, x, y, TriangleGraph.Width, TriangleGraph.Height);
|
||||
Shift := Shift - [ssLeft]; // --Z--
|
||||
viewDragged := false;
|
||||
Scale(fx, fy, x, y);
|
||||
Shift := Shift - [ssLeft];
|
||||
if Button = mbLeft then
|
||||
begin
|
||||
if SelectMode = false then // Only change the selected triangle
|
||||
@ -1424,7 +1422,7 @@ begin
|
||||
CornerCaught := True;
|
||||
DrawPreview;
|
||||
ShowSelectedInfo;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
exit;
|
||||
//
|
||||
end;
|
||||
@ -1449,7 +1447,7 @@ begin
|
||||
CornerCaught := True;
|
||||
DrawPreview;
|
||||
ShowSelectedInfo;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
@ -1478,32 +1476,32 @@ begin
|
||||
|
||||
DrawPreview;
|
||||
ShowSelectedInfo;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
exit;
|
||||
end
|
||||
else if Button = mbRight then // graph panning
|
||||
begin
|
||||
SetCaptureControl(TriangleGraph);
|
||||
SetCaptureControl(TriangleView);
|
||||
Screen.Cursor := crSizeAll;
|
||||
|
||||
graphDragMode := true;
|
||||
viewDragMode := true;
|
||||
oldx := fx;
|
||||
oldY := fy;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEditForm.GraphImageMouseUp(Sender: TObject; Button: TMouseButton;
|
||||
procedure TEditForm.TriangleViewMouseUp(Sender: TObject; Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: integer);
|
||||
begin
|
||||
if Button = mbRight then // --Z-- panning
|
||||
begin
|
||||
graphDragMode := false;
|
||||
if dragged=false then // haven't dragged - popup menu then
|
||||
viewDragMode := false;
|
||||
if viewDragged=false then // haven't dragged - popup menu then
|
||||
begin
|
||||
GetCursorPos(mousepos); // hmmm
|
||||
EditPopup.Popup(mousepos.x, mousepos.y);
|
||||
end
|
||||
else dragged := false;
|
||||
else viewDragged := false;
|
||||
Screen.Cursor := crDefault;
|
||||
SetCaptureControl(nil);
|
||||
exit;
|
||||
@ -1516,7 +1514,7 @@ begin
|
||||
UpdateFlame(true);
|
||||
HasChanged := False;
|
||||
end
|
||||
else DrawGraph;
|
||||
else TriangleView.Invalidate;
|
||||
end;
|
||||
|
||||
{
|
||||
@ -1670,6 +1668,7 @@ begin
|
||||
pnlGridColor1.Color := GridColor1;
|
||||
pnlGridColor2.Color := GridColor2;
|
||||
pnlReference.color := TColor(ReferenceTriangleColor);
|
||||
|
||||
UpdateDisplay;
|
||||
end;
|
||||
|
||||
@ -1723,27 +1722,7 @@ end;
|
||||
procedure TEditForm.mnuAutoZoomClick(Sender: TObject);
|
||||
begin
|
||||
AutoZoom;
|
||||
DrawGraph;
|
||||
end;
|
||||
{
|
||||
procedure TEditForm.mnuXFlipClick(Sender: TObject);
|
||||
begin
|
||||
// MainTriangles[SelectedTriangle] := FlipTriangleHorizontal(MainTriangles[SelectedTriangle]);
|
||||
with MainTriangles[SelectedTriangle] do // --Z--
|
||||
begin
|
||||
x[0] := GetPivot.x - x[0];
|
||||
x[1] := x[1];
|
||||
x[2] := x[2];
|
||||
end;
|
||||
UpdateFlame(True);
|
||||
end;
|
||||
|
||||
procedure TEditForm.mnuYFlipClick(Sender: TObject);
|
||||
begin
|
||||
MainTriangles[SelectedTriangle] := FlipTriangleVertical(MainTriangles[SelectedTriangle]);
|
||||
UpdateFlame(True);
|
||||
end;
|
||||
}
|
||||
|
||||
procedure TEditForm.btnCloseClick(Sender: TObject);
|
||||
begin
|
||||
@ -1753,7 +1732,6 @@ end;
|
||||
procedure TEditForm.FormResize(Sender: TObject);
|
||||
begin
|
||||
Autozoom;
|
||||
DrawGraph;
|
||||
end;
|
||||
|
||||
procedure TEditForm.CornerEditExit(Sender: TObject);
|
||||
@ -1992,7 +1970,7 @@ end;
|
||||
|
||||
procedure TEditForm.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
bm.free;
|
||||
// bm.free;
|
||||
cp.free;
|
||||
Render.free;
|
||||
end;
|
||||
@ -2104,17 +2082,16 @@ begin
|
||||
UpdateFlame(True);
|
||||
end;
|
||||
|
||||
procedure TEditForm.GraphImageDblClick(Sender: TObject);
|
||||
procedure TEditForm.TriangleViewDblClick(Sender: TObject);
|
||||
begin
|
||||
AutoZoom;
|
||||
DrawGraph;
|
||||
end;
|
||||
|
||||
procedure TEditForm.cbTransformsChange(Sender: TObject);
|
||||
begin
|
||||
if SelectedTriangle <> cbTransforms.ItemIndex then SelectedTriangle := cbTransforms.ItemIndex;
|
||||
ShowSelectedInfo;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
|
||||
procedure TEditForm.cbTransformsDrawItem(Control: TWinControl;
|
||||
@ -2304,13 +2281,13 @@ end;
|
||||
procedure TEditForm.chkUseXFormColorClick(Sender: TObject);
|
||||
begin
|
||||
UseTransformColors := chkUseXFormColor.checked;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
|
||||
procedure TEditForm.chkFlameBackClick(Sender: TObject);
|
||||
begin
|
||||
UseFlameBackground := chkFlameBack.checked;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
|
||||
procedure TEditForm.pnlBackColorClick(Sender: TObject);
|
||||
@ -2321,7 +2298,7 @@ begin
|
||||
pnlBackColor.Color := AdjustForm.ColorDialog.Color;
|
||||
BackgroundColor := Integer(pnlBackColor.color);
|
||||
GrphPnl.Color := BackgroundColor;
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2332,7 +2309,7 @@ begin
|
||||
begin
|
||||
pnlReference.Color := AdjustForm.ColorDialog.Color;
|
||||
ReferenceTriangleColor := Integer(pnlReference.color);
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2343,7 +2320,7 @@ begin
|
||||
begin
|
||||
pnlGridColor1.Color := AdjustForm.ColorDialog.Color;
|
||||
GridColor1 := Integer(pnlGridColor1.color);
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2354,7 +2331,7 @@ begin
|
||||
begin
|
||||
pnlGridColor2.Color := AdjustForm.ColorDialog.Color;
|
||||
GridColor2 := Integer(pnlGridColor2.color);
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2772,11 +2749,10 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEditForm.editKeyDown(Sender: TObject; var Key: Word;
|
||||
procedure TEditForm.TriangleViewKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
var
|
||||
coeff: double;
|
||||
label goNext;
|
||||
begin
|
||||
if Shift = [ssShift] then coeff := 10
|
||||
else if Shift = [ssCtrl] then coeff := 0.1
|
||||
@ -2784,47 +2760,36 @@ begin
|
||||
|
||||
// if (PageControl.TabIndex <> 2) or // variations
|
||||
// (PageControl.TabIndex <> 3) then // variables
|
||||
begin
|
||||
// MainForm.UpdateUndo;
|
||||
case key of
|
||||
VK_LEFT:
|
||||
if Shift = [ssAlt] then btTrgRotateLeftClick(Sender)
|
||||
else TrgMove(-coeff,0);
|
||||
VK_RIGHT:
|
||||
if Shift = [ssAlt] then btTrgRotateRightClick(Sender)
|
||||
else TrgMove(coeff,0);
|
||||
VK_UP:
|
||||
if Shift = [ssAlt] then btTrgScaleUpClick(Sender)
|
||||
else TrgMove(0,coeff);
|
||||
VK_DOWN:
|
||||
if Shift = [ssAlt] then btTrgScaleDownClick(Sender)
|
||||
else TrgMove(0,-coeff);
|
||||
VK_PRIOR: btTrgRotateLeftClick(Sender);
|
||||
VK_NEXT: btTrgRotateRightClick(Sender);
|
||||
VK_HOME: btTrgScaleUpClick(Sender);
|
||||
VK_END: btTrgScaleDownClick(Sender);
|
||||
VK_INSERT: mnuDupClick(Sender);
|
||||
VK_DELETE: {if Shift = [ssShift] then} mnuDeleteClick(Sender);
|
||||
else goto goNext;
|
||||
end;
|
||||
// HasChanged := True;
|
||||
key_handled:=true;
|
||||
exit;
|
||||
end;
|
||||
|
||||
goNext:
|
||||
|
||||
case key of
|
||||
VK_LEFT:
|
||||
if Shift = [ssAlt] then btTrgRotateLeftClick(Sender)
|
||||
else TrgMove(-coeff,0);
|
||||
VK_RIGHT:
|
||||
if Shift = [ssAlt] then btTrgRotateRightClick(Sender)
|
||||
else TrgMove(coeff,0);
|
||||
VK_UP:
|
||||
if Shift = [ssAlt] then btTrgScaleUpClick(Sender)
|
||||
else TrgMove(0,coeff);
|
||||
VK_DOWN:
|
||||
if Shift = [ssAlt] then btTrgScaleDownClick(Sender)
|
||||
else TrgMove(0,-coeff);
|
||||
VK_PRIOR: btTrgRotateLeftClick(Sender);
|
||||
VK_NEXT: btTrgRotateRightClick(Sender);
|
||||
VK_HOME: btTrgScaleUpClick(Sender);
|
||||
VK_END: btTrgScaleDownClick(Sender);
|
||||
VK_INSERT: mnuDupClick(Sender);
|
||||
VK_DELETE: {if Shift = [ssShift] then} mnuDeleteClick(Sender);
|
||||
|
||||
VK_ADD:
|
||||
if SelectedTriangle < Transforms-1 then begin
|
||||
Inc(SelectedTriangle);
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
ShowSelectedInfo;
|
||||
end;
|
||||
VK_SUBTRACT:
|
||||
if SelectedTriangle > 0 then begin
|
||||
Dec(SelectedTriangle);
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
ShowSelectedInfo;
|
||||
end;
|
||||
VK_SPACE: EditForm.tbSelectClick(Sender);
|
||||
@ -2844,11 +2809,9 @@ goNext:
|
||||
Ord('V'): EditForm.rgPivot.ItemIndex:=3;
|
||||
Ord('B'): EditForm.rgPivot.ItemIndex:=4;
|
||||
else
|
||||
key_handled := false;
|
||||
exit;
|
||||
end;
|
||||
key := 0;
|
||||
key_handled := true;
|
||||
end;
|
||||
|
||||
procedure TEditForm.editKeyPress(Sender: TObject; var Key: Char);
|
||||
@ -2881,14 +2844,14 @@ begin
|
||||
SetCursorPos(MousePos.x, MousePos.y);
|
||||
end;
|
||||
|
||||
procedure TEditForm.editMouseWheel(Sender: TObject; Shift: TShiftState;
|
||||
procedure TEditForm.TriangleViewMouseWheel(Sender: TObject; Shift: TShiftState;
|
||||
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
||||
begin
|
||||
if WheelDelta > 0 then GraphZoom := GraphZoom * 1.25
|
||||
else GraphZoom := GraphZoom * 0.8;
|
||||
EditForm.StatusBar.Panels[2].Text := Format('Zoom: %f', [GraphZoom]);
|
||||
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
Handled := true;
|
||||
end;
|
||||
|
||||
@ -2902,17 +2865,9 @@ end;
|
||||
|
||||
procedure TEditForm.rgPivotClicked(Sender: TObject);
|
||||
begin
|
||||
DrawGraph;
|
||||
TriangleView.Invalidate;
|
||||
end;
|
||||
|
||||
{
|
||||
procedure TEditForm.VEVarsSelectCell(Sender: TObject; ACol, ARow: Integer;
|
||||
var CanSelect: Boolean);
|
||||
begin
|
||||
DrawGraph;
|
||||
end;
|
||||
}
|
||||
|
||||
procedure TEditForm.tbEditModeClick(Sender: TObject);
|
||||
begin
|
||||
if Sender = tbRotate then editMode := modeRotate
|
||||
@ -3024,11 +2979,6 @@ begin
|
||||
}
|
||||
end;
|
||||
|
||||
procedure TEditForm.cbKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
begin
|
||||
key:=0;
|
||||
end;
|
||||
|
||||
procedure TEditForm.tbFullViewClick(Sender: TObject);
|
||||
begin
|
||||
MainForm.mnuFullScreenClick(Sender);
|
||||
|
@ -2444,8 +2444,7 @@ end;
|
||||
|
||||
procedure TMainForm.mnuAutoZoomClick(Sender: TObject);
|
||||
begin
|
||||
EditForm.AutoZoom;
|
||||
EditForm.DrawGraph;
|
||||
EditForm.AutoZoom; // redraw included
|
||||
end;
|
||||
|
||||
function GradTitle(str: string): string;
|
||||
|
Loading…
Reference in New Issue
Block a user