BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/Other/MouseWheel/uMain.pas

193 lines
6.3 KiB
Plaintext

{------------------------------------------------------------------------------}
{ }
{ Demo of TIEMouseWheelParams in TImageEnView and TImageEnMView }
{ }
{ ImageEn, Image Display and Editing Library }
{ http://www.imageen.com }
{ }
{------------------------------------------------------------------------------}
(*
Copyright (c) 1998-2014 by Carlotta Calandra. All rights reserved.
Copyright (c) 2011-2014 by Xequte software.
This software comes without express or implied warranty.
In no case shall the author be liable for any damage or unwanted behavior of any
computer hardware and/or software.
Author grants you the right to include the component
in your application, whether COMMERCIAL, SHAREWARE, or FREEWARE.
ImageEn, IEvolution and ImageEn ActiveX may not be included in any
commercial, shareware or freeware libraries or components.
www.ImageEn.com
*)
unit uMain;
interface
uses
ComCtrls, Forms, Classes, Controls, imageenview, ieview, iemview, Types, Messages, StdCtrls, ExtCtrls, hyieutils, iexBitmaps, hyiedefs,
iesettings, iexLayers, iexRulers;
type
TfrmMain = class(TForm)
ImageEnMView1: TImageEnMView;
ImageEnView1: TImageEnView;
StatusBar1: TStatusBar;
pnlTop: TPanel;
lblFolder: TLabel;
edtFolder: TEdit;
btnGoFolder: TButton;
lblIEMMouseWheel: TLabel;
cmbIEMMouseWheel: TComboBox;
lblIEVMouseWheel: TLabel;
cmbIEVMouseWheel: TComboBox;
grpProps: TGroupBox;
Splitter1: TSplitter;
chkInvertDirection: TCheckBox;
edtMouseWheelValue: TEdit;
updMouseWheelValue: TUpDown;
cmbMouseWheelVariation: TComboBox;
lblMouseWheelValue: TLabel;
lblMouseWheelZoomPos: TLabel;
cmbMouseWheelZoomPos: TComboBox;
lblNote: TLabel;
procedure btnGoFolderClick(Sender: TObject);
procedure chkInvertDirectionClick(Sender: TObject);
procedure cmbIEVMouseWheelChange(Sender: TObject);
procedure cmbMouseWheelChange(Sender: TObject);
procedure cmbMouseWheelVariationChange(Sender: TObject);
procedure cmbMouseWheelZoomPosChange(Sender: TObject);
procedure edtMouseWheelValueChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ImageEnMView1ImageSelect(Sender: TObject; idx: Integer);
procedure ImageEnView1ViewChange(Sender: TObject; Change: Integer);
private
procedure ReadDefaultValues;
procedure UpdateDisplay;
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
uses
SysUtils, Windows, iexWindowsFunctions;
{$R *.dfm}
{$R WindowsTheme.res}
procedure TfrmMain.btnGoFolderClick(Sender: TObject);
begin
ImageEnMView1.Clear;
ImageEnMView1.FillFromDirectory( edtFolder.text );
ImageEnMView1.SelectedImage := 0;
UpdateDisplay;
end;
procedure TfrmMain.chkInvertDirectionClick(Sender: TObject);
begin
ImageEnView1. MouseWheelParams.InvertDirection := chkInvertDirection.checked;
ImageEnMView1.MouseWheelParams.InvertDirection := chkInvertDirection.checked;
end;
procedure TfrmMain.cmbIEVMouseWheelChange(Sender: TObject);
begin
ImageEnView1.MouseWheelParams.Action := TIEMouseWheelParamsAction(cmbIEVMouseWheel.ItemIndex);
ImageEnView1.SetFocus;
cmbMouseWheelZoomPos.Enabled := ImageEnView1.MouseWheelParams.Action = iemwZoom;
lblMouseWheelZoomPos.Enabled := ImageEnView1.MouseWheelParams.Action = iemwZoom;
end;
procedure TfrmMain.cmbMouseWheelChange(Sender: TObject);
begin
ImageEnMView1.MouseWheelParams.Action := TIEMouseWheelParamsAction(cmbIEMMouseWheel.ItemIndex);
ImageEnMView1.SetFocus;
end;
procedure TfrmMain.cmbMouseWheelVariationChange(Sender: TObject);
begin
ImageEnView1. MouseWheelParams.Variation := TIEMouseWheelParamsVariation( cmbMouseWheelVariation.ItemIndex );
ImageEnMView1.MouseWheelParams.Variation := TIEMouseWheelParamsVariation( cmbMouseWheelVariation.ItemIndex );
end;
procedure TfrmMain.cmbMouseWheelZoomPosChange(Sender: TObject);
begin
ImageEnView1. MouseWheelParams.ZoomPosition := TIEMouseWheelParamsZoomPosition( cmbMouseWheelZoomPos.ItemIndex );
ImageEnMView1.MouseWheelParams.ZoomPosition := TIEMouseWheelParamsZoomPosition( cmbMouseWheelZoomPos.ItemIndex );
end;
procedure TfrmMain.edtMouseWheelValueChange(Sender: TObject);
var
iValue: Integer;
begin
try
iValue := StrToInt( edtMouseWheelValue.Text);
ImageEnView1. MouseWheelParams.Value := iValue;
ImageEnMView1.MouseWheelParams.Value := iValue;
except
ReadDefaultValues;
end;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
edtFolder.text := WindowsMyPicturesFolder;
ImageEnMView1.SetModernStyling();
ReadDefaultValues;
btnGoFolderClick( nil );
end;
procedure TfrmMain.ImageEnMView1ImageSelect(Sender: TObject; idx: Integer);
begin
UpdateDisplay;
end;
procedure TfrmMain.ImageEnView1ViewChange(Sender: TObject; Change: Integer);
begin
StatusBar1.Panels[2].Text := 'Zoom: ' + IntToStr( Trunc( ImageEnView1.Zoom ) ) + '%';
end;
procedure TfrmMain.ReadDefaultValues;
begin
cmbIEMMouseWheel.ItemIndex := ord( ImageEnMView1.MouseWheelParams.Action );
cmbIEVMouseWheel.ItemIndex := ord( ImageEnView1 .MouseWheelParams.Action );
edtMouseWheelValue.Text := IntToStr( ImageEnView1. MouseWheelParams.Value );
cmbMouseWheelVariation.ItemIndex := ord( ImageEnView1.MouseWheelParams.Variation );
cmbMouseWheelZoomPos.ItemIndex := ord( ImageEnView1. MouseWheelParams.ZoomPosition );
chkInvertDirection.checked := ImageEnView1.MouseWheelParams.InvertDirection;
end;
procedure TfrmMain.UpdateDisplay;
begin
StatusBar1.Panels[0].Text := 'Select: ' + IntToStr( ImageEnMView1.SelectedImage );
StatusBar1.Panels[1].Text := 'Count: ' + IntToStr( ImageEnMView1.ImageCount );
StatusBar1.Panels[2].Text := 'Zoom: ' + IntToStr( Trunc( ImageEnView1.Zoom ) ) + '%';
if ImageEnMView1.SelectedImage = -1 then
ImageEnView1.Blank
else
begin
ImageEnView1.IEBitmap.Assign(ImageEnMView1.GetTIEBitmap( ImageEnMView1.SelectedImage ));
try
ImageEnView1.Update;
finally
ImageEnMView1.ReleaseBitmap( ImageEnMView1.SelectedImage );
end;
ImageEnMView1.Update;
end;
end;
end.