BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/Annotations/AdvancedText/umain.pas

156 lines
3.6 KiB
Plaintext

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.