Difference between revisions of "LMD VCL - General FAQ"

From LMD
Jump to: navigation, search
Line 59: Line 59:
 
* Paths are not updated: Solution is to add paths manually
 
* Paths are not updated: Solution is to add paths manually
 
* Packages are not seen in Delphi: Add dcl*.bpl packages manually from the Install Packages dialog.
 
* Packages are not seen in Delphi: Add dcl*.bpl packages manually from the Install Packages dialog.
 +
 +
==== Corrupted/screwed Component Palette ====
 +
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher
 +
 +
<i>Answer 1:</i><br>
 +
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).<br>
 +
There are several ways to workaround:<br>
 +
# 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).
 +
<br>
 +
<i>Answer 2:</i><br>
 +
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). <br>
 +
Try these: <br>
 +
 +
# 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. <br>
 +
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors.
 +
<br>
 +
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.

Revision as of 20:01, 20 June 2007

[edit]

<< Back to Overview page

General

CBuilder SpeedUp

<delphi>

  1. include <oleidl.h>

HKEY_CURRECTUSER SaveSettings

  1. 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" (Release 6)

Each time you receive "Entry Point not found" or "Could not find [..]" error, you can be sure that it is caused by a version mix up. I guess somehow you did not uninstall a previous version completely. E.g. if you compiled sourcecode, Delphi places created runtime BPL's automatically into the default BPL output path (can be set 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 (Note: Be sure that you did not include any LMD-Tools units in own packages, otherwise

open these packages, remove LMD-Tools units and recompile them).

    • Use all uninstallers for previous version
    • 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-Tools sourcecode:

  • Use the LMD-Tools 6 source installer
  • After installation check whether paths to LMD-Tools Source files are correctly set. If for any reason not, add them yourself
  • We have extremly simplified source compilation. Load the correct project group (e.g. lmdtools_d6.bpg for Delphi 6). and compile one package after another. Install only Desigtime packages (dcllmd*.bpk). All compiled packages can be found after compilation in the Projects\BPL path of your Delphi version.

Note: Simply ignore errors for RichPack and ShellPack project files, both packages are not included in current release and will be available in the next days.

To install LMD-Tools default packages: Run the correct installer. The only issues which could go wrong are:

  • Paths are not updated: Solution is to add paths manually
  • Packages are not seen in Delphi: Add dcl*.bpl packages manually from the Install Packages dialog.

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:

  1. Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.
  2. 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:

  1. 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)
  2. Start Delphi with the -ns switch
  3. Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards)
  4. 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.
  5. 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).
  6. Get the latest DirectX drivers.
  7. 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.