161 lines
5.0 KiB
Plaintext
161 lines
5.0 KiB
Plaintext
unit uMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
|
|
hyieutils, iexBitmaps, hyiedefs, iesettings, imageenview, ievect, ieview, iexLayers,
|
|
iexRulers, iemview, ImgList;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
ImageEnView1: TImageEnView;
|
|
lbxText: TListBox;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
lbxShapes: TListBox;
|
|
ImageList1: TImageList;
|
|
ImageEnMView1: TImageEnMView;
|
|
|
|
procedure FormShow(Sender: TObject);
|
|
procedure ImageEnMView1EndDrag(Sender, Target: TObject; X, Y: Integer);
|
|
procedure ImageEnMView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
|
|
procedure ImageEnView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
|
|
procedure ImageEnView1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
|
procedure lbxShapesDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
uses
|
|
iexCanvasUtils;
|
|
|
|
procedure TMainForm.FormShow(Sender: TObject);
|
|
const
|
|
Draw_Shapes: array[0..7] of TIEShape = ( iesEllipse, iesRectangle, iesStar5, iesCloud, iesShootingArrowNW, iesHeart, iesLightningLeft, iesExplosion );
|
|
var
|
|
I: Integer;
|
|
begin
|
|
ImageEnView1.LegacyBitmap := False;
|
|
ImageEnView1.IEBitmap.Allocate( ImageEnView1.ClientWidth, ImageEnView1.ClientHeight );
|
|
ImageEnView1.IEBitmap.Fill( clWhite );
|
|
ImageEnView1.Update();
|
|
|
|
// Fill lbxShapes with some shapes
|
|
lbxShapes.Items.Clear;
|
|
for I := Low( Draw_Shapes ) to High( Draw_Shapes ) do
|
|
lbxShapes.Items.Add( IntToStr( ord( Draw_Shapes[ I ])));
|
|
|
|
// Fill TImageEnMView from a TImageList
|
|
ImageEnMView1.LockUpdate();
|
|
ImageEnMView1.SetModernStyling( False, -1, -1, False );
|
|
ImageEnMView1.SetThumbnailSize( ImageList1.Width, ImageList1.Height, True );
|
|
ImageEnMView1.GridWidth := 1; // One column
|
|
ImageEnMView1.Assign( ImageList1 );
|
|
ImageEnMView1.SelectedImage := 0;
|
|
ImageEnMView1.UnlockUpdate();
|
|
end;
|
|
|
|
procedure TMainForm.ImageEnMView1EndDrag(Sender, Target: TObject; X, Y: Integer);
|
|
begin
|
|
ImageEnMView1.IEEndDrag;
|
|
ImageEnMView1.MouseInteract := [mmiSelect];
|
|
end;
|
|
|
|
procedure TMainForm.ImageEnMView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
if ssLeft in Shift then
|
|
begin
|
|
ImageEnMView1.MouseInteract := [];
|
|
ImageEnMView1.IEBeginDrag( False, -1 );
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.ImageEnView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
|
|
begin
|
|
if ( Source is TListBox ) or
|
|
( Source is TImageEnMView ) then
|
|
Accept := True;
|
|
end;
|
|
|
|
procedure TMainForm.ImageEnView1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
|
var
|
|
bmp: TIEBitmap;
|
|
idx: Integer;
|
|
layerShape: TIEShape;
|
|
layerText: string;
|
|
begin
|
|
If TControl( Source ).Name = lbxText.Name then
|
|
begin
|
|
layerText := TListBox( Source ).Items[ TListBox( Source ).ItemIndex ];
|
|
if layerText <> '' then
|
|
begin
|
|
ImageEnView1.LayersAdd( ielkText );
|
|
ImageEnView1.CurrentLayer.PosX := X;
|
|
ImageEnView1.CurrentLayer.PosY := Y;
|
|
if pos( 'BIG ', Uppercase( layerText )) > 0 then
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).Font.Size := 28
|
|
else
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).Font.Size := 14;
|
|
if pos( 'GREEN ', Uppercase( layerText ))> 0 then
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).Font.Color := clGreen;
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).Text := layerText;
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).SizeToText();
|
|
end;
|
|
end
|
|
else
|
|
|
|
If TControl( Source ).Name = lbxShapes.Name then
|
|
begin
|
|
layerShape := TIEShape( StrToInt( TListBox( Source ).Items[ TListBox( Source ).ItemIndex ]));
|
|
|
|
ImageEnView1.LayersAdd( layerShape );
|
|
ImageEnView1.CurrentLayer.PosX := X;
|
|
ImageEnView1.CurrentLayer.PosY := Y;
|
|
ImageEnView1.CurrentLayer.Width := 150;
|
|
ImageEnView1.CurrentLayer.Height := 150;
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).BorderWidth := 10;
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).BorderColor := RGB2TColor( 128 + random( 128 ), 128 + random( 128 ), 128 + random( 128 ));
|
|
TIETextLayer( ImageEnView1.CurrentLayer ).FillColor := clNone;
|
|
end;
|
|
|
|
If TControl( Source )is TImageEnMView then
|
|
begin
|
|
idx := TImageEnMView( Source ).SelectedImage;
|
|
if idx >= 0 then
|
|
begin
|
|
bmp := ImageEnMView1.GetTIEBitmap( idx );
|
|
ImageEnView1.LayersAdd( bmp );
|
|
ImageEnView1.CurrentLayer.PosX := X;
|
|
ImageEnView1.CurrentLayer.PosY := Y;
|
|
TImageEnMView( Source ).ReleaseBitmap( idx, False );
|
|
end;
|
|
end;
|
|
|
|
ImageEnView1.Update();
|
|
end;
|
|
|
|
procedure TMainForm.lbxShapesDrawItem(Control: TWinControl; Index: Integer;
|
|
Rect: TRect; State: TOwnerDrawState);
|
|
var
|
|
aShape: TIEShape;
|
|
shapeColor: TColor;
|
|
begin
|
|
shapeColor := $000909D5;
|
|
aShape := TIEShape( StrToInt( lbxShapes.Items[ Index ]));
|
|
IEDrawShapeToComboListBoxItem( TListBox( Control ).Canvas, Rect, Control.Enabled, aShape, shapeColor );
|
|
end;
|
|
|
|
|
|
end.
|