Hi Nigel,
quote:
In what way does it not work?
It works properly but my problem is a bit more deep than what is looks on the surface.
I have a Layer which had following geometry:
X is 10 px
Y is 7 px
Width is 346 px
Height is 600 px
I have a Mask Layer which has following geometry:
X is 23 px
Y is 10 px
Width is 250 px
Height is 489 px
Now when I code in OnLayerNotify event as follows:
if (event = ielResized) then
begin
LL := ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosX;
LT := ImageEnView1.Layers[ImageEnView1.LayersCurrent].PosY;
LW := ImageEnView1.Layers[ImageEnView1.LayersCurrent].Width;
LH := ImageEnView1.Layers[ImageEnView1.LayersCurrent].Height;
if (ImageEnView1.LayersCurrent) < (ImageEnView1.LayersCount - 1) then
begin
if ImageEnView1.Layers[ImageEnView1.LayersCurrent + 1].IsMask = True then
begin
ImageEnView1.LockUpdate;
ImageEnView1.Proc.SaveUndo();
ImageEnView1.Layers[ImageEnView1.LayersCurrent + 1].PosX := LL;
ImageEnView1.Layers[ImageEnView1.LayersCurrent + 1].PosY := LT;
ImageEnView1.Layers[ImageEnView1.LayersCurrent + 1].Width := LW;
ImageEnView1.Layers[ImageEnView1.LayersCurrent + 1].Height := LH;
ImageEnView1.UnLockUpdate;
end;
end;
The Mask Layer's X, Y, Width and Height get set to Active Layers X, Y, Width and Height.
So how can I solve this?
One way would be to calculate some kind of ratio but I don't know as to how to do this.
TIA
Yogi Yang
Yogi Yang