Marco Web Center |
Home: Code Repository: Mastering Delphi 5Project MOUSEONE
Project StructureMOUSEONE.DPRprogram MouseOne; uses Forms, MouseF in 'MouseF.pas' {MouseForm}; {$R *.RES} begin Application.CreateForm(TMouseForm, MouseForm); Application.Run; end. MOUSEF.PASunit MouseF; interface uses Windows, Classes, Graphics, Controls, Forms, SysUtils; type TMouseForm = 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); procedure FormPaint(Sender: TObject); private fDragging: Boolean; fRect: TRect; public { Public declarations } end; var MouseForm: TMouseForm; implementation {$R *.DFM} procedure TMouseForm.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin fDragging := True; SetCapture (Handle); fRect.Left := X; fRect.Top := Y; fRect.BottomRight := fRect.TopLeft; Canvas.DrawFocusRect (fRect); end; end; procedure TMouseForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin // display the position of the mouse in the caption Caption := Format ('Mouse in x=%d, y=%d', [X, Y]); if fDragging then begin // remove and redraw the dragging rectangle Canvas.DrawFocusRect (fRect); fRect.Right := X; fRect.Bottom := Y; Canvas.DrawFocusRect (fRect); end else if ssShift in Shift then // mark points in yellow Canvas.Pixels [X, Y] := clYellow; end; procedure TMouseForm.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if fDragging then begin ReleaseCapture; fDragging := False; Invalidate; end; end; procedure TMouseForm.FormPaint(Sender: TObject); begin Canvas.Rectangle (fRect.Left, fRect.Top, fRect.Right, fRect.Bottom); end; end. MOUSEF.DFMobject MouseForm: TMouseForm Left = 223 Top = 108 Width = 435 Height = 300 Caption = 'Mouse' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = 'System' Font.Style = [] OldCreateOrder = False OnMouseDown = FormMouseDown OnMouseMove = FormMouseMove OnMouseUp = FormMouseUp OnPaint = FormPaint PixelsPerInch = 96 TextHeight = 16 end
|
||
© Copyright Marco Cantù, 1995-2020, All rights reserved |