Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{tag>category:"presentation server" }} ====== The EDITSTATECHANGED event ====== === Published 31 AUG 2017 at 01:01:21AM === == Updated on 09 MAY 2018 at 01:01:21AM == One of the requirements we needed when developing the new IDE was the ability to detect when the state of a control changed in such a fashion that might affect the operations that could be performed on it. A classic example of this is highlighting text in an edit control so that it can be cut or copied, or perhaps replaced with a paste operation: At this point an item like a Cut or a Paste button might need enabling so the UI is in sync with the state of the control. To enable this functionality several controls now support a new event called **EDITSTATECHANGED**, which is fired when the "edit state" is changed. The edit state is defined as one of the following operations: * Undo * Redo * Cut * Copy * Paste * Select All So, if a user takes an action in the control that enables or disables one of these options you can respond to it via the **EDITSTATECHANGED** event. The **EDITSTATECHANGED** event passes a single parameter called "//EditState//", which is a dynamic array of Boolean flags with the following structure: <code> <1> CanUndo : TRUE$ if the control allows an UNDO operation <2> CanRedo : TRUE$ if the control allows a REDO operation <3> CanCut : TRUE$ if the control allows a CUT operation <4> CanCopy : TRUE$ if the control allows a COPY operation <5> CanPaste : TRUE$ if the control allows a PASTE operation <6> CanSelectAll : TRUE$ if the control allows a SELECTALL : operation </code> (You may notice that these flags closely follow the items in a standard "Edit" menu). Here's a simple example to set the state of some Cut/Copy/Paste buttons: <code> objxArray = @window : ".BTN_CUT" propArray = "ENABLED" dataArray = editState<0,3> objxArray := @rm : @window : ".BTN_COPY" propArray := @rm : "ENABLED" dataArray := @rm : editState<0,4> objxArray := @rm : @window : ".BTN_PASTE" propArray := @rm : "ENABLED" dataArray := @rm : editState<0,5> call Set_Property_Only( objxArray, propArray, dataArray ) </code> The following controls support the EDITSTATECHANGED event: * COMBOBOX * EDITLINE * EDITBOX * EDITTABLE * LISTBOX * PROPERTYGRID //(Disclaimer: This article is based on preliminary information and may be subject to change in the final release version of OpenInsight 10).// //(EDIT: 8th May 2018 - Variable name changed from NewEditState to EditState to match released version)// === Comments === == Original ID: revdevx.com/?p=2761 == third_party_content/revdevx/18141.0426041667.txt Last modified: 2024/01/29 20:23by 127.0.0.1