95 lines
2.5 KiB
Plaintext
95 lines
2.5 KiB
Plaintext
//------------------------------------------------------------------------------
|
|
// ImageEn Painter : Version 1.0
|
|
// Copyright (c) 2007 : Adirondack Software & Graphics
|
|
// Created : 05-25-2007
|
|
// Last Modification : 05-25-2007
|
|
// Description : Rotate Unit
|
|
//------------------------------------------------------------------------------
|
|
|
|
unit uRotate;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ComCtrls, ExtCtrls, ImageEn, ImageEnView, ImageEnProc, ieview,
|
|
hyieutils, iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers;
|
|
|
|
type
|
|
TfrmRotate = class ( TForm )
|
|
Label1: TLabel;
|
|
Edit1: TEdit;
|
|
UpDown1: TUpDown;
|
|
CheckBox1: TCheckBox;
|
|
ImageEnView1: TImageEnView;
|
|
Panel1: TPanel;
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
procedure FormShow ( Sender: TObject );
|
|
procedure UpDown1Click ( Sender: TObject; Button: TUDBtnType );
|
|
procedure Edit1KeyUp ( Sender: TObject; var Key: Word; Shift: TShiftState );
|
|
procedure FormActivate(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmRotate: TfrmRotate;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
procedure TfrmRotate.FormActivate(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.Rotate ( StrToIntDef ( Edit1.Text, 90 ) );
|
|
end;
|
|
|
|
procedure TfrmRotate.FormShow ( Sender: TObject );
|
|
begin
|
|
ImageEnView1.SetChessboardStyle ( 6, bsSolid );
|
|
ImageEnView1.Proc.SaveUndo;
|
|
ImageEnView1.Proc.Rotate ( UpDown1.Position, Checkbox1.Checked );
|
|
end;
|
|
|
|
procedure TfrmRotate.UpDown1Click ( Sender: TObject; Button: TUDBtnType );
|
|
var
|
|
RotationValue: integer;
|
|
begin
|
|
RotationValue := UpDown1.Position;
|
|
ImageEnView1.Proc.Undo;
|
|
ImageEnView1.Proc.Rotate ( RotationValue, Checkbox1.Checked );
|
|
ImageEnView1.Fit;
|
|
end;
|
|
|
|
procedure TfrmRotate.Edit1KeyUp ( Sender: TObject; var Key: Word;
|
|
Shift: TShiftState );
|
|
const
|
|
LF = #10;
|
|
var
|
|
RotationValue: integer;
|
|
begin
|
|
RotationValue := 90;
|
|
try
|
|
RotationValue := StrToInt ( Edit1.Text );
|
|
except
|
|
on E: EConvertError do
|
|
begin
|
|
if ( Edit1.Text <> '-' ) and ( Edit1.Text <> '' ) then
|
|
MessageDlg ( E.Message + LF + 'Please enter a valid value', mtError, [ mbOK ], 0 );
|
|
end;
|
|
end;
|
|
if ( RotationValue > -359 ) and ( RotationValue < 359 ) then
|
|
if RotationValue <> 0 then
|
|
begin
|
|
ImageEnView1.Proc.Undo;
|
|
ImageEnView1.Proc.Rotate ( RotationValue, Checkbox1.Checked );
|
|
ImageEnView1.Fit;
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|