Sequencers
Revision as of 04:14, 18 March 2017 by Ivan denisov (talk | contribs)
Do something if view is closed?
TYPE CloseNotifier = POINTER TO RECORD (Sequencers.Notifier) plotId: INTEGER END; PROCEDURE (c : CloseNotifier) Notify (VAR msg : Sequencers.Message); BEGIN WITH msg : Sequencers.CloseMsg DO ########### ELSE END END Notify; ... VAR cNotif: CloseNotifier; BEGIN c := Containers.Focus (); IF c # NIL THEN c.GetFirstView (Containers.any, v) END; IF (v # NIL) & (v IS Plotters.View) THEN NEW (cNotif); cNotif.plotId := 1; v.Domain().GetSequencer()(Sequencers.Sequencer).InstallNotifier(cNotif) END;
How to disable the window close?
Marco Ciot
TYPE CloseNotifier = POINTER TO RECORD (Sequencers.Notifier) END; PROCEDURE (n: CloseNotifier) Notify (VAR msg: Sequencers.Message); VAR res: INTEGER; BEGIN WITH | msg: Sequencers.CloseMsg DO Dialog.Beep; Dialog.GetOK("#Mondig:ATTENTION: Exit will stop data recording!!! Stop anyway? ", "", "", "", {Dialog.yes, Dialog.no, Dialog.cancel}, res); IF ~(res = Dialog.yes) THEN msg.sticky := TRUE; END; ELSE END; END Notify; PROCEDURE MakeSticky*; VAR n: CloseNotifier; BEGIN IF stickyDialog = NIL THEN HostWindows.dir.minimized := TRUE; HostWindows.dir.minimized := FALSE; HostWindows.dir.l := 1100; HostWindows.dir.t := 600; HostWindows.dir.r := 1400; HostWindows.dir.b := 900; StdApi.OpenAuxDialog('Mondata/Rsrc/HPM-Tool', '#Mondata:StorageForwarder', stickyDialog); NEW(n); stickyDialog.Domain().GetSequencer()(Sequencers.Sequencer).InstallNotifier(n); END; END MakeSticky;