expopupmenu - what's new
13.0.0.2 Nov 06, 2023
*Added: Update the samples to support x64 configuration (/COM version)
*Fixed: No control frame is shown in design-mode under MS Excel's spreadsheet
*Fixed: The Attach method is not supported in UNICODE configuration*Fixed: Clicking (Custom) property generates "Class Not Registered" error (Windows x64, 'Looking for object with CLSID:{7EBDAAE1-8120-11CF-899F-00AA00688B10}')

13.0.0.1 Apr 12, 2023
*Added: DPI-Aware Support
*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%

12.0.0.1 Mar 17, 2021
*Added: ExPopupMenu.pdf (include the control's documentation in PDF format)
*Added: The Images method supports the Microsoft ImageList ( mscomctl.ocx, MSComctlLib.ImageList type) object directly. Shortly, you can define the control's images by calling Images(ImageList1.Object). The ImageList1.Object returns the object of MSComctlLib.ImageList type. The Microsoft ImageList object is available for /COM on x86 and x64 machines (starting from Access 2016)
*Fixed: The "Do you want to save changes to the design of form ''? Yes, No, Cancel" message occurs in MS Access, every time the form is closed in design mode

11.0.0.3 Jul 29, 2019
*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.

11.0.0.2 Nov 13, 2017
*NEW:   Display a placeholder for missing icons, images in HTML captions.
*Added: The Key parameter of the HTMLPicture property is case insensitive, so you can display the picture using the insensitive key. For instance, <img>picA</img> is equivalent with <img>pica</img>, or <img>PICA</img> and so on.
*Added: The HTML caption shows a missing image placeholder for images whose source is missing. The missing placeholder displays the index of the icon being missing, or the key of the HTML picture being missing. 

11.0.0.1 Aug 09, 2017
*Added: The Version property includes the SpecialBuild number of the assembly so it provides information like Major.Minor.Build.Revison.SpecialBuild.Type... For instance: 18.1.0.1.181000.DEMO
*Fixed: Prevents showing the control's view in design mode, while running on FORTH system ( /COM version )
*Fixed: Prevents a memory leak when loading icons, pictures, from BASE64 encoded strings (Images method, HTMLPicture picture).
*Fixed: Prevents "Do you want to save ..." / "Save changes...' input box, when the user opens the form in design mode, and close it.

10.0.0.3 Aug 26, 2015
*Added: Prevents showing the ,.;!?'")}] characters at the beginning of a new line, when html text is word-wrapping.
*Fixed: The last italic character of a HTML caption may be shown as clipped
*Fixed: The <img> HTML tags in the Item.Caption property are not shown on sub-menus.

10.0.0.2 May 04, 2015
*Added: </solidline>, </upline>, </dotline> HTML tags ends the solid, up or dotted line
*Added: Prevents showing the ,.;!?'")}] characters at the beginning of a new line, when html text is word-wrapping.
*Fixed: The last italic character of a HTML caption may be shown as clipped

10.0.0.1 Feb 17, 2015
*Added: FlatImageWidth property specifies the width of the column to display the icons/images when the control's MenuAppearance is exMenuFlat. For instance, you can use the Item.HTMLImage property to assign a custom-size picture to the item.
*Added: Item.HTMLImage property retrieves or sets a value that indicates the key of the image (HTMLPicture method) to be displayed on the item ( left side ). The Item.HTMLImage property does not override the Item.Image property, so the Item.HTMLImage property has effect only when the Item.Image property is -1.
*Added: The [himg=key] tag indicates the key of the image to be displayed on the item when the item is loaded using the Items.ToString property. The Item.HTMLImage = "key" is equivalent with [himg=key]

9.0.0.1 Oct 29, 2014
*NEW:   Windows 8.1 64-bit compatibility
*Added: The /COM 64-bit version is compatible with Microsoft Office Applications: Excel 2013, Access 2013,...
*Fixed: "Visual C++ Runtime Error!" occurs if using the <fgcolor> or <bgcolor> with no indicating the color. Correct is <fgcolor RRGGBB>, instead <fgcolor>

8.0.0.1 Aug 18, 2014
*New:   Ability to load/save the ToString format of the menu from the Control's Internal Editor
*Added: The Editor\Invoke Internal Editor\ToString section generates the code to load/save the menu using the Menu.ToString method.
*Fixed: "Visual C++ Runtime Error!" occurs if using the <fgcolor> or <bgcolor> with no indicating the color. Correct is <fgcolor RRGGBB>, instead <fgcolor>

7.0.0.2 Apr 14, 2014
*Added: Menu.ToString property save or load the menu from a formatted string
*Added: The HTML tags are case insensitive, so the < b > is equivalent with < B >
*Fixed: The parts of the line with different fonts in the HTML caption are vertically aligned ( instead aligning to the font's baseline ) if the line displays a picture or an icon using the <img> HTML tag.

7.0.0.1 Jan 28, 2014
*NEW:   Subscript and Superscript implementation in HTML captions, using the <off> HTML tag
*Added: <off>, </off> built-in HTML tags defines the vertical offset to display the element, relative to the current position. This tag is inheritable. The <off pixels>, where, pixels indicates the vertical offset to be applied ). For instance, the following text displays a text with Subscript and Superscript such as: "Text <off 4>with subscript</off> <off -4>and superscript</off> support"
*Added: The <fgcolor=0000FF> and <fgcolor FF>, or <bgcolor=00FF00> and <bgcolor FF00>, so no = or full 6 hexa-digits are required to define the color to be applied
*Fixed: The <font> HTML tag is not overwritten when using inside another <font> tag

6.0.0.1 Sep 10, 2012
*NEW:   New text decorations support for HTML captions, like outlined characters, shadow, ....
*Added: <gra>, </gra> built-in HTML tags define a gradient text ( the <gra> supports color, mode and blending, like <gra rrggbb;mode;blend>, where, rr/gg/bb represents the red/green/blue values of the ending color, 808080 if missing as gray, mode a value between 0 and 4, 1 if missing, and blend 0 or 1, 0 if missing )
*Added: <out>, </out> built-in HTML tags define a text to show with outlined characters ( the <out> supports color and width, like <out rrggbb;width>, where rr/gg/bb represents the red/green/blue values of the outline color, 808080 if missing as gray, width indicates the size of outline, 1 if missing.
*Added: <sha>, </sha> built-in HTML tags define a text with a shadow ( the <sha> supports color, width and offset, like <out rrggbb;width;offset>, where rr/gg/bb represents the red/green/blue values of the shadow color, 808080 if missing as gray, width indicates the size of shadow, 4 if missing, and offset indicates the offset from the origin to display the text's shadow, 2 if missing.
*Added: Increases the performance of parsing HTML captions.

5.0.0.1 Jun 13, 2011
*Added: Changes the visual appearance of the MenuButton object according to the current XP/Vista/7 theme. 
*Added: MenuButton.Enabled property enables or disables the control.
*Added: MenuAlignEnum.MenuBottomRight/MenuTopRight aligns the associated popup menu to right on bottom or top side of the button.

4.0.0.3 Jan 19, 2011
*NEW:   Inheritance for HTML attributes on multiple line ( for instance, the < b > is inherited on multiple lines, until the < /b > tag is found)
*NEW:   The < font > or < img > can change the height of the HTML line, so HTML captions can display lines with different heights.
*Added: The HTML captions allow using not-nested elements to be used. (for instance the sequence "< b >1< s >23< /b >4< /s>" displays 123 in bold while the 234 are shown in strikeout )
*Added: The < c > HTML tag centers the line. Simiar with < r > HTML tag.
*Fixed: Extra characters are inserted in the next line if the breaking element is a picture that does not fit the current line.
*Fixed: Ignores the ending HTML tags, if they are not used previously ( for instance, the < /b > is not displayed in the sequence "ABC< /b >" )

4.0.0.2 June 14, 2010
*NEW:   PNG support for picture properties (HTMLPicture).
*Added: PNG, TIFF, EXIF or WMF image format support.

4.0.0.1 July 20, 2009
*Added: 64-bit support
*NEW:   Ability to change the parameters passed by reference of the control's events for environments that does not support events with parameters by reference, such as uniPaas 1.5 (formerly known as eDeveloper), DBase, and so on
*Added: EventParam() property accesses a specified parameter of the current event. This property has effect only during an event, and can be used to change or retrieve a specified parameter of the current event
*Added: EventParam(-1) retrieves the number of parameters that can be accessed.

3.0.0.3 June 17, 2009
*Added: ItemByData(ItemData) property searches for a specific Item object given its associated data.
*Added: Debug property retrieves or sets a value that indicating whether the item's identifier is visible.
*Added: Item.Visible property specifies whether an item is visible or hidden.
*Fixed: The ID parameter of the Add method is not changed if a SubMenu is added.

3.0.0.2 January 09, 2009
*NEW:   Ability to load and display custom size pictures to HTML items.
*Added: HTMLPicture property. Adds or replaces a picture being used in the HTML items.
*Added: <img> built-in tag supports pictures. For instance, the <img>pic1</img> displays the pic1 picture being loaded using the HTMLPicture("pic1")
*Added: The Handle parameter of the Images method is of VARIANT type and so it may accept a long expression that identifies a handle to an Image list  ( the Handle should be of HIMAGELIST type ) or a string expression that indicates the base64 encoded string that holds the icons list

3.0.0.1 November 12, 2008
*Added: Compatible with the Data Execution Prevention (DEP). (SpecialBuild:5000)
*Fixed: The excel vba fires "Run-time error '28', Out of Stack space", when running an user-form. ( IQuickActivate )

2.0.0.1 May 07, 2008
*Added: ShowAtWindow property shows the popup menu control relative to the specified window.
*Fixed: The UNICODE configuration can't read persistence data saved previously using the ANSI version.

1.0.2.6 March 13, 2007
*Added: <font face;size> built-in HTML tag that specifies the font and the size to draw a portion of text until </font> is found. 

1.0.2.5 October 25, 2006
*Added: <img> HTML tag supports adding icons anywhere in the item's caption
*Added: Item.ItemData property. Associates an extra data to an item.

1.0.2.4 December 19, 2005
*Added: UNICODE support

1.0.2.3 February 18, 2005
*Fixed: VFP sample

1.0.2.2 September 27, 2004
*Added: PopupMenu.Font property. Specifies the control's font.
*Added: Displays pictures with their size using the MenuButton.Picture property.

1.0.2.1 March 14, 2004
*Added: The X and Y coordinates of the PopupMenu.Show method are relative to the screen.
*Fixed: On .NET, the popup menu shows up on design mode, if the user clicks the control's icon.

1.0.2.0 January 08, 2004
*Added: ItemHeight property. Specifies the item's height.

1.0.1.9 September 12, 2003
*Help:  Updated
*Added: The "<r>" HTML tag aligns right the caption.

1.0.1.8 March 10, 2003
*Help:  Updated
*Added: Ability to load new icon files to images panel by pressing the INSERT key.
*Added: Item.Highlight property. Specifies whether the focused item appears selected. Use Highlight property to specify the item as a title item.
*Added: Item.Gray property. Specifies whether a disabled item appears as grayed.

1.0.1.7 November 29, 2002
*Added: PopupMenu.ShadowColor property. Specifies the shadow color, when control's Appearance is Flat.
*Added: PopupMenu.CloseOnClick property. If the CloseOnClick is False, the popup menu is closed automatically if the mouse leaves the popup's area.
*Fixed: Only one icon is inserted to images panel, when a dll file is dragged.

1.0.1.6 November 11, 2002
*Fixed: The item doesn't display & characters.

1.0.1.5 October 23, 2002
*Added: Editor Page. Invokes the internal menu editor, for WEB pages,
*Added: Color Page. 
*Added: WEB\sample.htm sample
*Added: FAQ page.
*Fixed: Both controls ( PopupMenu. MenuButton ) marked as safe for initialization or safe for scripting.

1.0.1.4 October 20, 2002
<b>If your are using a WEB browser to check these notes, please select View\Source to see the correct HTML tags used.</b>
*NEW:   Ability to use built-in HTML format inside item. (<b>F</b>ile)
	The following tags are supported:
		<b> tag - draws a text bolded until </b> is reached.
		<i> tag - draws the text using italic font attribute until </i> is reached.
		<s> tag - draws the text using strikeout font attribute until </s> is reached.
		<u> tag - draws the text using underline font attribute until </u> is reached.
		<fgcolor=RRGGBB> tag - draws the text using the RGB(RR,GG,BB) foreground color. </u>, until </fgcolor> is reached. RR, GG and BB should be hexa values
		<bgcolor=RRGGBB> tag - draws the text using the RGB(RR,GG,BB) background color. </u>, until </bgcolor> is reached. RR, GG and BB should be hexa values
	For instance: the HTML formatting "<b>Inbox</b> <fgcolor=0000FF>(78)</fgcolor></b>" draws the 'Inbox' using bold font attribute, and '(78)' using the blue foreground color.
*Added: PopupMenu.Version property. Specifies the control's version.
*Added: MenuButton.Version property. Specifies the control's version.
*Chang: All sample changed.

1.0.1.3 July 19, 2002
*Added: Using the CTRL + Up/Down key to move the item on design mode.

1.0.1.2 May 17, 2002
*Chang: HAlignEnum.Right changed to HAlignEnum.exRight. HAlignEnum.Left to HAlignEnum.exLeft, HAlignEnum.Center to HAlignEnum.exCenter.
*Chang: VAlignEnum.Bottom changed to VAlignEnum.exBottom, VAlignEnum.Top changed to VAlignEnum.exTop, VAlignEnum.VCenter changed to VAlignEnum.exVCenter

1.0.1.1 May 06, 2002
*Added: PopupMenu.Item default property. The PopupMenu1(ID) gets the Item object based on item's caption or item's identifier.
*Added: Item.Parent property. Gets the item's parent.

1.0.1.0 May 01, 2002
*NEW: MenuButton.DropDownVisible property. Retrieves or sets a value that indicates whether the control displays a drop down button.
*Added: MenuButton.Picture property retrieves or sets a value that defines the control's image. The Picture property can be a string expression that indicates the location of the picture file, an IPicture reference, or a long expression that indicates the index of icon in the associated popup menu images collection.
*Fixed: The MenuButton control keeps the focus if the TAB key is pressed.

1.0.0.9 March 22, 2002
*NEW: Attach( hWnd ) method. Attaches the menu to a window. Use the Attach method to attach a menubar to a form
*NEW: Detach method. Detaches the menubar attached by the Attach method.
*NEW: Command event. Fired when the user has selected a menubar item.

1.0.0.8 March 12, 2002
*Added: BackColor property. Retrieves or sets the menu's background color.
*Added: ForeColor property. Retrieves or sets the menu's foreground color.
*Added: SelBackColor property. Retrieves or sets the highlighted item's background color.
*Added: SelForeColor property. Retrieves or sets the highlighted item's foreground color.

1.0.0.7 February 14, 2002
*NEW: MenuButton ActiveX Control. It allows attaching a popup menu to a push button ( Menu and MenuButton samples ).
*NEW: MenuButton.Click event. Fired when the user has clicked the button ( and he has selected a new item ). MenuButton.LastID contains the last command identifier.
*NEW: MenuButton.Alignment property. Retrieves or sets the caption's alignment
*NEW: MenuButton.BackColor property. Retrieves or sets the control's background color
*NEW: MenuButton.Caption property. Retrieves or sets the control's caption
*NEW: MenuButton.Font property. Retrieves or sets the control's font
*NEW: MenuButton.ForeColor property. Retrieves or sets the control's foreground color.
*NEW: MenuButton.LastID property. Retrieves the last command identifier that was selected
*NEW: MenuButton.Menu property. Associates a PopupMenu object to MenuButton control.
*NEW: MenuButton.MenuAlign property. Retrieves or sets the menu's alignment.
*NEW: MenuButton.Picture property. Retrieves or sets the control's picture
*NEW: MenuButton.PictureAlignment property. Retrieves or sets a value that indicates the picture's alignment
*NEW: MenuButton.Type property. Retrieves or sets the control's type
*NEW: MenuButton.Push method. Push the button.
*NEW: MenuButton.Dismiss method. Releases the button.
*NEW: MenuButton.Appearance property. Retrieves or sets the menu's appearance
*NEW: MenuButton.ShowFocusRect property. Retrieves or sets a value that indicates whether the focus rectangle is visible or hidden.
*NEW: PopupMenu.MouseMove event. Fired while the menu is up, and the user moves the mouse.
*NEW: MenuButton.CursorInside property. Checks whether the cursor is over the control.
*NEW: MenuButton.hWnd property. Retrieves the handle of control's window.
*NEW: MenuButton.Push event. Fired just before droping the menu
*NEW: MenuButton.Dismiss event. Fired after menu was closed.

1.0.0.6 February 14, 2002
*Added: HAlign property. Specify how the control positions the shortcut menu horizontally. 
*Added: VAlign property. Specify how the control positions the shortcut menu vertically. 
*Changed: Copyright information.

1.0.0.5 December 14, 2001
*Fixed: license

1.0.0.4 December 1, 2001
*Changed: Add( ...ShortCut... ) adds a new entry even if the file doesn't exist.

1.0.0.3 November 19, 2001
*Added: ItemTypeEnum.ShortCut. Add( ..., ShortCut, ... ) adds a new item of ShortCut type. The newly added item contains a submenu, if the file path passed points to a folder. It adds also, the image for the file passed. It fails, if the file is not found. Use Item.FilePath to retrieve the file path
*Added: ItemTypeEnum.ShortCut. Add( ..., ShortCutFolder, ... ) adds a new item of ShortCut type. If the file passed points to a folder the newly created item will have no submenu attached.
*Changed: Add method. The Add method is able to add shorcut items.
*Added: Item.FilePath. Retrieves a value that indicates the file path of the item, when it is of ShortCut type.
*Added: Command.FilePath. Retrieves a value that indicates the file path of the command, when it is of ShortCut type.

1.0.0.2 November 09, 2001
*Added: Menu object. The Menu object is used to add, remove or change items at runtime.
*Added: Menu.Add property. Adds a new menu item at runtime.
*Added: Menu.Clear. Clears the menu.
*Added: Menu.Count. Counts the items.
*Added: Menu.Item. Retrieves an Item object based on its caption or identifier.
*Added: Menu.Remove. Removes a menu item given its caption or its identifier.
*Added: Item object. The Item object is used to access an item at runtime.
*Added: Item object. The Item object is used to access an item at runtime.
*Added: Item.Bullet. Retrieves or sets a value indicating whether the item is of bullet type.
*Added: Item.Caption. Retrieves or sets a value that indicates the item's caption.
*Added: Item.Check. Retrieves or sets a value that indicates whether the item is of check type.
*Added: Item.Enabled. Retrieves or sets a value that indicates the item's state.
*Added: Item.ID. Retrieves or sets a value that indicates the item's identifier.
*Added: Item.Image. Retrieves or sets a value that indicates the item's index image.
*Added: Item.Separator. Retrieves or sets a value that indicates whether the source is a separator item.
*Added: Item.SubMenu. Retrieves a Menu object that indicates the item's sub menu.
*Added: Items property. Retrieves a Menu object to handle adding, removing or changing items at runtime,
*Added: Images method. Sets the control's image list at runtime. The Handle should be of HIMAGELIST type.
*Added: hWnd Property. Retrieves the control window's handle.
*Added: Help support

1.0.0.1 September 09, 2001
* Initial Release