Difference between revisions of "LMD VCL - Vista Support"
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{Head-StartRes}} | ||
This topic describes Vista specific features of LMD VCL shared runtime. | This topic describes Vista specific features of LMD VCL shared runtime. | ||
− | == Vista detection == | + | == Themes support in VCL == |
+ | === Delphi / C++ Builder 5 and 6 === | ||
+ | No special support by VCL. To enable themes in your app, you can either add yourself a Manifest resource or add LMDXPRes unit somewhere in your application. | ||
+ | |||
+ | === Delphi 7 to Delphi 2007 === | ||
+ | To enable themes support in Delphi/C++ Builder applications simply add TXPManifest control to your app (alternatively you can still use the LMDXPRes unit). | ||
+ | |||
+ | === Delphi 2007 and better === | ||
+ | Themes support is now enabled by default for all <b>NEW</b> projects. To enable feature for existing applications: From the Project menu, select Options, navigate to the Application page and check "Enable runtime themes". | ||
+ | |||
+ | == Additional Vista support (Delphi 2007 and better) == | ||
+ | Besides default theme support Delphi 2007 provides additional features to make your application more vista like. | ||
+ | |||
+ | === MainFormOnTaskbar Property === | ||
+ | When Aero theme is active, you need to display the application's main form on the taskbar rather than the application window (for Flip3D and transition effects). This behaviour is provided by TApplication.MainFormOnTaskBar property. This property is enabled by default for all <b>NEW</b> projects. To enable this feature for existing applications: From the Project menu, select View Source. Search for the line | ||
+ | <delphi>Application.Initialize;</delphi> and add the following on the next line | ||
+ | <delphi>Application.MainFormOnTaskbar:=True;</delphi> | ||
+ | |||
+ | === UseLatestCommonDialogs Variable === | ||
+ | To support latest new Vista FileOpen/FileSave dialogs you can use the new TFileOpenDialog/TFileSaveDialog controls in the VCL. The major drawback for these control is, that they will not work in environments before Windows Vista. To make sure that your app works on all Windows systems (using the latest possible dialogs), you should use following approaches: | ||
+ | * Set the global variable UseLatestCommonDialogs to true somewhere in your code (default setting). Now Open/Save dialogs use latest available common dialogs (but you can not use advanced features TFileOpenDialog/TFileSaveDialog provide). | ||
+ | * Use the TLMDFileOpenDialog/TLMDFileSaveDialog controls. They offer flexibility of TFileOpenDialog/TFileSaveDialog components, but you can assign standard TOpenDialog/TSaveDialog references with their corresponding settings for non-Vista environments. | ||
+ | <br> | ||
+ | A similar feature is available for the new TLMDTaskDialog component. On Windows Vista the system taskdialog is used, on all other environments the features of the TaskDialog are emulated (so the features of this nice extended message dialog can be used on non-Vista systems as well). | ||
+ | |||
+ | == LMD helpers == | ||
+ | === Vista detection === | ||
LMD SysIn unit provides several system information services. To detect whether current operating system is Windows Vista: | LMD SysIn unit provides several system information services. To detect whether current operating system is Windows Vista: | ||
Line 7: | Line 34: | ||
* Check <b>LMDSIWindowsVistaUp</b> variable whether current operating system is Windows Vista or better. | * Check <b>LMDSIWindowsVistaUp</b> variable whether current operating system is Windows Vista or better. | ||
− | == Aero Glass detection == | + | === Aero Glass detection === |
To check whether Aero Glass is currently enabled and active, use functions and variables of LMDDwmAPI unit. | To check whether Aero Glass is currently enabled and active, use functions and variables of LMDDwmAPI unit. | ||
The global <b>LMDDwmEnabled</b> variable reports whether Aero Glass is enabled. In addition the state of each window can be tested and modified: | The global <b>LMDDwmEnabled</b> variable reports whether Aero Glass is enabled. In addition the state of each window can be tested and modified: | ||
Line 20: | Line 47: | ||
Enables Aero Glass feature for a window specified by Handle parameter. Certainly only applicable, when <b>LMDDwmEnabled</b> returns true. | Enables Aero Glass feature for a window specified by Handle parameter. Certainly only applicable, when <b>LMDDwmEnabled</b> returns true. | ||
− | == Vista Dialogs == | + | === Vista Dialogs === |
− | TLMDTaskDialog | + | * TLMDTaskDialog |
− | + | * TLMDFileOpen | |
− | + | * TLMDFileSaveDialog | |
− | + | === Other Vista Extensions === | |
− | + | * TLMDVistaFormExtension | |
+ | * TLMDFormGlass |
Latest revision as of 16:27, 22 June 2007
<< Back to Getting started or Product Resources page
This topic describes Vista specific features of LMD VCL shared runtime.
Themes support in VCL
Delphi / C++ Builder 5 and 6
No special support by VCL. To enable themes in your app, you can either add yourself a Manifest resource or add LMDXPRes unit somewhere in your application.
Delphi 7 to Delphi 2007
To enable themes support in Delphi/C++ Builder applications simply add TXPManifest control to your app (alternatively you can still use the LMDXPRes unit).
Delphi 2007 and better
Themes support is now enabled by default for all NEW projects. To enable feature for existing applications: From the Project menu, select Options, navigate to the Application page and check "Enable runtime themes".
Additional Vista support (Delphi 2007 and better)
Besides default theme support Delphi 2007 provides additional features to make your application more vista like.
MainFormOnTaskbar Property
When Aero theme is active, you need to display the application's main form on the taskbar rather than the application window (for Flip3D and transition effects). This behaviour is provided by TApplication.MainFormOnTaskBar property. This property is enabled by default for all NEW projects. To enable this feature for existing applications: From the Project menu, select View Source. Search for the line <delphi>Application.Initialize;</delphi> and add the following on the next line <delphi>Application.MainFormOnTaskbar:=True;</delphi>
UseLatestCommonDialogs Variable
To support latest new Vista FileOpen/FileSave dialogs you can use the new TFileOpenDialog/TFileSaveDialog controls in the VCL. The major drawback for these control is, that they will not work in environments before Windows Vista. To make sure that your app works on all Windows systems (using the latest possible dialogs), you should use following approaches:
- Set the global variable UseLatestCommonDialogs to true somewhere in your code (default setting). Now Open/Save dialogs use latest available common dialogs (but you can not use advanced features TFileOpenDialog/TFileSaveDialog provide).
- Use the TLMDFileOpenDialog/TLMDFileSaveDialog controls. They offer flexibility of TFileOpenDialog/TFileSaveDialog components, but you can assign standard TOpenDialog/TSaveDialog references with their corresponding settings for non-Vista environments.
A similar feature is available for the new TLMDTaskDialog component. On Windows Vista the system taskdialog is used, on all other environments the features of the TaskDialog are emulated (so the features of this nice extended message dialog can be used on non-Vista systems as well).
LMD helpers
Vista detection
LMD SysIn unit provides several system information services. To detect whether current operating system is Windows Vista:
- Check LMDSIWindowsVista variable whether current operating system is exactly Windows Vista.
- Check LMDSIWindowsVistaUp variable whether current operating system is Windows Vista or better.
Aero Glass detection
To check whether Aero Glass is currently enabled and active, use functions and variables of LMDDwmAPI unit. The global LMDDwmEnabled variable reports whether Aero Glass is enabled. In addition the state of each window can be tested and modified:
<delphi>function LMDWndIsDwmEnabled(Handle:THandle):Boolean;</delphi> Returns true when Dwm is enabled for a specific window (specified by Handle parameter).
<delphi>function LMDWndDwmDisable(Handle:THandle):Boolean;</delphi> Disables Aero Glass feature for the window specified by Handle parameter.
<delphi>function LMDWndDwmEnable(Handle:THandle):Boolean;</delphi> Enables Aero Glass feature for a window specified by Handle parameter. Certainly only applicable, when LMDDwmEnabled returns true.
Vista Dialogs
- TLMDTaskDialog
- TLMDFileOpen
- TLMDFileSaveDialog
Other Vista Extensions
- TLMDVistaFormExtension
- TLMDFormGlass