BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/FullApps/ImageEnPainter/uRotate.pas

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.