MODULE MouseMove; (* ========================================================================= Example GPCP .NET WinForms Graphics Program Register the Mouse Move events and display the corresponding mouse co-ordinates in the Status Bar on a resizable form Author : Chris Burrows Created: Sep 2006 (c) 2006-2008 CFB Software http://www.cfbsoftware.com/gpcp ========================================================================= *) IMPORT Sys := "[mscorlib]System", Cpm := "[System]System.ComponentModel", Wfm := "[System.Windows.Forms]System.Windows.Forms", Drw := "[System.Drawing]System.Drawing", WinMain; TYPE MainForm = POINTER TO RECORD (Wfm.Form) components: Cpm.Container; statusBar: Wfm.StatusBar END; VAR frm: MainForm; (* ==================================================================== *) PROCEDURE (frm: MainForm) Dispose*(disposing: BOOLEAN); BEGIN IF disposing THEN IF frm.components # NIL THEN frm.components.Dispose() END; frm.Dispose^(disposing) END END Dispose; (* ==================================================================== *) PROCEDURE (frm: MainForm) DoMouseMove(sender: Sys.Object; e: Wfm.MouseEventArgs), NEW; VAR x, y: INTEGER; BEGIN x := e.get_X(); y := e.get_Y(); frm.statusBar.set_Text('X = ' + Sys.Convert.ToString(x) + ', Y = ' + Sys.Convert.ToString(y)) END DoMouseMove; (* ==================================================================== *) PROCEDURE (frm: MainForm) InitializeComponent(), NEW; CONST frmWidth = 600; frmHeight = 400; BEGIN NEW(frm.components); NEW(frm.statusBar); frm.SuspendLayout(); frm.set_Text("Mouse Move"); frm.set_AutoScaleBaseSize(Drw.Size.init(5, 13)); frm.set_ClientSize(Drw.Size.init(frmWidth, frmHeight)); frm.set_FormBorderStyle(Wfm.FormBorderStyle.Sizable); frm.statusBar.set_ShowPanels(FALSE); frm.get_Controls().Add(frm.statusBar); REGISTER(frm.MouseMove, frm.DoMouseMove); frm.ResumeLayout(FALSE) END InitializeComponent; (* ==================================================================== *) BEGIN NEW(frm); frm.InitializeComponent(); Wfm.Application.Run(frm) END MouseMove.