Ja, das kommt dem schon recht nahe. Nur wird nicht zur nächsten Rasterlinie ge"snappt", sondern zu einer die wesentlich weiter links davon liegt. Mein Code:
Delphi-Quellcode:
procedure TForm1.ImageEnVectLayerNotify(Sender: TObject; layer: Integer; event: TIELayerEvent);
var
x : Integer;
a: Integer;
b: Integer;
begin
case event of
ielMoved:
begin
x := ImageEnVect.Layers[ImageEnVect.LayersCurrent].PosX;
a := x div FotoBook.GridWidth;
b := x - a * FotoBook.GridWidth;
Caption := IntToStr(a) + '/' + IntToStr(b);
if b < (FotoBook.GridWidth div 2) then
ImageEnVect.Layers[ImageEnVect.LayersCurrent].PosX := a
else
ImageEnVect.Layers[ImageEnVect.LayersCurrent].PosX := a + FotoBook.GridWidth;
end;
end;
end;