Hello ImageEn team,
I’m running into a strange behavior with the TIELineLayer object in my Delphi/ImageEnView project.
When I attempt to move one of my “frontier” lines (vertical or horizontal), the line’s stroke width either doubles during the drag operation or it disappears from the view.
I also notice that the line returns to its correct thickness or becomes visible again when I left-click anywhere in the TImageEnView area.
Environment:
- Delphi 12.3, 32-bit
- ImageEnView 14.0.1 (latest)
Any ideas what might be going wrong, or how to reliably update a TIELineLayer’s endpoints without it disappearing? Thanks in advance for your help!
I’ve also included a GIF to illustrate the problem:

I’ve attached a ZIP of the minimal reproducible project here:
attach/Xardelane/20255714429_TEST_IMAGEEN.zip
7217.07 KB
Below is a placeholder where I’ll paste the reduced test case code:
unit MainUnit;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, hyiedefs, hyieutils, iexBitmaps, iesettings, iexLayers, iexRulers, iexToolbars,
iexUserInteractions, imageenio, imageenproc, iexProcEffects, ieview, imageenview;
type
TMainForm = class(TForm)
ImageEnView: TImageEnView;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
var
LineIdx: Integer;
begin
ImageEnView.AutoShrink := True;
ImageEnView.LayerOptions := ImageEnView.LayerOptions + [loPreventOutOFBounds];
ImageEnView.MouseInteractLayers := [miMoveLayers];
ImageEnView.IO.LoadFromFile('..\..\drop.jpg');
LineIdx := ImageEnView.LayersAdd(Point(10, 0), Point(10, 400), clBlue, 2);
with TIELineLayer(ImageEnView.Layers[LineIdx]) do
begin
Locked := False;
Selectable := True;
LineStyle := iegpSolid;
VisibleBox := False;
end;
end;
end.
drop.jpg :

Best regards,
Xardelane