379 lines
12 KiB
Plaintext
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.
|