ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
Forum membership is Free!  Click Join to sign-up
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 I want to disable autoscroll of imageenview?
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

aftereffectniko

Ethiopia
23 Posts

Posted - May 06 2013 :  01:48:03  Show Profile  Reply
I want to disable autoscroll of imageenview When the mouse near the boarder. Please help help?

w2m

USA
1990 Posts

Posted - May 06 2013 :  05:35:31  Show Profile  Reply
How close to the border? This disables autoscroll when the X or Y value is 100 pixels from the edge of the image border:

procedure TForm1.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
   if (X <=100) or (X>=ImageEnView1.ClientWidth - 100) or (Y<=100) or (Y>=ImageEnView1.ClientHeight - 100) then
    ImageEnView1.MouseInteract := []
  else
    ImageEnView1.MouseInteract := [miMovingScroll];
end;


William Miller
Email: w2m@frontiernet.net
EBook: http://www.imageen.com/ebook/
Apprehend: http://www.frontiernet.net/~w2m/index.html
Go to Top of Page

aftereffectniko

Ethiopia
23 Posts

Posted - May 09 2013 :  05:50:34  Show Profile  Reply
Thanks bro. But iam trying to make photo frame software. The first layer is the frame the second is user photo. when i try to move the user photo the frame also scroll( If and only the user image high size(width,hieght) ) How can i do to move the layer by mouse with out scroll.. Imageen view 4.3.0 Help help .thank u
Go to Top of Page

w2m

USA
1990 Posts

Posted - May 09 2013 :  06:38:00  Show Profile  Reply
Biased on your description I do not understand the problem. Typically by default, when you move a layer the other layers do not move or scroll so I do not understand.

William Miller
Go to Top of Page

aftereffectniko

Ethiopia
23 Posts

Posted - May 11 2013 :  02:00:04  Show Profile  Reply
JUST LIKE THIS ,, I ATTACHED THE PHOTO VIEW IT AND HELP ME PLEASE PLEASE..

Go to Top of Page

fab

1310 Posts

Posted - May 11 2013 :  02:10:27  Show Profile  Reply
Please do not create multiple topics for the same question.
ImageEn for default centers layer 0, so if you add more layers, only the layer 0 (background) is centered.
If you don't want this just set "ImageEnView.Center := false".

There isn't an "auto-scroll" in ImageEn when you just move the mouse. Only alignment can change when you change the background layer (layer-0).

If this doesn't help, please add details to your question.
Go to Top of Page

aftereffectniko

Ethiopia
23 Posts

Posted - May 11 2013 :  12:19:19  Show Profile  Reply
Sorry for my grammer . Fabrizio. Iam trying to make photo frame maker software. There are two layers the first layer is the frame (it is always over the second frame) and the second layer is the user photo(it is behind the first layer ). When i try to move the second layer the with mouse . It moved out of the frame . I want to move second layer only inside the frame(first layer). Just like this my last picture. Help . Thank u ,
Go to Top of Page

w2m

USA
1990 Posts

Posted - May 11 2013 :  12:52:12  Show Profile  Reply
Layer 0 should contain the user photo and layer 1 should contain the frame.

William Miller
Go to Top of Page

fab

1310 Posts

Posted - May 11 2013 :  13:53:06  Show Profile  Reply
Note also there is a demo that shows how make a photoframe with ImageEn. Look at ImageEditing\PictureFrames.
In this example (as William told you), layer 0 contains the photo while layer 1 contains the frame. Both have the same size.
Go to Top of Page

w2m

USA
1990 Posts

Posted - May 11 2013 :  14:16:44  Show Profile  Reply
The example Fabrizio is referring to uses masks, but you can also put the user image in layer 0 and the frame in layer 1, then resize the layer with the mouse to fit the user image like this:

111.82 KB

I whipped this up for you:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, StdCtrls, ExtCtrls, ExtDlgs,
  ieview, imageenview, imageenio, hyieutils, hyiedefs, imageenproc;

