unit umain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ieview, imageenview, ievect, ImgList, ComCtrls, StdCtrls, ToolWin, hyieutils, iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers; type Tfmain = class(TForm) ImageEnVect1: TImageEnVect; StandardToolBar: TToolBar; OpenButton: TToolButton; ToolButton10: TToolButton; ToolbarImages: TImageList; btnAddText: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; btnSelect: TToolButton; procedure FormCreate(Sender: TObject); procedure Open1Click(Sender: TObject); procedure btnAddTextClick(Sender: TObject); procedure ImageEnVect1ActivateTextEdit(Sender: TObject); procedure ImageEnVect1DeactivateTextEdit(Sender: TObject); procedure ImageEnVect1TextKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ImageEnVect1TextEditCursorMoved(Sender: TObject); procedure Saveas1Click(Sender: TObject); procedure Print1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var fmain: Tfmain; implementation uses utext; {$R *.DFM} {$R WindowsTheme.RES} procedure Tfmain.FormCreate(Sender: TObject); begin btnAddTextClick(btnAddText); end; // File | Open procedure Tfmain.Open1Click(Sender: TObject); begin with ImageEnVect1.IO do LoadFromFile( ExecuteOpenDialog('','',false,1,'') ); end; // Insert text procedure Tfmain.btnAddTextClick(Sender: TObject); var tmpFont:TFont; begin // Fix issues with down status in themed toolbars if Sender = btnSelect then begin btnAddText.Down := False; btnSelect .Down := True; end else begin btnAddText.Down := True; btnSelect .Down := False; end; if btnAddText.Down then begin ImageEnVect1.MouseInteractVt:=[miPutMemo]; ImageEnVect1.ObjFontLocked[-1]:=false; ImageEnVect1.ObjMemoBorderStyle[-1]:=psClear; ImageEnVect1.ObjMemoCharsBrushStyle[-1] := bsClear; tmpFont:=TFont.Create; tmpFont.Color:=clRed; tmpFont.Size:=14; tmpFont.Name:='Arial'; ImageEnVect1.SetObjFont(-1,tmpFont); tmpFont.Free; end else ImageEnVect1.MouseInteractVt:=[miObjectSelect]; end; // text editing mode procedure Tfmain.ImageEnVect1ActivateTextEdit(Sender: TObject); begin fText.Text2Controls; fText.Show; ImageEnVect1.SetFocus; end; // out of text editing mode procedure Tfmain.ImageEnVect1DeactivateTextEdit(Sender: TObject); begin fText.Hide; end; // press a key on the text edit procedure Tfmain.ImageEnVect1TextKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin fText.Text2Controls; end; // cursor moved (by mouse movement) in text edit procedure Tfmain.ImageEnVect1TextEditCursorMoved(Sender: TObject); begin fText.Text2Controls; end; // File | Save as... procedure Tfmain.Saveas1Click(Sender: TObject); var filename:string; begin filename:=ImageEnVect1.IO.ExecuteSaveDialog(); if filename<>'' then begin // save the image without vectorial objects ImageEnVect1.Proc.SaveUndo; // merge vectorial objects with the background image ImageEnVect1.CopyObjectsToBack(true); // save to disk ImageEnVect1.IO.SaveToFile(filename); // restore ImageEnvect1.Proc.Undo; end; end; // File | Print... procedure Tfmain.Print1Click(Sender: TObject); begin // save the image without vectorial objects ImageEnVect1.Proc.SaveUndo; // merge vectorial objects with the background image ImageEnVect1.CopyObjectsToBack(true); // do print preview ImageEnVect1.IO.DoPrintPreviewDialog(); // restore ImageEnvect1.Proc.Undo; end; end.