exrecord - sample code

PDF Scaling Options, such as page-fit ([w] x [h]) and percentage (p%):

The following movie shows the PDF scaling options in action. The page-fit mode ([w] x [h]) automatically adjusts the page so that its entire content fits within the available width and height, keeping the correct proportions and possibly leaving margins. The percentage mode (p%) instead applies a fixed zoom factor, such as 100% for actual size, 50% for half size, or 200% for double size, regardless of the output page dimensions. The features will be supported by ExCascadeTree, ExFileView, ExG2antt, ExGauge, ExGrid, ExOrgChart, ExPivot, ExPropertiesList, ExSchedule and ExTree.

Building Hierarchies Made Easy: Edit, Undo, and Redo with Ease:

This movie demonstrates how to use the Copy, Cut, Paste, and Indent features to easily create and manage a hierarchical structure. You can perform these actions using keyboard shortcuts or through the context menu for convenience. The movie also highlights the Undo and Redo functionality, which lets you quickly reverse or repeat recent actions, making editing faster and easier, while helping you avoid mistakes. The Copy, Cut, Paste, and Indent features will be supported in the eXGrid and eXG2antt controls.

Graph availability for the eXPivot/JS version:

The eXPivot divides its area into four sections: one for applying aggregate functions to the pivot's cells, sections for pivot rows and columns that define the table structure, and a table section that can display either tabular data or graphical charts. The custom-view feature allows integration with any custom controls. In this example, eXGraph is used to enhance eXPivot with graphical capabilities. eXGraph visualizes the summarized information as columns, displaying aggregated data from eXPivot rather than raw values, which makes it easier to interpret trends and comparisons graphically. Click here to try or more sample here

The following video demonstrates how eXGraph adds graphical functionality to eXPivot:

The movie demonstrates how to display various types of charts based on the summarized data within the pivot control. The control can divide its area into four sections: one for applying aggregate functions to the pivot's cells, the pivot rows and columns that define the table structure, and the table section that can display either tabular data or graphical charts. The custom-view feature supports any type of custom controls. In this sample, the eXGraph is used to provide graphical features for eXPivot. The feature will be supported in the /COM, /NET, /WPF, and /JS versions as well.

The following video highlights an innovative feature designed to improve link visualization:

