BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/Display/ExternalBitmap/Unit1.pas

379 lines
12 KiB
Plaintext

unit Unit1;
interface
uses
Windows, Messages, SysUtils, {$IfNDef VER130} Variants, {$EndIf} Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Menus, ieview, imageenview, hyiedefs, ComCtrls, hyieutils, iexBitmaps,
iesettings, iexLayers, iexRulers;
type
TForm1 = class(TForm)
Panel1: TPanel;
Navigator1: TImageEnView;
ImageEnView1: TImageEnView;
ImageEnView2: TImageEnView;
ImageEnView3: TImageEnView;
GroupBox1: TGroupBox;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Splitter1: TSplitter;
Splitter3: TSplitter;
Panel8: TPanel;
Splitter4: TSplitter;
ImageEnView4: TImageEnView;
Panel10: TPanel;
Panel11: TPanel;
Splitter6: TSplitter;
MainView1: TImageEnView;
Splitter2: TSplitter;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Panel9: TPanel;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
Panel15: TPanel;
Panel16: TPanel;
cbZoomFilter1: TComboBox;
GroupBox2: TGroupBox;
Label6: TLabel;
Panel17: TPanel;
Panel18: TPanel;
ProgressBar1: TProgressBar;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ImageEnView1ZoomIn(Sender: TObject; var NewZoom: Double);
procedure ImageEnView2ZoomIn(Sender: TObject; var NewZoom: Double);
procedure ImageEnView3ZoomIn(Sender: TObject; var NewZoom: Double);
procedure ImageEnView4ZoomIn(Sender: TObject; var NewZoom: Double);
procedure MainView1ZoomIn(Sender: TObject; var NewZoom: Double);
procedure ImageEnView1ZoomOut(Sender: TObject; var NewZoom: Double);
procedure ImageEnView2ZoomOut(Sender: TObject; var NewZoom: Double);
procedure ImageEnView3ZoomOut(Sender: TObject; var NewZoom: Double);
procedure ImageEnView4ZoomOut(Sender: TObject; var NewZoom: Double);
procedure MainView1ZoomOut(Sender: TObject; var NewZoom: Double);
procedure cbZoomFilter1Change(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Navigator1Progress(Sender: TObject; per: Integer);
procedure ImageEnView1Progress(Sender: TObject; per: Integer);
procedure ImageEnView2Progress(Sender: TObject; per: Integer);
procedure ImageEnView3Progress(Sender: TObject; per: Integer);
procedure ImageEnView4Progress(Sender: TObject; per: Integer);
procedure MainView1Progress(Sender: TObject; per: Integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
INIFiles;
{$R *.DFM}
{$R WindowsTheme.res}
procedure TForm1.FormCreate(Sender: TObject);
var
FIniFile: TIniFile;
begin
{$IFNDEF VER130}
Panel17 .ParentBackground := False;
Panel18 .ParentBackground := False;
Panel16 .ParentBackground := False;
Panel14 .ParentBackground := False;
Panel1 .ParentBackground := False;
Panel9 .ParentBackground := False;
Panel15 .ParentBackground := False;
{$ENDIF VER130}
cbZoomFilter1.ItemIndex := 0;
FIniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
// get & set form position & state
Left := FIniFile.ReadInteger('Form', 'Left', 65);
Top := FIniFile.ReadInteger('Form', 'Top', 10);
Width := FIniFile.ReadInteger('Form', 'Width', 600);
Height := FIniFile.ReadInteger('Form', 'Height', 460);
WindowState := TWindowState(FIniFile.ReadInteger('Form', 'Window State', 0));
Panel3.Width := FIniFile.ReadInteger('Panel 1', 'Width', 319);
Panel3.Height := FIniFile.ReadInteger('Panel 1', 'Height', 189);
Panel13.Width := FIniFile.ReadInteger('Panel 2', 'Width', 319);
Panel13.Height := FIniFile.ReadInteger('Panel 2', 'Height', 189);
Panel6.Width := FIniFile.ReadInteger('Panel 3', 'Width', 319);
Panel6.Height := FIniFile.ReadInteger('Panel 3', 'Height', 189);
Panel4.Width := FIniFile.ReadInteger('Panel 4', 'Width', 319);
Panel4.Height := FIniFile.ReadInteger('Panel 4', 'Height', 189);
Panel11.Width := FIniFile.ReadInteger('Main Panel', 'Width', 650);
Panel11.Height := FIniFile.ReadInteger('Main Panel', 'Height', 252);
Panel1.Width := FIniFile.ReadInteger('Nav Panel', 'Width', 214);
Panel1.Height := FIniFile.ReadInteger('Nav Panel ', 'Height', 679);
finally FIniFile.Free;
end;
ImageEnView1.SetExternalBitmap(MainView1.IEBitmap);
ImageEnView2.SetExternalBitmap(MainView1.IEBitmap);
ImageEnView3.SetExternalBitmap(MainView1.IEBitmap);
ImageEnView4.SetExternalBitmap(MainView1.IEBitmap);
MainView1.SetNavigator(Navigator1);
ImageEnView1.Clear;
ImageEnView2.Clear;
ImageEnView3.Clear;
ImageEnView4.Clear;
Navigator1.Clear;
MainView1.Clear;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
FIniFile: TIniFile;
begin
FIniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.INI'));
try
// save form position & state
FIniFile.WriteInteger('Form', 'Left', Left);
FIniFile.WriteInteger('Form', 'Top', Top);
FIniFile.WriteInteger('Form', 'Width', Width);
FIniFile.WriteInteger('Form', 'Height', Height);
FIniFile.WriteInteger('Form', 'Window State', Integer(TWindowState(WindowState)));
FIniFile.WriteInteger('Panel 1', 'Width', Panel3.Width);
FIniFile.WriteInteger('Panel 1', 'Height', Panel3.Height);
FIniFile.WriteInteger('Panel 2', 'Width', Panel13.Width);
FIniFile.WriteInteger('Panel 2', 'Height', Panel13.Height);
FIniFile.WriteInteger('Panel 3', 'Width', Panel6.Width);
FIniFile.WriteInteger('Panel 3', 'Height', Panel6.Height);
FIniFile.WriteInteger('Panel 4', 'Width', Panel4.Width);
FIniFile.WriteInteger('Panel 4', 'Height', Panel4.Height);
FIniFile.WriteInteger('Main Panel', 'Width', Panel11.Width);
FIniFile.WriteInteger('Main Panel', 'Height', Panel11.Height);
FIniFile.WriteInteger('Nav Panel', 'Width', Panel1.Width);
FIniFile.WriteInteger('Nav Panel ', 'Height', Panel1.Height);
finally FIniFile.Free;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ImageEnView1.SetExternalBitmap(nil);
ImageEnView2.SetExternalBitmap(nil);
ImageEnView3.SetExternalBitmap(nil);
ImageEnView4.SetExternalBitmap(nil);
end;
procedure TForm1.ImageEnView1ZoomIn(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView1.Cursor := crIEZoomIn;
Label1.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView1.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.ImageEnView2ZoomIn(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView2.Cursor := crIEZoomIn;
Label2.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView2.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.ImageEnView3ZoomIn(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView3.Cursor := crIEZoomIn;
Label3.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView3.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.ImageEnView4ZoomIn(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView4.Cursor := crIEZoomIn;
Label4.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView4.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.MainView1ZoomIn(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
MainView1.Cursor := crIEZoomIn;
Label6.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
MainView1.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.ImageEnView1ZoomOut(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView1.Cursor := crIEZoomOut;
Label1.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView1.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.ImageEnView2ZoomOut(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView2.Cursor := crIEZoomOut;
Label2.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView2.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.ImageEnView3ZoomOut(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView3.Cursor := crIEZoomOut;
Label3.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView3.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.ImageEnView4ZoomOut(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
ImageEnView4.Cursor := crIEZoomOut;
Label4.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
ImageEnView4.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.MainView1ZoomOut(Sender: TObject; var NewZoom: Double);
begin
Screen.Cursor := crHourglass;
try
MainView1.Cursor := crIEZoomOut;
Label6.Caption := ' Zoom - ' + FloatToStr(NewZoom) + '%';
MainView1.Hint := 'Zoom - ' + FloatToStr(NewZoom) + '%';
Application.ActivateHint(Mouse.CursorPos);
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.cbZoomFilter1Change(Sender: TObject);
begin
Screen.Cursor := crHourglass;
try
ImageEnView1.ZoomFilter := TResampleFilter(cbZoomFilter1.Itemindex);
ImageEnView2.ZoomFilter := TResampleFilter(cbZoomFilter1.Itemindex);
ImageEnView3.ZoomFilter := TResampleFilter(cbZoomFilter1.Itemindex);
ImageEnView4.ZoomFilter := TResampleFilter(cbZoomFilter1.Itemindex);
MainView1.ZoomFilter := TResampleFilter(cbZoomFilter1.Itemindex);
Navigator1.ZoomFilter := TResampleFilter(cbZoomFilter1.Itemindex);
ImageEnView1.Update;
ImageEnView2.Update;
ImageEnView3.Update;
ImageEnView4.Update;
Navigator1.Update;
finally;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.Navigator1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
end;
procedure TForm1.ImageEnView1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
end;
procedure TForm1.ImageEnView2Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
end;
procedure TForm1.ImageEnView3Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
end;
procedure TForm1.ImageEnView4Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
end;
procedure TForm1.MainView1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Screen.Cursor := crHourglass;
try
ProgressBar1.Visible := true;
MainView1.IO.LoadFromFile(MainView1.IO.ExecuteOpenDialog);
ImageEnView1.Zoom := 10;
ImageEnView2.Zoom := 25;
ImageEnView3.Zoom := 50;
ImageEnView4.Zoom := 75;
ImageEnView1.Update;
ImageEnView2.Update;
ImageEnView3.Update;
ImageEnView4.Update;
ProgressBar1.Position := 0;
ProgressBar1.Visible := false;
finally;
Screen.Cursor := crDefault;
end;
end;
end.