Difference between revisions of "LMD VCL - General FAQ"
(→"Entry Point not found") |
|||
Line 36: | Line 36: | ||
==== "Entry Point not found" ==== | ==== "Entry Point not found" ==== | ||
− | "Entry Point not found" or "Could not find [..]" | + | If "Entry Point not found" or "Could not find [..]" errors occur during startup of IDE, problem is most likely caused by a version mix up.<br> |
− | (can be | + | Reason: Delphi/C++ Builder still has access to older or different runtime packages (--> multiple variants of same runtime package reside on your system. Especially when older versions reside in \system32 folder, they are preferred against those which reside in \projects\bpl directory). <br> |
+ | If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with lmd[..], so using the filter lmd*.bpl for harddisk search should work. | ||
+ | <br> | ||
+ | Usually this problem occurs when a previous version was not removed completely. E.g. if you compiled sourcecode, Delphi places created runtime BPL's automatically into the default BPL output path (can be specified in Environment Options dialog). Older version may have installed them in System directory - so there is the possible version conflict.<br> | ||
To completely remove an old LMD-Tools version (the hard way): | To completely remove an old LMD-Tools version (the hard way): | ||
− | * Close Delphi (Note: Be sure that you did not include any LMD | + | * Close Delphi / C++ IDE (Note: Be sure that you did not include any LMD VCL units in own packages, otherwise open these packages, remove LMD-Tools units and recompile them). |
− | open these packages, remove LMD-Tools units and recompile them). | + | ** Use all uninstallers for previous packages |
− | ** Use all uninstallers for previous | ||
** Delete all LMD-Tools directoies | ** Delete all LMD-Tools directoies | ||
** Delete all LMD-Tools path settings from Extras|Environment Options|Tab Library | ** Delete all LMD-Tools path settings from Extras|Environment Options|Tab Library | ||
** Now most important point: Search your harddisk (at least in your system directory | ** Now most important point: Search your harddisk (at least in your system directory | ||
− | and the Delphi Projects\BPL path) for LMD BPLs. | + | and the Delphi Projects\BPL path) for LMD BPLs. Use as search string lmd*.bpl for runtime packages. |
− | |||
* Use as search string dcllmd*.bpl for designtime packages. | * Use as search string dcllmd*.bpl for designtime packages. | ||
* Remove them all | * Remove them all | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<br> | <br> | ||
− | To install LMD | + | To install LMD VCL sourcecode: |
− | + | * Use the source installer of your product | |
− | * | + | * After installation check whether paths to LMD VCL source files are correctly set. If for any reason not, add them yourself |
− | * | + | * We have extremly simplified source compilation. Load the correct project group and compile one package after another. Install only designtime packages (dcllmd*.bpk). All compiled packages can be found after compilation in the Projects\BPL path of your IDE version. |
=== [Fatal Error]: Unit XXXX was compiled with a different version of XXXXX === | === [Fatal Error]: Unit XXXX was compiled with a different version of XXXXX === |
Revision as of 21:40, 20 June 2007
<< Back to Overview page
Contents
- 1 General
- 2 Installation
- 3 IDE
- 4 Licensing / Trials
- 4.1 Full version installer reports: 'License information not found'
- 4.2 Where to download free updates? What is the 'Registration Utility'?
- 4.3 I still get trial messages in my apps! How to get rid of them?
- 4.4 I purchased a full or use free SE version, but still get trial messages?!
- 4.5 I own free LMD-Tools or LMD ElPack SE (e.g. from Companion CD). How to upgrade to a full version?
- 5 Programming Techniques
General
CBuilder SpeedUp
<delphi>
- include <oleidl.h>
HKEY_CURRECTUSER SaveSettings
- define NO_WIN32_LEAN_AND_MEAN
</delphi>
NO_WIN32_LEAN_AND_MEAN
When this macro is defined, VCL.H does not define WIN32_LEAN_AND_MEAN. Default: OFF
VCL_FULL
Same as NO_WIN32_LEAN_AND_MEAN (NOTE: This macro is for BCB v1.0 backward compatibility) Default: OFF
INC_VCLDB_HEADERS
When this macro is defined, VCL.H includes the core Database headers of VCL.
(Defining this macro is functionally equivalent to including VCLDB.H) Default: OFF
INC_ALLVCL_HEADERS
When this macro is defined, VCL.H includes all VCL headers. (Defining this macro is functionally equivalent to including VCLMAX.H) Default: OFF
Installation
Installing Source Version (Release 7)
Make sure to install first the CE special packages (DesignPack, BarPack and StoragePack) and at last LMD-Tools Core Package (oldest to latest package). I strongly suggest to install all to the same installation path. Make sure that the source path is available in Library path settings and is in best case the first path mentioned. Then load the
__lmd2003all_d5.bpg
project group.
This project group contains all package files in the order we suggest to install them. Ignore if e.g. dcllmdold.dpk is not found (or CE packages if you did not install them). However the most important point is, that dcllmdshared_d5 is the first package to be compiled. As a rule: lmd*.bpl are runtime packages, dcllmd*.bpl packages are designtime packages. Only for designtime packages press "Install" button.
The compiler will place all new packages into your projects\bpl folder, so I suggest you remove runtime packages from previous installation.
Do not use "Build ALL" command, because this feature is buggy in D5. If any further problems occur please let me know.
Version Mix Up
if Delphi claims that it can't find a file (though DCUs are available and Library Path is set correctly - see Environment Options), there can be only possible cause for the problem: There is a version mix up. For the offending files please check whether a previous version was completely uninstalled, that no parts are compiled into existing packages (e.g. your personal packages, you might have to rebuild the package), that your project was REBUILD (to force the compilation of latest PAS/DCU files). Furthermore the project files may have references to older package files (especially if you use runtime packages, simply check Package settings in Project Options.
"Entry Point not found"
If "Entry Point not found" or "Could not find [..]" errors occur during startup of IDE, problem is most likely caused by a version mix up.
Reason: Delphi/C++ Builder still has access to older or different runtime packages (--> multiple variants of same runtime package reside on your system. Especially when older versions reside in \system32 folder, they are preferred against those which reside in \projects\bpl directory).
If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with lmd[..], so using the filter lmd*.bpl for harddisk search should work.
Usually this problem occurs when a previous version was not removed completely. E.g. if you compiled sourcecode, Delphi places created runtime BPL's automatically into the default BPL output path (can be specified in Environment Options dialog). Older version may have installed them in System directory - so there is the possible version conflict.
To completely remove an old LMD-Tools version (the hard way):
- Close Delphi / C++ IDE (Note: Be sure that you did not include any LMD VCL units in own packages, otherwise open these packages, remove LMD-Tools units and recompile them).
- Use all uninstallers for previous packages
- Delete all LMD-Tools directoies
- Delete all LMD-Tools path settings from Extras|Environment Options|Tab Library
- Now most important point: Search your harddisk (at least in your system directory
and the Delphi Projects\BPL path) for LMD BPLs. Use as search string lmd*.bpl for runtime packages.
- Use as search string dcllmd*.bpl for designtime packages.
- Remove them all
To install LMD VCL sourcecode:
- Use the source installer of your product
- After installation check whether paths to LMD VCL source files are correctly set. If for any reason not, add them yourself
- We have extremly simplified source compilation. Load the correct project group and compile one package after another. Install only designtime packages (dcllmd*.bpk). All compiled packages can be found after compilation in the Projects\BPL path of your IDE version.
[Fatal Error]: Unit XXXX was compiled with a different version of XXXXX
Example
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED
Reason
A previous installation (trial, previous release) was not removed completely. This error message might also occur, when you try to use precompiled LMD VCL packages with Delphi/C++ Builder trials.
Solution
Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read Uninstall section in installation guide.
IDE
Corrupted/screwed Component Palette
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher
Answer 1:
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).
There are several ways to workaround:
- Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.
- If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).
Answer 2:
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse).
Try these:
- Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant)
- Start Delphi with the -ns switch
- Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards)
- Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold.
- reduce the hardware acceleration for the card. (display->properties->settings->advances->performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3).
- Get the latest DirectX drivers.
- After Delphi is started, change the color depth (you can change it right back) of your video card.
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors.
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting.
Help Index files disappear / AV's in CBuilder when starting help
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:
- To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files
- Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).
Licensing / Trials
Full version installer reports: 'License information not found'
Up to LMD-Tools Version 4:
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).
From LMD-Tools Version 4 and LMD ElPack 5 on:
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files.
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy).
Where to download free updates? What is the 'Registration Utility'?
Up to LMD-Tools Version 4:
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT.
When you purchased a disk version the required information can be found on a separate piece of paper called "Registration Information". If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.
Up to LMD Elpack 4:
You received with your registration license key and access data to customer areas. If you lost your registration information please email providing your full postal and eMail address to which version was registered to.
From LMD-Tools Version 4/LMD ElPack 5 on:
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group "LMD-Tools") or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.
I still get trial messages in my apps! How to get rid of them?
Problem
You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.
Reason
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).
Solution
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project).
I purchased a full or use free SE version, but still get trial messages?!
- Make sure that you downloaded really a full version from customer area. Trial releases in public download area can never be used as full versions.
- If this is assured: Full versions do NOT contain any trialcode. Make sure you REBUILD (not compile) your project- If you still get trialmessages, then there are still trial parts on your system. In this case uninstall everything again and make sure, that no old runtime BPLs reside on your system. A useful search pattern is *lmd*.bpl. The Installation document in folder provides instructions how to ensure that all files are removed from your system.
\info
I own free LMD-Tools or LMD ElPack SE (e.g. from Companion CD). How to upgrade to a full version?
There is no direct upgrade path from SE versions to full releases, hence no upgrade prices are available.
Programming Techniques
Unknown identifier during compilation
You receive during compilation an "Unknown identifier..." for a procedure/function or type and you are certain that type name is correctly spelled. In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause.
To solve this problem:
- Mark the affected identifier in the code editor
- Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.
- Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.
- If helpfile does not deliver you unit name, search the interface files (or source files) for the typename and find out where the type name is declared. Add this unit to the uses clause of the unit, where the compilation error occured.
- Recompile your project again.
Accessing enumerated values at runtime
You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like[foAutoShow, foAutoCenter])
The Options property of TLMDForm is used as example.
To check for a flag, use code as follows:
<delphi>if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; </delphi>
This line of code tests whether foAutoCenter flag is currently set.
To enable or disable a specific flag, use following code:
<delphi>MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];</delphi> or
<delphi>MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];</delphi>
Duplicate identifier during compilation
Situation
You want to specify a new value to property at runtime. During compilation you receive an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.
Example
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.
<delphi>LMDDBNImage1.Style:=sbKeepAspRatio;</delphi>
You receive "Incompatible Types error ->TLMDBitmapStyle and TLMDOldBitmapStyle.
Solution
Make sure that Compiler uses correct type defintion. To solve problem demonstrated in example:
You probably included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit.
There are two ways to workaround this problem:
- Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj)
- Add lmdgraph before the type name of the corresponding type to ensure that correct type is used, e.g.
<delphi>LMDDBNImage1.Style:=lmdgraph.sbNone;</delphi>