190 lines
4.5 KiB
Plaintext
190 lines
4.5 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
Buttons, ExtCtrls, ieview, imageenview, ievect, StdCtrls, ComCtrls, Menus,
|
|
hyieutils, iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
ImageEnVect1: TImageEnVect;
|
|
Panel1: TPanel;
|
|
SpeedButton1: TSpeedButton;
|
|
SpeedButton2: TSpeedButton;
|
|
GroupBox1: TGroupBox;
|
|
Label1: TLabel;
|
|
ComboBox1: TComboBox;
|
|
Label2: TLabel;
|
|
Edit1: TEdit;
|
|
CheckBox1: TCheckBox;
|
|
UpDown1: TUpDown;
|
|
GroupBox2: TGroupBox;
|
|
CheckBox2: TCheckBox;
|
|
Label3: TLabel;
|
|
Edit2: TEdit;
|
|
UpDown2: TUpDown;
|
|
Label4: TLabel;
|
|
Panel2: TShape;
|
|
ColorDialog1: TColorDialog;
|
|
Button1: TButton;
|
|
Label5: TLabel;
|
|
Button2: TButton;
|
|
FontDialog1: TFontDialog;
|
|
Label6: TLabel;
|
|
TrackBar1: TTrackBar;
|
|
Label7: TLabel;
|
|
Edit3: TEdit;
|
|
UpDown3: TUpDown;
|
|
Label8: TLabel;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure SpeedButton1Click(Sender: TObject);
|
|
procedure SpeedButton2Click(Sender: TObject);
|
|
procedure ComboBox1Change(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure Button4Click(Sender: TObject);
|
|
procedure ImageEnVect1NewObject(Sender: TObject; hobj: Integer);
|
|
procedure Panel2MouseDown(Sender: TObject; Button: TMouseButton; Shift:
|
|
TShiftState; X, Y: Integer);
|
|
procedure TrackBar1Change(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
lastobj: integer;
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
ComboBox1.ItemIndex := 0;
|
|
end;
|
|
|
|
procedure TForm1.FormActivate(Sender: TObject);
|
|
begin
|
|
ImageEnVect1.ObjFontHeight[-1] := 35;
|
|
ImageEnVect1.MouseInteractVt := [miPutText];
|
|
lastobj := -1;
|
|
end;
|
|
|
|
procedure TForm1.SpeedButton1Click(Sender: TObject);
|
|
begin
|
|
ImageEnVect1.MouseInteractVt := [miPutText];
|
|
end;
|
|
|
|
procedure TForm1.SpeedButton2Click(Sender: TObject);
|
|
begin
|
|
ImageEnVect1.MouseInteractVt := [miObjectSelect];
|
|
end;
|
|
|
|
procedure TForm1.ComboBox1Change(Sender: TObject);
|
|
var
|
|
q, obj: integer;
|
|
begin
|
|
obj := -1;
|
|
for q := -1 to ImageEnVect1.SelObjectsCount - 1 do
|
|
begin
|
|
if q >= 0 then
|
|
obj := ImageEnVect1.SelObjects[q];
|
|
// curve
|
|
if ComboBox1.Text = 'FromCurve' then
|
|
begin
|
|
ShowMessage('Please draw a curve');
|
|
ImageEnVect1.MouseInteractVt := [miPutPolyline];
|
|
end
|
|
else
|
|
begin
|
|
ImageEnVect1.SetObjTextCurveShape(obj, TIECurve(ComboBox1.ItemIndex), strtointdef(edit1.text, 0), checkbox1.checked);
|
|
end;
|
|
ImageEnVect1.ObjTextCurveCharRot[obj] := strtointdef(edit3.text, -1);
|
|
// shadow
|
|
ImageEnVect1.ObjSoftShadow[obj].Enabled := CheckBox2.Checked;
|
|
// transparency
|
|
ImageEnVect1.ObjTransparency[obj] := strtointdef(edit2.text, 255);
|
|
// color
|
|
ImageEnVect1.ObjPenColor[obj] := Panel2.Brush.Color;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
// merge objects
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
begin
|
|
ImageEnVect1.CopyObjectsToBack(true);
|
|
ImageEnVect1.RemoveAllObjects;
|
|
end;
|
|
|
|
// select font
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
var
|
|
q, obj: integer;
|
|
begin
|
|
if FontDialog1.Execute then
|
|
begin
|
|
obj := -1;
|
|
for q := -1 to ImageEnVect1.SelObjectsCount - 1 do
|
|
begin
|
|
if q >= 0 then
|
|
obj := ImageEnVect1.SelObjects[q];
|
|
ImageEnVect1.SetObjFont(obj, FontDialog1.Font);
|
|
end;
|
|
ComboBox1Change(self);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.Button4Click(Sender: TObject);
|
|
begin
|
|
ImageEnVect1.IO.LoadFromFile(ImageEnVect1.IO.ExecuteOpenDialog('', '', false, 1, ''));
|
|
end;
|
|
|
|
procedure TForm1.ImageEnVect1NewObject(Sender: TObject; hobj: Integer);
|
|
var
|
|
rc: trect;
|
|
begin
|
|
if ImageEnVect1.ObjKind[hobj] = iekPOLYLINE then
|
|
begin
|
|
ImageEnVect1.GetObjRect(hobj, rc);
|
|
ImageEnVect1.SetObjRect(lastobj, rc);
|
|
ImageEnVect1.SetObjTextCurveFromPolyline(lastobj, hobj);
|
|
ImageEnVect1.RemoveObject(hobj);
|
|
|
|
ImageEnVect1.MouseInteractVt := [miPutText];
|
|
end
|
|
else
|
|
lastobj := hobj;
|
|
end;
|
|
|
|
|
|
// select color
|
|
procedure TForm1.Panel2MouseDown(Sender: TObject; Button: TMouseButton; Shift:
|
|
TShiftState; X, Y: Integer);
|
|
begin
|
|
if ColorDialog1.execute then
|
|
begin
|
|
Panel2.Brush.color := colorDialog1.Color;
|
|
ComboBox1Change(self);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.TrackBar1Change(Sender: TObject);
|
|
begin
|
|
ImageEnVect1.Zoom := TrackBar1.Position;
|
|
end;
|
|
|
|
|
|
end.
|