148 lines
3.8 KiB
Plaintext
148 lines
3.8 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
Menus, ieview, imageenview, ievect, ExtCtrls, imageenproc, imageenio,
|
|
Buttons, hyieutils, iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
Panel1: TPanel;
|
|
ImageEnVect1: TImageEnVect;
|
|
MainMenu1: TMainMenu;
|
|
File1: TMenuItem;
|
|
Open1: TMenuItem;
|
|
Save1: TMenuItem;
|
|
Print1: TMenuItem;
|
|
N1: TMenuItem;
|
|
Exit1: TMenuItem;
|
|
AddSpotButton: TSpeedButton;
|
|
SelectButton: TSpeedButton;
|
|
procedure Exit1Click(Sender: TObject);
|
|
procedure Open1Click(Sender: TObject);
|
|
procedure Save1Click(Sender: TObject);
|
|
procedure Print1Click(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure ButtonSwitch(Sender: TObject);
|
|
procedure ImageEnVect1ObjectOver(Sender: TObject; hobj: Integer);
|
|
procedure ImageEnVect1SelectObject(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
FileName:string;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
ImageEnVect1.MouseInteractVt:=[miObjectSelect];
|
|
ImageEnVect1.CenterNewObjects:=true;
|
|
ImageEnVect1.ObjGripPen.Style := psClear;
|
|
ImageEnVect1.ObjGripBrush.Style := bsclear;
|
|
end;
|
|
|
|
// File | Exit
|
|
procedure TMainForm.Exit1Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
// File | Open
|
|
procedure TMainForm.Open1Click(Sender: TObject);
|
|
begin
|
|
FileName:=ImageEnVect1.IO.ExecuteOpenDialog('','',false,0,'');
|
|
if FileName<>'' then
|
|
begin
|
|
// load the bitmap
|
|
ImageEnVect1.IO.LoadFromFile( FileName );
|
|
// look for vectorial objects
|
|
if FileExists( FileName+'.iev' ) then
|
|
ImageEnVect1.LoadFromFileIEV( FileName+'.iev' );
|
|
//
|
|
ImageEnVect1.ObjGripPen.Style := psClear;
|
|
ImageEnVect1.ObjGripBrush.Style := bsclear;
|
|
end;
|
|
end;
|
|
|
|
// File | Save
|
|
procedure TMainForm.Save1Click(Sender: TObject);
|
|
begin
|
|
FileName:=ImageEnVect1.IO.ExecuteSaveDialog('',FileName,false,0,'');
|
|
if FileName<>'' then
|
|
begin
|
|
// save the bitmap
|
|
ImageEnVect1.IO.SaveToFile( FileName );
|
|
// save vectorial objects
|
|
ImageEnVect1.SaveToFileIEV( FileName+'.iev' );
|
|
end;
|
|
end;
|
|
|
|
// File | Print
|
|
procedure TMainForm.Print1Click(Sender: TObject);
|
|
begin
|
|
// save a copy of current bitmap
|
|
ImageEnVect1.Proc.SaveUndo(ieuImage);
|
|
// merge vectorial objects with the bitmap
|
|
ImageEnVect1.CopyObjectsToBack(false); // if you want antialias put True instead of False
|
|
// display preview and print
|
|
ImageEnVect1.IO.DoPrintPreviewDialog(iedtDialog,FileName);
|
|
// restore original bitmap
|
|
ImageEnVect1.Proc.Undo;
|
|
end;
|
|
|
|
// Pressing a switch button
|
|
procedure TMainForm.ButtonSwitch(Sender: TObject);
|
|
var
|
|
hobj:integer;
|
|
begin
|
|
if AddSpotButton.Down then
|
|
with ImageEnVect1 do begin
|
|
hobj := -1; // -1 is the template for new objects
|
|
ObjStyle[hobj]:=[ievsSelectable, ievsMoveable, ievsVisible];
|
|
ObjKind[hobj]:= iekEllipse;
|
|
ObjWidth[hobj] := 10;
|
|
objHeight[hobj] := 10;
|
|
objBrushColor[hobj] := clMaroon;
|
|
objBrushStyle[hobj] := bsSolid;
|
|
MouseInteractVt:=[miPutEllipse];
|
|
end
|
|
|
|
else if SelectButton.Down then
|
|
ImageEnVect1.MouseInteractVt:=[miObjectSelect];
|
|
end;
|
|
|
|
// select the object under the mouse cursor
|
|
procedure TMainForm.ImageEnVect1ObjectOver(Sender: TObject; hobj: Integer);
|
|
begin
|
|
ImageEnVect1.UnSelAllObjects;
|
|
ImageEnVect1.AddSelObject(hobj);
|
|
end;
|
|
|
|
// an object is selected, change its color
|
|
procedure TMainForm.ImageEnVect1SelectObject(Sender: TObject);
|
|
var
|
|
i,hobj:integer;
|
|
begin
|
|
with ImageEnVect1 do
|
|
for i:=0 to ObjectsCount-1 do
|
|
begin
|
|
hobj := GetObjFromIndex( i );
|
|
if IsSelObject( hobj ) then
|
|
ObjBrushColor[hobj] := clRed
|
|
else
|
|
ObjBrushColor[hobj] := clMaroon;
|
|
end;
|
|
end;
|
|
|
|
end.
|