The following video demonstrates a new feature that enhances link visualization. It intelligently avoids obstacles such as elements, objects, and bars, ensuring a clear and unobstructed display. Additionally, overlapping links are distinguished by alternating colors and variable widths, improving clarity and making it easier to differentiate them visually. This feature will be available across all configurations (/JS, /COM, /NET, and /WPF) for the following components: eXSurface, eXSwimlane, eXG2antt, and eXG2Host.
Jan28
ExGraph, 12.0.0.5
*Fixed: The category line is now displayed to the end of the chart when categories are grouped using the CategoryAxis.Split property for "area" or "rangeArea" chart types.
*Fixed: The cursor remains visible after closing the application
*Fixed: Ignores the ex-HTML tags inherited from Categories or Series when displaying the crossover near a serie (Cursor.Visible property is True)
ExPlorerBar, 21.0.0.1
*Added: The OLESelfRegister flag in version info (used by MSI and other installers to detect and call DllRegisterServer for COM self-registration)
*Fixed: Completely removes the tooltip's shadow when the ToolTipDelay property exceeds 250 ms
*Fixed: Handling events via AttachTemplate could cause a general protection fault (GPF) when closing the application (COM version only)
Jan26
ExSchedule, 23.0.0.8
*Added: The Event.LabelAlign / Event.ExtraAlign property supports exWidth(4) flag that distributes the label on the event's width.
*Added: Redefines the default context menu for HTML-Edit to include Left, Center, Right to Align section and Solid, Dotline and Upline in miscellaneous section
*Fixed: The Enter key on a field of Edit type (such as ID or Options of the anchor item) resets field's content instead setting it as it is, on the control's default context-menu
ExList, 20.0.0.5
*NEW: Ability to sort by state or cell's image
*Added: The Column.SortType property supports exSortByState (0x20) (the column gets sorted by cell's state (checked, unchecked) rather than cell's caption). For instance, Column.SortType = exSortByState(0x20), sorts the column based on the cell's state. The Items.CellState property specifies the cell's state.
*Added: The Column.SortType property supports exSortByImage (0x30), the column gets sorted by cell's image rather than cell's caption. For instance, Column.SortType = exSortByImage(0x30), sorts the column based on the cell's image. The Items.CellImage property retrieves or sets a value that indicates the index of icon to display in the cell.
*Added: The option "Roll the mouse wheel to scroll" of Window's mouse & touchpad settings specifies the number of items to vertically scroll. Previously, scrolling vertical with the mouse wheel takes 3 items at a time
Jan22
ExG2antt, 28.0.0.6
*Added: The start/end margins of the bar being created, moved or resized defined by Chart.DateLabelTicker property, is displayed while the property is not-empty, no matter of the Chart.DrawDateTicker property. Shortly, the Chart.DateLabelTicker property does not depend anymore on Chart.DrawDateTicker property.
*Added: The Chart.AllowCreateBar property supports exCreateBarAutoEndInclusive(2) and exCreateBarManualEndInclusive(-2) values, similar with exCreateBarAuto(1) respectiv exCreateBarManual(-1), and the end margin of the bar to create by drag and drop includes the end date of the date-time unit from the cursor. The CreateBar event is fired if the user clicks and drags the newly-bar (so frame is shown). No automatically items are added and no CreateBar event is called if the user just clicks the chart (no drag).
*Fixed: The width of the list (left-panel) is changed if the control's width is resized, even if the OnResizeControl property is exResizeChart
*Fixed: Export("array",...) method returns a string instead of a two-dimensional array (NET version only)
ExRadialMenu, 20.0.0.1
*Added: The OLESelfRegister flag in version info (used by MSI and other installers to detect and call DllRegisterServer for COM self-registration)
*Fixed: Completely removes the tooltip's shadow when the ToolTipDelay property exceeds 250 ms
*Fixed: Handling events via AttachTemplate could cause a general protection fault (GPF) when closing the application (COM version only)
Jan21
ExTree, 19.2.0.5
*Added: Prevents showing the thumb of the vertical scroll bar, if the ScrollBySingleLine property is True, and the control displays a single item (higher than the control's height)
*Fixed: The control shows the dragging column in black, even the control's header shows the columns in white (ForeColorHeader property)
*Fixed: The control's ForeColorHeader property is not applied on the control's columns-float bar (the columns into the columns-float bar are always displayed in black)
*Fixed: Prevents showing the "This application is about to initialize ActiveX controls that might be unsafe. If you trust the source of this file, select OK and the controls will be initialized using your current workspace settings." warning message while the control is running into MS Office forms or user-forms.
ExPlorerTree, 24.0.0.2
*NEW: The Expression of the ConditionalFormat/ComputedField/FormatColumn now supports new keywords that retrieve the number of child items (%CC0, %CC1, ...), check whether the item is expanded or collapsed (%CX0, %CX1, ...)
*Added: The properties ConditionalFormat.Expression, Items.FormatCell, and Column.FormatColumn now support %CC0, %CC1, etc., to get the number of child items; %CX0, %CX1, etc., to check whether the item is expanded or collapsed. Here, 0, 1, ... specify the index of the column where the cell is queried. For instance, '%CC0 = 0' specifies leaf items, while '%CC0' identifies parent items
*Fixed: The expressions of ConditionalFormat.Expression, Column.FormatColumn, ... do not support %Cn keywords, so conditional or column format is not applied if it includes %Cn keywords
Jan19
ExCascadeTree, 18.0.0.1
*NEW: Ability to export the control's data as an array using the Export method
*Added: If the Destination argument of Export method is "array", the Export method returns the control's data as a safe two-dimensional array. For instance Export("array","vis") method exports the control's data as it is displayed into a two-dimensional array (zero-based). The result includes the columns headers into the first list, while the rest of lines contains the control's visible data. For instance, Export("array", "vis")(1, 5) returns the value of the cell on the second column and fifth row.
*Added: The <solidline> and <dotline> HTML tags support color in RGB format using the <solidline RRGGBB> or <dotline RRGGBB> syntax, which indicates the color to show the solid or dotted line
ExToolBar, 21.0.0.4
*Added: FormatABC method formats the A,B,C values based on the giving expression and returns the result. For instance, FormatABC("dpi") returns a numeric value that indicates the display settings ( aspect ratio )
*Fixed: The control's background shows white areas behind inner edit controls when scrolling via drag and drop (with the exArrangeItemsScroll flag set in the ArrangeItemsAs property)
*Fixed: Prevent returning the event parameter by reference when accessing the EventParam(index) property. For example, PowerBuilder generates a 'Bad runtime function reference' error if an event parameter passed by reference is accessed through the EventParam(index) property
Jan14
ExSwimLane, 22.0.0.5
*Added: UndoRemoveAction([Action], [Count]) method removes the last undo actions that can be performed on the surface
*Added: RedoRemoveAction([Action], [Count]) method Removes the first redo actions that can be performed on the surface
*Added: Pool.EnsureVisible() method scrolls the surface to ensure that the current pool fits the control's visible area
*Added: Pool.StartUpdatePool() property starts changing properties of the pool, so EndUpdatePool method adds programmatically updated properties to undo/redo queue.
*Added: Pool.EndUpdatePool(StartUpdatePool) method adds programmatically updated properties of the pool to undo/redo queue
ExPropertiesList, 24.0.0.3
*Added: Enhances the loading speed of EBN files
*Fixed: The Background(exToolTipAppearance) call might be time-consuming
*Fixed: The horizontal scrollbar now properly reveals the last column when dragged. Previously, only clicking the right arrow button moved the scrollbar to display the last column when the ContinueColumnScroll property was set to False
Jan12
Expression, 21.0.0.1
*Added: Delphi 12 sample
*Added: The Icon parameter of the ReplaceIcon method supports loading an icon in various ways. If the ICON is not provided via its handle, it will attempt to load it from a picture using its reference, the full path to the picture file, or the picture's content encoded as BASE64 strings using the eXImages tool.
*Fixed: Declares event parameters as [in, out] in the control's Type library to ensure that the class wrapper correctly generates code for parameters passed by reference. For example, in Delphi, the wrapper class now displays the NewValue parameter of the Change event as var NewValue: OleVariant rather than const NewValue: OleVariant.
ExSlider, 21.0.0.8
*Added: The Icon parameter of the ReplaceIcon method supports loading an icon in various ways. If the ICON is not provided via its handle, it will attempt to load it from a picture using its reference, the full path to the picture file, or the picture's content encoded as BASE64 strings using the eXImages tool.
*Fixed: The ReplaceIcon method fails to load icons using handles in x64 applications.
*Fixed: Prevent returning the event parameter by reference when accessing the EventParam(index) property. For example, PowerBuilder generates a 'Bad runtime function reference' error if an event parameter passed by reference is accessed through the EventParam(index) property
Jan07
ExGrid, 20.0.0.5
*Added: Enabling the Incremental Search Feature on any column with a locked-editor (ReadOnly property is exLocked or Editor.Locked property is True )
*Added: RemoveSelection or Items.RemoveSelection method removes the selected items (including the descendents)
*Fixed: The user can still type characters into a locked drop down-editor (ReadOnly property is exLocked or Editor.Locked property is True )
*Fixed: Editor.AddItem(value,vbNullString,image) method fails
ExPivot, 19.0.0.4
*Added: Update the samples to support x64 configuration (/COM version)
*Fixed: Sometimes, the control may hang up in virtual-mode if the user presses PageUp/PageDown several times
*Fixed: The AttachTemplate method fails if using "handle" keyword on x64 version
Jan05
ExSuite/JS, 5.0
*NEW: Multiple enhancements for exhelper/js such as syntax highlighting, color-string highlighting with preview boxes, and IntelliSense/autocomplete support (exontrol.run.js,exontrol.ace.js,exontrol.typelib.js)
*NEW: The on/off feature can now bind both events and keyboard shortcuts. If the first argument of the on method is a string that encloses a shortcut in {}, such as "{Ctrl + A}", it defines a keyboard shortcut, and the callback is invoked when the user presses that key combination within the control. For instance, on("{Ctrl + A}", callback) invokes the callback when the user presses CTRL + A, while on("click", callback) invokes the callback when the user clicks the control. The off method can be used to unbind both events and shortcuts defined this way (exontrol.common)
*Added: Replaces the exontrol.Def.XXX namespace with exontrol.XXX.Options, so the control uses exontrol.XXX.Options instead of exontrol.Def.XXX, where XXX is the component name (for example, Tree, Gantt, Pivot, etc.)
*Added: ItemBar.ResizePercentStep/GetResizePercentStep()/SetResizePercentStep(value) {number}, defines the incremental step for resizing a bar's percentage value (exBarPercent) via drag-and-drop at runtime; it accepts a unitary number between 0 and 1, where 0 allows freeform resizing and any value greater than 0 limits resizing to fixed increments of the bar's total percent range. For instance, a value of 0.05 makes the bar resize in 5% increments when dragged, allowing more controlled and predictable adjustments (exontrol.gantt)
*Added: Only the right label from the Chart.DateTickerLabel property is displayed for zero-length bars, such as milestone types (exontrol.gantt)
*Added: The Column.ValueToItemBarProperty and Cell.ValueToItemBar methods now support partial strings (for example, "dura" instead of "duration") (exontrol.gantt)
*Added: The exontrol.Tree.FilterBarVisibleEnum.exFilterBarPromptOnEnter flag controls whether the filter prompt is applied when the user presses the Enter key. If this flag is set, the filter is applied only when Enter is pressed while the control’s filter prompt has focus. If the flag is not set, the filter is applied after 500 ms of inactivity (exontrol.tree, exontrol.gantt, exontrol.pivot)
*Added: The Escape key clears the pattern of filter-prompt (exontrol.tree, exontrol.gantt, exontrol.pivot)
*Added: The exontrol.Tree.FilterBarVisibleEnum.exFilterBarTop flag docks the filter bar to the top or bottom of the control (exontrol.tree, exontrol.gantt, exontrol.pivot)
*Added: The "edit" flag has been added to the AllowActions property, so column cells are automatically editable when the column's AllowEdit property is set to true (exontrol.tree, exontrol.gantt, exontrol.pivot)
*Fixed: Exception has occurred: TypeError: Cannot read properties of undefined (reading 'pc'), occurs when the "filter" option is set during the Columns.Add method (exontrol.tree, exontrol.gantt, exontrol.pivot) (#26-13)
*Fixed: Properties prefixed with "border", "background", "font", "color", or "padding" in exontrol.Tree.EditOptions.inner.style are ignored (e.g., borderTop) (exontrol.tree, exontrol.gantt, exontrol.pivot) (#26-12)
*Fixed: The filter-bar's prompt is not shown once the user presses the Escape key to cancel the editing of the filter-prompt (exontrol.tree, exontrol.gantt, exontrol.pivot) (#26-11)
*Fixed: The menu (drop-down selectors for filter, format, aggregate-columns, groups, etc.) now closes correctly when the user clicks an element in a different iframe, clicks outside the browser’s client area, or when the browser itself loses focus (exontrol.menu, exontrol.tree, exontrol.gantt, exontrol.pivot, exontrol.schedule) (#26-10)
*Fixed: Exception has occurred: TypeError: Cannot read properties of undefined (reading 'getCaption'), occurs when the FindItem method is called while the control has no columns defined (exontrol.tree) (#26-9)
*Fixed: The EnsureVisibleClient and EnsureVisibleSelection methods have no effect on item-bars (exontrol.gantt) (#26-8)
*Fixed: Hides the overview selection when the control's chart is resized to 0 (exontrol.gantt) (#26-7)
*Fixed: The bars in the overview section are not displayed when the chart is resized to 0 (exontrol.gantt) (#26-6)
*Fixed: Exception has occurred: TypeError: Cannot read properties of null (reading 'copy'), occurs when the cursor hovers the control's overview section while the chart panel is hidden (its size is 0) (exontrol.gantt) (#26-5)
*Fixed: Occasionally, the value axis (oY) is unnecessarily rescaled during the Smooth method when triggered by the "onclick" event or after the "move-value" action ends (exontrol.graph) (#26-4)
*Fixed: The control's overview panel could appear duplicated (one beneath the other) after calling the exontrol.CC.Resize method to resize it (exontrol.graph) (#26-3)
*Fixed: The Smooth method may not take effect during the onclick event when clicking a value if the allowActions property contains the "move-value" flag (exontrol.graph) (#26-2)
*Fixed: Resizing the overview selection failed when dragging the left margin outside the control (exontrol.gantt, exontrol.graph)(#26-1)
ExG2antt, 28.0.0.5
*NEW: Ability to export the control's data as an array using the Export method
*Added: If the Destination argument of Export method is "array", the Export method returns the control's data as a safe two-dimensional array. For instance Export("array","vis") method exports the control's data as it is displayed into a two-dimensional array (zero-based). The result includes the columns headers into the first list, while the rest of lines contains the control's visible data. For instance, Export("array", "vis")(1, 5) returns the value of the cell on the second column and fifth row.
*Added: The <%=formula%> expression of Chart.DateTickerLabel property supports "wcount" keyword that gets the working-count between start and end margins of the bar being created, resized or moved. The Chart.NonworkingDays, Chart.NonworkingHours, Items.ItemNonworkingUnits properties define the non-working portion of the chart. Currently, the formula supports "value", "start", "end" and "wcount" keywords.

2026...........................