Q: In my application I see "Demo has expired" instead of the control. But I have purchased the product already. What do I do now?
There are exactly four reasons, why you could receive this message or the control doesn't paint and displays the "Demo has expired" message instead. Based on the circumstances, here are the three possible reasons:
1) Demo has expired - Really
If you have downloaded the demo and used it for up to 30 days and you now receive this message, the demo has indeed expired. If you wish to continue using the product, you can purchase a license at https://softelvdm.com/store.
2) Demo has expired - Wrong Product
You may receive this message if you have installed a product or demo, which uses other OCX controls. For example, SftOptions 1.0 installs the SftButton/ATL control. This SftButton control is a run-time only version. If you accidentally try to use the SftButton control in design-time mode, you will receive the "Demo expired" message. You will still be able to install and use the SftButton demo later even though you received this message. The product or demo you are using is not affected in any way.
3) Demo has expired - Dynamically Created Control
This is usually only found with C++ as other environments mostly use designed controls. If you want to create controls dynamically (which is possible using MFC's CreateControl function - use an empty license key), our product requires at least one "designed" control, which must be created before the first dynamic control, in order to establish a runtime license. This designed control can be on an invisible or off-screen modal or modeless dialog or it can be invisible on any dialog. Only one such designed control is necessary for the entire application.
4) Demo has expired - Form Was Originally Created With The Demo Version
You have already purchased the product, have installed it on your system, have created an application and have distributed your application to end users. On the end-users' systems you receive the message "Demo has expired". These systems of course don't have a control license, nor did they ever have the demo version installed. And, most importantly, you should of course be able to run your application without our control complaining about having expired.
The Good News
If you see the message "Demo has expired", your application is installed correctly, the controls are registered correctly and all dependent files (DLLs) have been installed and registered correctly.
The Not-So-Good News
You cannot correct the problem on the end-users' systems. The problem was caused and originates from your development system (or your build environment, or other developers on your team...).
Each control saves an indicator along with all of its properties on the forms or dialogs, signaling whether the control properties were last saved on a system where the product was fully licensed. This means, if the indicator which is stored in the form is not properly set, end-users' systems will be unable to run the application.
A common problem is that an application is developed using the demo version (during the 30 day trial) and then distributed (after purchasing a license). If the project has not been modified and compiled at least once (see below) after purchasing the license, it will appear as if the application was developed with the demo version (well, it was) and you cannot distribute the application. Simply distributing OCX files from the purchased product will not correct the "Demo expired" message, since the product and the demo files are absolutely identical.
How did it Happen?
If you open a project with the demo version of our control and subsequently save the form(s), the indicators will be set that the control was used with a demo version.
If you open a project on a system where the product (and its license) is not installed and you subsequently save the form(s), the indicators will be set that the control was used with a demo version.
You used a text editor or similar tool to make changes to control properties without using an IDE, so our control could not update its property settings. After installing a new major version of a control, you have to allow the control to convert and save its property settings by using an IDE to edit the forms. This only applies to major version, such as when upgrading from 3.0 to 3.5. It does not apply to maintenance versions, such as when upgrading from 4.51 to 4.52.
Steps to Correct the Problem
To correct the "Demo expired" problem you will have to return to your development system.
Make sure the licensed product is properly installed. You can verify this by displaying the About box of the control. This is generally accessed by right-clicking on the control on a form at design-time and selecting the "About..." entry of the popup menu. The About box will display your license number along with other information. If the About box cannot be displayed or it claims you are using a demo version, you will have to reinstall the product.
Once you are sure that you are on a properly licensed system, open all forms with the control on them and make a change to each of our controls to force the properties to be updated. As the forms are saved, the indicators will again be set correctly. (If you miss one control, it will cause the "Demo expired" message in all controls, so please make sure to touch all the controls).
Recompile/rebuild your application and you are ready to distribute it.
Steps to Prevent the Problem
A) Saving forms/dialogs containing our controls while the product is not correctly licensed will prevent you from distributing your applications.
You could lose your license on your development system by testing a SETUP application which installs a run-time version of our control. If the control is installed into the Windows\System(32) directory, this cannot cause the loss of the license information, but if the control is installed elsewhere, the license information will be lost. This is normally the case when downloading CAB files with controls as they are installed and registered elsewhere. Our products typically offer a "Register Design-Time Control" entry in the product's program group of the Start menu. By selecting this entry, the correct control will be re-registered in the Windows Registry, restoring the license information.
Editing/compiling/saving applications on systems that do not have the proper license will cause the "Demo Expired" message. This is typical with build environments, if they do not have the product installed. Build systems are particularly a problem when several developers are working on the same project. Of course, any additional developers who use the product and the build environments must be properly licensed also (for details please see our License Agreement or call (941) 505-8600 x2).
B) When upgrading from one version to the next, do not simply change the CLSID with a text editor. Make sure each control is edited at least once using a development tool (IDE), so properties can be saved correctly (including the "Demo" indicators). This is a common problem for products that are used on HTML/web pages, as these are often edited just in text mode. This does not apply to users of most other development tools, such as VB, .NET, VC++.
C) When several developers are working on the same project and only some have a product license, the developers without product license will routinely cause the "Demo" indicator to be set, as they are using the product without license. You should consider purchasing additional licenses for these users or remove the control OCX from their systems.