// Declaration: movetoex (DC: HDC; {Device environment handle} P2, P3: integer; {coordinate} P4: ppoint {pointer to the tpoint structure used to save P2 and P3 values}): bool; lineto (DC: HDC; {Device environment handle} X, Y: INTEGER {linear terminal coordinate }): bool;
// Example: Unit unit1; interfaceuses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, stdctrls; Type tform1 = Class (tform) Procedure formmousedown (Sender: tobject; button: tmousebutton; shift: tshiftstate; X, Y: integer); Procedure formmousemove (Sender: tobject; shift: tshiftstate; X, Y: integer); Procedure formmouseup (Sender: tobject; button: tmousebutton; shift: tshiftstate; X, Y: integer); end; var form1: tform1; implementation {$ R *. DFM} var flag: Boolean; Procedure tform1.formmousedown (Sender: tobject; button: tmousebutton; shift: tshiftstate; X, Y: integer); begin movetoex (canvas. handle, X, Y, nil); flag: = true; end; Procedure tform1.formmousemove (Sender: tobject; shift: tshiftstate; X, Y: integer ); begin if flag then lineto (canvas. handle, x, y); end; Procedure tform1.formmouseup (Sender: tobject; button: tmousebutton; shift: tshiftstate; X, Y: integer); begin flag: = false; end; end.
//: