对齐到网格

2008-04-11 12:27:03来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

var iGridSize : Integer = 16; procedure TForm1.FormPaint(Sender: TObject); var i, j : integer; begin Self.DoubleBuffered := True; for i := 0 to Self.Width do for j := 0 to Self.Height do if (j mod iGridSize = 0) and (i mod iGridSize = 0) then Self.Canvas.Pixels[i, j] := clNavy; end; procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin Self.iOldX := X; Self.iOldY := Y; end; end; procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ssLeft in Shift then begin Shape1.Left := Shape1.Left X - iOldX; Shape1.Top := Shape1.Top Y - iOldY; end; end; procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin if (Shape1.Left - (Shape1.Left div iGridSize) * iGridSize) > (iGridSize div 2) then begin Shape1.Left := (Shape1.Left div iGridSize) * iGridSize iGridSize; end else begin Shape1.Left := (Shape1.Left div iGridSize) * iGridSize; end; if (Shape1.Top - (Shape1.Top div iGridSize) * iGridSize) > (iGridSize div 2) then begin Shape1.Top := (Shape1.Top div iGridSize) * iGridSize iGridSize; end else begin Shape1.Top := (Shape1.Top div iGridSize) * iGridSize; end; end; end;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi异常处理的基本原则和方法

下一篇:Delphi多层开发方案比较