exprint - sample code

Easy Hierarchy Editing with Undo and Redo Support:

This movie highlights the Undo and Redo functionality, allowing you to quickly reverse or repeat recent actions and making editing faster and safer. It also demonstrates how Copy, Cut, Paste, and Indent can be used to easily create and manage a hierarchical structure using keyboard shortcuts or the context menu. These features will be supported in the eXGrid and eXG2antt controls.

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.

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.
Apr16
ExComboBox, 20.0.0.3
*Added: Column.EditMaxLength property gets or sets the number of characters a user can type into the control's edit. By default, the Column.EditMaxLength property is 0, which indicates no effect. For instance, Column.EditMaxLength property on 2 limits the user to type up to 2 characters within the giving column.
*Added: TemplateDef/TemplatePut property allows defining inside variables for the Template feature ( available for /COM only, and useful to assign properties with multiple parameters, which is not supported in dBASE )
*Fixed: Can't type SPACE within the edit field of the drop down column's filter (Column.DisplayFilterPattern property)
ExSurface, 22.0.0.5
*NEW: Undo/Redo items into control's toolbar
*Added: The ToolBarFormat property supports 103 and 104 identifiers to handle the Undo and Redo operations for the control. Use the ToolBarCaption, ToolBarToolTip properties to change the Undo/Redo's captions and tooltips. The Undo/Redo items are automatically enabled or disabled based on the control's AllowUndoRedo, CanUndo, CanRedo properties. For instance, the Undo/Redo toolbar items are automatically disabled if the AllowUndoRedo property is False.
*Added: The ShowToolTip method can be used to update the object's tooltip, title or position. For instance, ShowToolTip(`<null>`,`<null>`,,`+8`,`+8`) during MouseMove event, shows the tooltip of the object moved relative to its default position.
*Fixed: The ShowToolTip() method works improperly as it may show the tooltip to a different position
Apr15
ExList, 20.0.0.7
*Added: The Description(exFilterBarExclude) allows ex-html format (ability to replace the "Exclude" field with your custom ex-html string)
*Fixed: FormatAnchor(False) = vbNullString fails (vbNullString is a special VB constant that denotes a null string. The "" literal is an empty string)
*Fixed: The vertical-scroll bar is not shown/hidden once the column gets resized (Def(exCellSingleLine) property)
ExTab, 20.0.0.1
*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.
*Added: The OLESelfRegister flag in version info (used by MSI and other installers to detect and call DllRegisterServer for COM self-registration)
*Fixed: The ReplaceIcon method fails to load icons using handles in x64 applications.
Apr10
ExSchedule, 24.0.0.1
*NEW: Expandable-captions support, or ability to expand/collapse the captions using HTML tags such as <a id;exp=text> or <a id;e64=encode64>
*Added: EditableCaptionEnum.exEditAcceptsReturn flag specifies that the ENTER key inserts new lines during edit
*Fixed: The <solidline>, <a id;options> tags are lost once the user types characters
ExGraph, 12.0.0.6
*Added: The Reset() method resets the series, category axes, and value axes without affecting the control's data
*Added: The expression properties support the Chr(code) operator, which returns the character for a given ASCII (or ANSI) code, and the Asc(char) function, which retrieves the ASCII (or ANSI) code of the first character in a string. Additionally, the eol constant represents the end-of-line sequence ("\r\n" or Chr(13) & Chr(10)), and the tab constant corresponds to the tab character (Chr(9))
*Added: The expression properties include support for the week(date) operator, which returns the week number of a given date
Apr08
ExTree, 20.0.0.2
*Added: Ability to scroll the control's content using two-fingers on a touchpad (swipe up or down with two fingers, scrolls the control's up or down)
*Added: Prevents resizing an item with Items.ItemAllowSizing property on True, while Items.ItemMinHeight and Items.ItemMaxHeight provides no range ( for instance are both are equal ). In the same manner the resize-cursor does not shows up once the cursor hovers the resize part of the item.
*Fixed: The Items.ItemMaxHeight property on 0, is ignored while the item contains a cell with Items.CellSingleLine property on False.
*Fixed: The Items.ItemMinHeight and Items.ItemMaxHeight properties are ignored if resizing all items, using the ItemsAllowSizing property on exResizeAllItems.
ExPivot, 19.0.0.6
*Fixed: The CopyTo() method for PDF documents, converts missing units for paper's size or margins to mm (previously points if no other unit is specified). For instance, CopyTo("preview.pdf|297 x 210mm") generates a PDF document of "8.27 x 4.13 in" instead of "11.69 x 8.27 in" (the mm is missing right after 297)
*Fixed: Can't generate portrait orientation for PDF documents using the CopyTo method. For instance, the CopyTo("preview.pdf|210mm x 297mm") generates landscape instead portrait orentation.
*Fixed: The control's list is not updated with new items once the Requery method of DataSource (ADO) is called
Apr01
ExSuite/JS, 5.3
*NEW: Full support in ExHelper/JS, including complete documentation for almost all components (except ExGauge/JS, ExRadialMenu/JS, ExRollist/JS, and ExSchedule/JS)
*Added: The "onbarresizing" event occurs while the user is resizing or moving an item-bar by drag. The "onbarresizing" event with { cancel: true } is fired when the resize or move operation is canceled. (exontrol.gantt)
*Added: The align parameter of the Chart.ScrollTo() method now supports partial strings (for example, "right" instead of exAlignRight), improving readability and ease of use (exontrol.gantt)
*Added: The Item.children property contains the item's child collection as an array of Item objects (exontrol.menu)
*Added: The GetData() method returns the data currently imported into the control. The data is available only after it has been loaded using the Import method or the SetData(value) method, and the onload event occurs once the data is successfully imported (exontrol.graph)
*Added: The PoolSplitter.Client property gets the lane or phase's client rectangle in absolute coordinates, excluding the pool header area (exontrol.swimlane)
...
ExG2antt, 28.0.1.0
*Fixed: The selection within the overview part of the control overwrites the units and the overview-bars, while Chart.OverviewSelTransparent(Part) property is 0 (by default)
*Fixed: The ColumnsAllowSizing property does not work if the HeaderAppearance property is 0
*Fixed: The column narrows once column gets shown/hidden (for instance, the user check/uncheck the column's visibility in the Columns float bar), while the ColumnAutoResize property is True (Column.Visible, ColumnAutoResize, ColumnsFloatBarVisible)
ExCascadeTree, 18.0.0.2
*Added: The `format` operator of expression properties supports formatting the date values, using d, dd, ddd, ddd (day of the month as digits, with or without leading zeros, abbreviated day of the week, day of the week as specified by the current locale ), m, mm, mmm, mmmm (month as digits, with or without leading zeros, abbreviated month, month as specified by the current locale), y, yy, yyy, yyyy (year represented only by the last digits, by a full four or five digits, depending on the calendar used) literals. For instance, the "date(value) format `mmm d, yyyy`" gets the value in MMM d, YYYY format using the current locale, such as "Jan 12, 2023"
*Added: Prevents resizing the columns by drag and drop within the control's header, while the HeaderAppearance property is 0
*Fixed: The ScrollPos(False) property may not work properly if the ContinueColumnScroll property is False
Mar25
ExFileView, 19.0.0.2
*Added: New visual appearance for all internal icons to support high DPI resolution (100%, 125%, 150%, 175%, 200% and 300%)
*Fixed: The internal icons are stretched and look distorted when DPI scaling is not 100%
*Fixed: Can't type SPACE within the edit field of the drop down column's filter (Column.DisplayFilterPattern property)
ExTreeCube, 20.0.0.2
*Added: The OLESelfRegister flag in version info (used by MSI and other installers to detect and call DllRegisterServer for COM self-registration)
*Added: The expression properties include support for the week(date) operator, which returns the week number of a given date
*Fixed: Handling events via AttachTemplate could cause a general protection fault (GPF) when closing the application (COM version only)
Mar23
ExThumbnail, 21.0.0.1
*NEW: Ability to control thumbnail layout using columns x rows format
*Added: Support for the GridLayout property, allowing thumbnails in exThumbnailGrid mode to be arranged using a configurable columns x rows format (for example, "1 x" or "x 2"), with automatic layout when not specified.
*Added: The OLESelfRegister flag in version info (used by MSI and other installers to detect and call DllRegisterServer for COM self-registration)
*Fixed: Handling events via AttachTemplate could cause a general protection fault (GPF) when closing the application (COM version only)
ExToolBar, 21.0.0.5
*NEW: Ability to display the numbers in scientific (1.23e+03) or fixed-point (1230.00) notation
*Added: The format operator of expression properties supports formatting numbers in scientific (1.23e+03) or fixed-point (1230.00) notation; the "value format 'flags'" string accepts the pattern '%'<flags>?<width>?<precision>?<length>?<specifier>, where flags control formatting as follows: - (left-justify), + (always show sign), space (prefix space for positives), # (force decimal point or preserve trailing zeros), and 0 (pad with zeros), with optional width, precision, length (l, ll, L, etc.), and specifier (e, E, f, F, etc.). The format specifier e (or E) defines scientific (exponential) notation output. The format specifier f (or F) defines fixed-point notation output. For instance, "dbl(value) format '%.2e'" converts the value to a number and formats it using scientific notation (gives both the mantissa and the exponent in scientific notation (e.g., 1.23e+003)), showing 2 digits after the decimal point. For instance "dbl(value) format '%.2e' replace `e` with ` x 10<off -4>` replace `+00` with ``" shows the number using as mantissa and a power of 10, such as 1.23 x 10^3
*Added: The OLESelfRegister flag in version info (used by MSI and other installers to detect and call DllRegisterServer for COM self-registration)
Mar18
ExSwimLane, 22.0.0.6
*Added: The Pools.Add(X, Y, Width, Height) method adds a pool that cover all visible-elements if X, Y, Width and Height parameters are missing (VT_ERROR or VT_EMPTY)
*Added: The ShowToolTip method can be used to update the object's tooltip, title or position. For instance, ShowToolTip(`<null>`,`<null>`,,`+8`,`+8`) during MouseMove event, shows the tooltip of the object moved relative to its default position.
*Fixed: The ShowToolTip() method works improperly as it may show the tooltip to a different position
ExButton, 24.0.0.3
*Added: The ShiftPushedState property specifies the number of pixels by which the control's text (and image, if any) is shifted when the control is in the pushed (clicked) state. By default, the property is set to 2, meaning the control's text is shifted by two pixels when the user clicks it.
*Added: The BackColorState(exDefaultFrame) property specifies the color of the frame around the default button when the control's Style is not exTheme. Setting BackColorState(exDefaultFrame) to -1 hides the frame in this case
*Fixed: The control does not visually change its state when clicked or released while the exTheme style is running
Mar16
ExHTML, 22.0.0.8
*Added: The expression properties support the Chr(code) operator, which returns the character for a given ASCII (or ANSI) code, and the Asc(char) function, which retrieves the ASCII (or ANSI) code of the first character in a string. Additionally, the eol constant represents the end-of-line sequence ("\r\n" or Chr(13) & Chr(10)), and the tab constant corresponds to the tab character (Chr(9))
*Added: The expression properties include support for the week(date) operator, which returns the week number of a given date
*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.
ExPropertiesList, 24.0.0.4
*Added: Delphi 12 sample
*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.
*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
Mar11
ExG2antt, 28.0.0.9
*Added: The HeaderEnabled property enables or disables the control's header
*Added: Prevents resizing the columns by drag and drop within the control's header, while the HeaderAppearance property is 0
*Added: Only the right label from the Chart.DateTickerLabel property is displayed for zero-length bars, such as milestone types
ExPlorerTree, 24.0.0.3
*Added: Enhances the speed of accessing columns or cells by name/key
*Added: The Column.Def(exFilterPatternTemplate) property specifies the template for the column's filter when the Column.Filter property or the 'Filter For' field is populated. This property customizes the filter pattern for the column when the Column.FilterType property is set to exPattern. It supports the <%filter%> keyword, which replaces the original filter input. For example, setting Def(exFilterPatternTemplate) to '*<%filter%>*' filters for all items containing the specified sequence, while setting it to 'Item*<%filter%>' filters for all items starting with 'Item' and ending with the typed characters. If the Column.Def(exFilterPatternTemplate) property is empty, the filter is applied as it is.
*Fixed: Column resizing by drag and drop at runtime now works correctly when the RightToLeft property is set to True
Mar05
ExGrid, 21.0.0.1
*NEW: Undo/Redo Support for the list/items section, to include adding or removing the items, changing the item's parent/position, updating the cell's value or cell's state (check-box/radio-button state) (The Undo and Redo features let you remove or repeat single or multiple actions, but all actions must be undone or redone in the order you did or undid them you can t skip actions. For example, if you change the value of three cells in an item and then decide you want to undo the first change you made, you must undo all three changes)
*Added: AllowUndoRedo property enables or disables the Undo/Redo feature (by default, the AllowUndoRedo property is False)
*Added: Undo method performs the last Undo operation
*Added: Redo method redoes the next action in the control's Redo queue
*Added: URChange( Operation ) event occurs once the undo/redo queue is changed (perform Undo/Redo actions)
ExSlider, 22.0.0.1
*Added: Delphi 12 sample
*Added: The expression properties support the Chr(code) operator, which returns the character for a given ASCII (or ANSI) code, and the Asc(char) function, which retrieves the ASCII (or ANSI) code of the first character in a string. Additionally, the eol constant represents the end-of-line sequence ("\r\n" or Chr(13) & Chr(10)), and the tab constant corresponds to the tab character (Chr(9))
*Added: The expression properties include support for the week(date) operator, which returns the week number of a given date
Mar04
ExTab, 19.0.0.8
*Added: Enhances the loading speed of EBN files
*Fixed: The Background(exToolTipAppearance) call might be time-consuming
*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
ExMiller, 19.0.0.3
*Added: Delphi 12 sample
*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.
*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
Mar02
ExSuite/JS, 5.2
*NEW: Redesign the documentation to offer developers a comprehensive and practical reference.
*Added: The "shape" field of the horizontalShapes, verticalShapes, horizontalOverlayShapes, and verticalOverlayShapes options of the ScrollBar control now accepts any CSS color or a JSON representation of a shape object, not just objects defined in the exontrol.Shapes.ScrollBar namespace. For example, "Button(l,t,r)" sets the left/top, right/bottom, and thumb parts of the scroll bars to use the Button shape as defined in exontrol.Shapes.Button (exontrol.common)
*Added: The Caption property of Cell object retrieves the cell's caption (including any formatting) (exontrol.tree, exontrol.gantt, exontrol.pivot)
*Added: GanttView(name) {GV}, gets the gantt-view by name (which was previously created by the AddGanttView() method) (exontrol.gantt)
*Added: The Serie(index) and Series.Item(index), Series.ItemByPos(position) methods accept negative indices to access items relative to their addition order, where -1 returns the most recently added serie, -2 returns the serie added just before it, and so on (exontrol.graph)
*Added: The DataHeader/GetDataHeader() {array}, returns the data's header (column-names) (exontrol.graph)
...
ExEdit, 22.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)
ExTexture, 6.0.0.5
*NEW: The ex-HTML tags, including fgcolor, bgcolor, gra, out, sha, solidline, and dotline, now support 150 named colors, such as <fgcolor red>, as well as RGB format specifications like <fgcolor rgb(255,0,0)>. This enhancement offers more flexibility in defining colors within ex-HTML tags
*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.
Feb26
ExOrgChart, 22.0.0.1
*NEW: PDF Scaling Options, such as page-fit ([w] x [h]) and percentage (p%)
*Added: The File argument of CopyTo can include multiple parameters separated by the | character, in the following order: filename.pdf | paper size | margins | options. When the first field (filename) ends with .pdf, the fourth field (options) now supports PDF page-fit ([w] x [h], where only w specified: fit content w pages wide by as many pages tall as needed (e.g., "1 x"); only h specified: fit content as many pages wide by h pages tall as needed (e.g., "x 2"); both w & h specified: stretch exactly if ending with 'f' (e.g., "2 x 3f"), otherwise fit within (e.g., "2 x 3"); neither specified: use as many pages as needed); e.g., CopyTo("fit.pdf|8.27 in x 11.69 in|0 0 0 0|1 x") fits content 1 page wide, as many pages tall as required.
*Added: When the first field (filename) of CopyTo's File parameter ends with .pdf, the fourth field (options) now supports PDF percentage scaling (p%); e.g., CopyTo("fit.pdf|8.27 in x 11.69 in|0 0 0 0|75%") scales content proportionally by 75%
ExG2antt, 28.0.0.8
*Added: The Items.Link(key, exLinkType) property specifies the link's type as one of the following values 1(SF, S(tart)-F(inish), 2(FS, F(inish)-S(tart)), 4(FF, F(inish)-F(inish)) or 8(SS, S(tart)-S(tart))
*Added: The Items.SchedulePDM(-1, "") method resets the critical-path colors previously set using the Items.DefSchedulePDM property
*Fixed: Prevent adding two or more links between the same item-bars, using different keys (Items.AddLink method)
Feb25
ExGantt, 20.0.0.3
*Fixed: The Column.Def(exCellButtonAutoWidth) property has no effect for HTML buttons (Column.Def(exCellValueFormat) is exHTML)
*Fixed: Sometimes, the column's partial-check feature does not work correctly (Column.PartialCheck, Column.Def(exCellHasCheckBox))
*Fixed: A black-portion is shown on the control's sort-bar above the chart
ExRecord, 17.0.0.6
*Added: The Background(exScrollHoverAll/500) property specifies whether the hover-all feature is by default (0), always on (-1) or disabled(1). By default (Background(exScrollHoverAll) = 0), the left/top, right/bottom and thumb parts of the control' scrollbars are displayed in hover state while the cursor hovers any part of the scroll bar (hover-all feature). The hover-all feature is available on Windows 11 or greater, if only left/top, right/bottom, thumb, lower and upper-background parts of the scrollbar are visible, no custom visual-appearance is applied to any visible part. The hover-all feature is always on If Background(exScrollHoverAll) = -1. The Background(exScrollHoverAll) = 1 disables the hover-all feature.
*Added: Show the Left/Top or Right/Bottom buttons of the control's scrollbar on Windows 11 or greater, while the cursor hovers the scrollbar's background.
*Fixed: The scroll button's appearance is restored to normal instead of hover state when the mouse button is released
Feb23
ExGauge, 25.0.0.2
*Fixed: Resource memory leaks occurring when using the CopyTo method during PDF export
*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)
ExFolderView, 20.0.0.1
*Fixed: Handling events via AttachTemplate could cause a general protection fault (GPF) when closing the application (COM version only)
*Fixed: Completely removes the tooltip's shadow when the ToolTipDelay property exceeds 250 ms
*Fixed: Enabled property doesn't work properly
Feb19
ExCalendar, 23.0.0.1
*NEW: Ability to define selectable dates
*Added: The Selectable property specifies an expression that controls which dates can be selected. By default, it is "not(eventdisabled)", meaning all non-disabled dates are selectable. The expression supports value (the date being checked) and eventuserdata / eventdisabled (the UserData or Disabled property of events added through Events.Add), allowing restrictions by date, event state, or event user-data (for example, "not(weekday(value) in (1,6))" makes all dates selectable except Sundays and Saturdays) (available for drop-down version as well)
*Added: Disabled dates can now be selected if the Selectable property does not reference eventdisabled (for example, if it is set to ""). Previously, disabled dates could not be selected and no selection background was applied to them (Event.Disabled property)
ExG2Host, 21.0.0.7
*Fixed: Check-boxes in columns of type CheckValueType are hidden when the control's RightToLeft property is set to True
*Fixed: "Loading library failed. 0x0000007E. The specified module could not be found" error message while installing the component
*Fixed: Handling events via AttachTemplate could cause a general protection fault (GPF) when closing the application (COM version only)
*Fixed: Closing ExHelper.exe could occasionally produce an unhandled access-violation exception. This fault, visible mostly in Windows Event Viewer as "Faulting application name: ExHelper.exe” could lead to the application terminating unexpectedly

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