type
  TForm1 = class(TForm)
    OpenPictureDialog1: TOpenPictureDialog;
    SavePictureDialog1: TSavePictureDialog;
    Panel1: TPanel;
    OpenImage1: TButton;
    OpenFrame1: TButton;
    Select1: TButton;
    Save2: TButton;
    Button5: TButton;
    ImageEnView1: TImageEnView;
    StatusBar1: TStatusBar;
    MainMenu1: TMainMenu;
    PopupMenu1: TPopupMenu;
    File1: TMenuItem;
    Exit1: TMenuItem;
    N1: TMenuItem;
    PrintSetup1: TMenuItem;
    Print1: TMenuItem;
    N2: TMenuItem;
    SaveAs1: TMenuItem;
    Save1: TMenuItem;
    Open1: TMenuItem;
    New1: TMenuItem;
    Edit1: TMenuItem;
    PasteSpecial1: TMenuItem;
    Paste1: TMenuItem;
    Copy1: TMenuItem;
    Cut1: TMenuItem;
    N5: TMenuItem;
    Redo1: TMenuItem;
    Undo1: TMenuItem;
    Select2: TMenuItem;
    None1: TMenuItem;
    Rectangle1: TMenuItem;
    MoveLayer1: TMenuItem;
    ResizeLayer1: TMenuItem;
    Layer1: TMenuItem;
    Layers1: TMenuItem;
    Add1: TMenuItem;
    Delete1: TMenuItem;
    Merge1: TMenuItem;
    SaveAs2: TButton;
    N3: TMenuItem;
    Transparent1: TMenuItem;
    procedure Open1Click(Sender: TObject);
    procedure SaveAs1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure Undo1Click(Sender: TObject);
    procedure Redo1Click(Sender: TObject);
    procedure Cut1Click(Sender: TObject);
    procedure Copy1Click(Sender: TObject);
    procedure Paste1Click(Sender: TObject);
    procedure PasteSpecial1Click(Sender: TObject);
    procedure None1Click(Sender: TObject);
    procedure Rectangle1Click(Sender: TObject);
    procedure MoveLayer1Click(Sender: TObject);
    procedure ResizeLayer1Click(Sender: TObject);
    procedure Layer1Click(Sender: TObject);
    procedure Add1Click(Sender: TObject);
    procedure Delete1Click(Sender: TObject);
    procedure Merge1Click(Sender: TObject);
    procedure OpenFrame1Click(Sender: TObject);
    procedure Save2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Transparent1Click(Sender: TObject);
  private
    { Private declarations }
    AFilename: string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Add1Click(Sender: TObject);
begin
  ImageEnView1.LayersAdd;
end;

procedure TForm1.Copy1Click(Sender: TObject);
begin
  ImageEnView1.Proc.SelCopyToClip()
end;

procedure TForm1.Cut1Click(Sender: TObject);
begin
  ImageEnView1.Proc.SelCutToClip()
end;

procedure TForm1.Delete1Click(Sender: TObject);
begin
  ImageEnView1.LayersRemove(ImageEnView1.LayersCurrent);
end;

procedure TForm1.Exit1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  IERegisterFormats;
  OpenPictureDialog1.Filter := GraphicFilter(TGraphic);
  ImageEnView1.IO.Params.BMP_HandleTransparency := True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  IEUnregisterFormats;
end;

procedure TForm1.Layer1Click(Sender: TObject);
begin
  ImageEnView1.MouseInteract := [miMoveLayers, miResizeLayers];
end;

procedure TForm1.Merge1Click(Sender: TObject);
begin
  ImageEnView1.LayersMerge(0, 1);
end;

procedure TForm1.MoveLayer1Click(Sender: TObject);
begin
  ImageEnView1.MouseInteract := ImageEnView1.MouseInteract + [miMoveLayers];
end;

procedure TForm1.None1Click(Sender: TObject);
begin
  ImageEnView1.MouseInteract := [];
end;

procedure TForm1.Open1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    AFilename := OpenPictureDialog1.FileName;
    ImageEnView1.IO.LoadFromFile(AFileName);
    Caption := AFilename;
    StatusBar1.Panels[0].Text := ExtractFileDir(AFilename);
    StatusBar1.Panels[1].Text := ExtractFileName(AFilename);
  end;
end;

