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

85 lines
1.9 KiB
Plaintext

unit umain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ieview, imageenview, ievect, ExtCtrls, StdCtrls, ComCtrls, hyieutils,
iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers;
type
TForm1 = class(TForm)
Panel1: TPanel;
ImageEnVect1: TImageEnVect;
Label1: TLabel;
Memo1: TMemo;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Edit1: TEdit;
UpDown1: TUpDown;
Button2: TButton;
Button3: TButton;
procedure ImageEnVect1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
hobj:integer;
public
{ Public declarations }
procedure WriteCoordinates;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{$R WindowsTheme.res}
procedure TForm1.ImageEnVect1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ImageEnVect1.RemoveAllObjects;
hobj:=ImageEnVect1.CreatePolygonFromEdge(X,Y,false,10);
WriteCoordinates;
end;
procedure TForm1.WriteCoordinates;
var
i:integer;
begin
memo1.Lines.Clear;
with ImageEnVect1 do
for i:=0 to ObjPolylinePointsCount[hobj]-1 do
memo1.Lines.Add( IntToStr( ObjPolylinePoints[hobj,i].X ) + ','+ IntToStr( ObjPolylinePoints[hobj,i].Y ) );
end;
// Reduce points to
procedure TForm1.Button1Click(Sender: TObject);
begin
ImageEnVect1.SimplifyPolygon(hobj, StrToInt( Edit1.Text ) );
WriteCoordinates;
end;
// Remove jagged edges
procedure TForm1.Button2Click(Sender: TObject);
begin
ImageEnVect1.RemovePolygonJaggedEdges(hobj);
end;
// File | Open
procedure TForm1.Button3Click(Sender: TObject);
begin
with ImageEnVect1.IO do
LoadFromFileAuto( ExecuteOpenDialog('','',true,0,'') );
end;
end.