BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/Display/ImageComp/umain.pas

139 lines
3.5 KiB
Plaintext

unit umain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ieview, imageenview, ExtCtrls, Menus, StdCtrls, hyiedefs, hyieutils, iexBitmaps,
iesettings, iexLayers, iexRulers;
type
TMainForm = class(TForm)
ImageEnView1: TImageEnView;
ImageEnView2: TImageEnView;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Button2: TButton;
procedure FormResize(Sender: TObject);
procedure ImageEnView1ViewChange(Sender: TObject; Change: Integer);
procedure ImageEnView2ViewChange(Sender: TObject; Change: Integer);
procedure ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormActivate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SetViewers;
end;
var
MainForm: TMainForm;
implementation
uses unavi;
{$R *.DFM}
{$R WindowsTheme.res}
procedure TMainForm.FormResize(Sender: TObject);
begin
ImageEnView1.Left:=0;
ImageEnView1.Top:=0;
ImageEnView1.Width:=ClientWidth div 2;
ImageEnView1.Height:=ClientHeight - Panel1.Height;
ImageEnView2.Left:=ImageEnView1.Width+2;
ImageEnView2.Top:=0;
ImageEnview2.Width:=ClientWidth div 2 - 2;
ImageEnView2.Height:=ClientHeight - panel1.Height;
Button2.Left := ImageEnView2.Left;
end;
procedure TMainForm.SetViewers;
begin
ImageEnView1.Zoom:=1600;
ImageEnView1.SetViewXY(0,0);
ImageEnView1.DisplayGrid:=true;
ImageEnView2.Zoom:=1600;
ImageEnView2.SetViewXY(0,0);
ImageEnView2.DisplayGrid:=true;
ImageEnView1.SetNavigator( fNavi.ImageEnView1 );
ImageEnView2.SetNavigator( fNavi.ImageEnView2 );
fNavi.Show;
end;
procedure TMainForm.ImageEnView1ViewChange(Sender: TObject;
Change: Integer);
begin
ImageEnView2.SetViewXY( ImageEnView1.ViewX, ImageEnView1.ViewY);
end;
procedure TMainForm.ImageEnView2ViewChange(Sender: TObject;
Change: Integer);
begin
ImageEnView1.SetViewXY( ImageEnView2.ViewX, ImageEnView2.ViewY);
end;
procedure TMainForm.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
bmpx,bmpy:integer;
rgb:TRGB;
begin
bmpx:=ImageEnView1.XScr2Bmp(X);
bmpy:=ImageEnView1.YScr2Bmp(Y);
Label6.Caption:=inttostr(bmpx)+','+inttostr(bmpy);
if (bmpx>=0) and (bmpy>=0) and (bmpx<ImageEnView1.IEBitmap.Width) and (bmpy<ImageEnView1.IEBitmap.Height) then
begin
rgb:=ImageEnView1.IEBitmap.Pixels[bmpx,bmpy];
label2.Caption:=inttostr(rgb.r)+','+inttostr(rgb.g)+','+inttostr(rgb.b);
ImageEnView1.HighlightedPixel:=Point(bmpx,bmpy);
end;
bmpx:=ImageEnView2.XScr2Bmp(X);
bmpy:=ImageEnView2.YScr2Bmp(Y);
if (bmpx>=0) and (bmpy>=0) and (bmpx<ImageEnView2.IEBitmap.Width) and (bmpy<ImageEnView2.IEBitmap.Height) then
begin
rgb:=ImageEnView2.IEBitmap.Pixels[bmpx,bmpy];
label4.Caption:=inttostr(rgb.r)+','+inttostr(rgb.g)+','+inttostr(rgb.b);
ImageEnView2.HighlightedPixel:=Point(bmpx,bmpy);
end;
end;
procedure TMainForm.FormActivate(Sender: TObject);
begin
FormResize(self);
end;
// Open Left
procedure TMainForm.Button1Click(Sender: TObject);
begin
ImageEnView1.IO.LoadFromFile( ImageEnView1.IO.ExecuteOpenDialog );
SetViewers;
end;
// Open Right
procedure TMainForm.Button2Click(Sender: TObject);
begin
ImageEnView2.IO.LoadFromFile( ImageEnView2.IO.ExecuteOpenDialog );
SetViewers;
end;
end.