procedure TForm1.OpenFrame1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    ImageEnView1.LayersAdd;
    ImageEnView1.IO.LoadFromFile(OpenPictureDialog1.FileName);
    ImageEnView1.IO.Params.BitsPerSample := 8;
    ImageEnView1.IO.Params.SamplesPerPixel := 4;
    ImageEnView1.Proc.SetTransparentColors(TColor2TRGB(clFuchsia), TColor2TRGB(clFuchsia), 0);
    ImageEnView1.IO.PreviewsParams := [ioppDefaultLockPreview];
    ImageEnView1.IO.DoPreviews([ppAUTO]);
    Layer1.Checked := True;
    ImageEnView1.MouseInteract := [miMoveLayers, miResizeLayers];
    ImageEnView1.Layers[1].PosX := 0;
    ImageEnView1.Layers[1].PosY := 0;
    ImageEnView1.Layers[1].Width := ImageEnView1.Layers[0].Width;
    ImageEnView1.Layers[1].Height := ImageEnView1.Layers[0].Height;
  end;
end;

procedure TForm1.Paste1Click(Sender: TObject);
begin
  ImageEnView1.Proc.SelPasteFromClip();
end;

procedure TForm1.PasteSpecial1Click(Sender: TObject);
begin
  ImageEnView1.Proc.SelPasteFromClip();
end;

procedure TForm1.Rectangle1Click(Sender: TObject);
begin
  ImageEnView1.MouseInteract := [miSelect];
end;

procedure TForm1.Redo1Click(Sender: TObject);
begin
  ImageEnView1.Proc.Redo();
  ImageEnView1.Proc.ClearRedo;
end;

procedure TForm1.ResizeLayer1Click(Sender: TObject);
begin
  ImageEnView1.MouseInteract := ImageEnView1.MouseInteract + [miResizeLayers];
end;

procedure TForm1.Save2Click(Sender: TObject);
begin
  if FileExists(AFilename) then
  begin
    ImageEnView1.IO.PreviewsParams := [ioppDefaultLockPreview];
    if ImageEnView1.IO.DoPreviews([ppAUTO]) then
      ImageEnView1.IO.SaveToFile(AFilename);
  end;
end;

procedure TForm1.SaveAs1Click(Sender: TObject);
begin
  if SavePictureDialog1.Execute then
  begin
    ImageEnView1.IO.SaveToFile(SavePictureDialog1.FileName);
    if FileExists(SavePictureDialog1.FileName) then
    begin
      ImageEnView1.IO.PreviewsParams := [ioppDefaultLockPreview];
      if ImageEnView1.IO.DoPreviews([ppAUTO]) then
      begin
        AFilename := SavePictureDialog1.FileName;
        Caption := AFilename;
        StatusBar1.Panels[0].Text := ExtractFileDir(AFilename);
        StatusBar1.Panels[1].Text := ExtractFileName(AFilename);
      end;
    end;
  end;
end;

procedure TForm1.Transparent1Click(Sender: TObject);
begin
  ImageEnView1.IO.Params.BitsPerSample := 8;
  ImageEnView1.IO.Params.SamplesPerPixel := 4;
  ImageEnView1.Proc.SetTransparentColors(TColor2TRGB(clFuchsia), TColor2TRGB(clFuchsia), 0);
  ImageEnView1.IO.PreviewsParams := [ioppDefaultLockPreview];
  ImageEnView1.IO.DoPreviews([ppAUTO]);
  ImageEnView1.Update;
end;

procedure TForm1.Undo1Click(Sender: TObject);
begin
  ImageEnView1.Proc.Undo();
  ImageEnView1.Proc.ClearUndo;
end;
end.

If you want the whole project let me know and I'll email you the project in a zip file.

William Miller
Adirondack Software & Graphics
Email: w2m@frontiernet.net
EBook: http://www.imageen.com/ebook/
Apprehend: http://www.frontiernet.net/~w2m/index.html
Go to Top of Page

aftereffectniko

Ethiopia
23 Posts

Posted - May 11 2013 :  23:25:25  Show Profile  Reply
I want the project file send me. Thanks w2m
Go to Top of Page

khorsandreza

Iran
26 Posts

Posted - Sep 10 2017 :  06:25:21  Show Profile  Reply
I want the project file send me. Thanks
K.R
Go to Top of Page

w2m

USA
1990 Posts

Posted - Sep 10 2017 :  12:00:29  Show Profile  Reply
Here is the project. Load a picture for the image, then load a supplied frame and resize the frame to fit the image.
attach/w2m/20179101205_Frames.zip
145.66 KB

Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: