From: <ah...@us...> - 2008-07-18 18:10:07
|
Revision: 11826 http://jvcl.svn.sourceforge.net/jvcl/?rev=11826&view=rev Author: ahuser Date: 2008-07-18 18:09:55 +0000 (Fri, 18 Jul 2008) Log Message: ----------- Moved all .pas files from \common to \run to prevent Jedi.inc errors due to recompilation of the files for every project. Modified Paths: -------------- trunk/jvcl/packages/c5/Jv3rdC5R.cpp trunk/jvcl/packages/c5/Jv3rdC5R.dpk trunk/jvcl/packages/c5/JvCoreC5R.cpp trunk/jvcl/packages/c5/JvCoreC5R.dpk trunk/jvcl/packages/c5/JvDlgsC5R.cpp trunk/jvcl/packages/c5/JvDlgsC5R.dpk trunk/jvcl/packages/c5/JvMMC5R.cpp trunk/jvcl/packages/c5/JvMMC5R.dpk trunk/jvcl/packages/c5/JvSystemC5R.bpk trunk/jvcl/packages/c5/JvSystemC5R.cpp trunk/jvcl/packages/c5/JvSystemC5R.dpk trunk/jvcl/packages/c5std/JvCoreC5R.cpp trunk/jvcl/packages/c5std/JvCoreC5R.dpk trunk/jvcl/packages/c6/Jv3rdC6R.bpk trunk/jvcl/packages/c6/Jv3rdC6R.dpk trunk/jvcl/packages/c6/JvCoreC6R.bpk trunk/jvcl/packages/c6/JvCoreC6R.dpk trunk/jvcl/packages/c6/JvDlgsC6R.bpk trunk/jvcl/packages/c6/JvDlgsC6R.dpk trunk/jvcl/packages/c6/JvMMC6R.bpk trunk/jvcl/packages/c6/JvMMC6R.dpk trunk/jvcl/packages/c6/JvSystemC6R.bpk trunk/jvcl/packages/c6/JvSystemC6R.dpk trunk/jvcl/packages/c6per/JvCoreC6R.bpk trunk/jvcl/packages/c6per/JvCoreC6R.dpk trunk/jvcl/packages/d10/Jv3rdD10R.dpk trunk/jvcl/packages/d10/JvCoreD10R.dpk trunk/jvcl/packages/d10/JvDlgsD10R.dpk trunk/jvcl/packages/d10/JvMMD10R.dpk trunk/jvcl/packages/d10/JvSystemD10R.dpk trunk/jvcl/packages/d10per/JvCoreD10R.dpk trunk/jvcl/packages/d11/Jv3rdD11R.dpk trunk/jvcl/packages/d11/JvCoreD11R.dpk trunk/jvcl/packages/d11/JvDlgsD11R.dpk trunk/jvcl/packages/d11/JvMMD11R.dpk trunk/jvcl/packages/d11/JvSystemD11R.dpk trunk/jvcl/packages/d5/Jv3rdD5R.dpk trunk/jvcl/packages/d5/JvCoreD5R.dpk trunk/jvcl/packages/d5/JvDlgsD5R.dpk trunk/jvcl/packages/d5/JvMMD5R.dpk trunk/jvcl/packages/d5/JvSystemD5R.dpk trunk/jvcl/packages/d5std/JvCoreD5R.dpk trunk/jvcl/packages/d6/Jv3rdD6R.dpk trunk/jvcl/packages/d6/JvCoreD6R.dpk trunk/jvcl/packages/d6/JvDlgsD6R.dpk trunk/jvcl/packages/d6/JvMMD6R.dpk trunk/jvcl/packages/d6/JvSystemD6R.dpk trunk/jvcl/packages/d6per/JvCoreD6R.dpk trunk/jvcl/packages/d7/Jv3rdD7R.dpk trunk/jvcl/packages/d7/JvCoreD7R.dpk trunk/jvcl/packages/d7/JvDlgsD7R.dpk trunk/jvcl/packages/d7/JvMMD7R.dpk trunk/jvcl/packages/d7/JvSystemD7R.dpk trunk/jvcl/packages/d7per/JvCoreD7R.dpk trunk/jvcl/packages/d9/Jv3rdD9R.dpk trunk/jvcl/packages/d9/JvCoreD9R.dpk trunk/jvcl/packages/d9/JvDlgsD9R.dpk trunk/jvcl/packages/d9/JvMMD9R.dpk trunk/jvcl/packages/d9/JvSystemD9R.dpk trunk/jvcl/packages/d9per/JvCoreD9R.dpk trunk/jvcl/packages/xml/Jv3rd-R.xml trunk/jvcl/packages/xml/JvCore-R.xml trunk/jvcl/packages/xml/JvDlgs-R.xml trunk/jvcl/packages/xml/JvMM-R.xml trunk/jvcl/packages/xml/JvSystem-R.xml Added Paths: ----------- trunk/jvcl/run/Cfg.pas trunk/jvcl/run/CfgMgr32.pas trunk/jvcl/run/DBT.pas trunk/jvcl/run/Hid.pas trunk/jvcl/run/HidToken.pas trunk/jvcl/run/HidUsage.pas trunk/jvcl/run/JvConsts.pas trunk/jvcl/run/JvGnugettext.pas trunk/jvcl/run/JvGnugettextD5.pas trunk/jvcl/run/JvWin32.pas trunk/jvcl/run/ModuleLoader.pas trunk/jvcl/run/ObjSel.pas trunk/jvcl/run/Ras32.pas trunk/jvcl/run/SetupApi.pas trunk/jvcl/run/VFW.pas trunk/jvcl/run/WinConvTypes.pas trunk/jvcl/run/Winamp.pas Removed Paths: ------------- trunk/jvcl/common/Cfg.pas trunk/jvcl/common/CfgMgr32.pas trunk/jvcl/common/DBT.pas trunk/jvcl/common/Hid.pas trunk/jvcl/common/HidToken.pas trunk/jvcl/common/HidUsage.pas trunk/jvcl/common/JvConsts.pas trunk/jvcl/common/JvGnugettext.pas trunk/jvcl/common/JvGnugettextD5.pas trunk/jvcl/common/JvWin32.pas trunk/jvcl/common/ModuleLoader.pas trunk/jvcl/common/ObjSel.pas trunk/jvcl/common/Ras32.pas trunk/jvcl/common/SetupApi.pas trunk/jvcl/common/VFW.pas trunk/jvcl/common/WinConvTypes.pas trunk/jvcl/common/Winamp.pas Deleted: trunk/jvcl/common/Cfg.pas =================================================================== --- trunk/jvcl/common/Cfg.pas 2008-07-18 18:05:43 UTC (rev 11825) +++ trunk/jvcl/common/Cfg.pas 2008-07-18 18:09:55 UTC (rev 11826) @@ -1,351 +0,0 @@ -{******************************************************************} -{ } -{ Borland Delphi Runtime Library } -{ Config Manager API interface unit } -{ } -{ Portions created by Microsoft are } -{ Copyright (c) Microsoft Corporation. All rights reserved. } -{ } -{ The original file is: cfg.h, released August 2001. } -{ The original Pascal code is: Cfg.pas, released 5 Nov 2004. } -{ The initial developer of the Pascal code is Robert Marquardt } -{ (robert_marquardt att gmx dott de) } -{ } -{ Portions created by Robert Marquardt are } -{ Copyright (C) 2004 Robert Marquardt. } -{ } -{ Contributor(s): } -{ } -{ Obtained through: } -{ Joint Endeavour of Delphi Innovators (Project JEDI) } -{ } -{ You may retrieve the latest version of this file at the Project } -{ JEDI home page, located at http://delphi-jedi.org } -{ } -{ The contents of this file are used with permission, subject to } -{ the Mozilla Public License Version 1.1 (the "License"); you may } -{ not use this file except in compliance with the License. You may } -{ obtain a copy of the License at } -{ http://www.mozilla.org/MPL/MPL-1.1.html } -{ } -{ Software distributed under the License is distributed on an } -{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or } -{ implied. See the License for the specific language governing } -{ rights and limitations under the License. } -{ } -{******************************************************************} - -unit Cfg; - -interface - -uses - Windows; - -{$WEAKPACKAGEUNIT ON} - -{$HPPEMIT '#include "cfg.h"'} - -// -// The following definitions are also used by kernel mode code to -// set up the registry. -// -// -// VetoType used in -// CM_Disable_DevNode -// CM_Uninstall_DevNode -// CM_Query_And_Remove_SubTree -// -const - PNP_VetoTypeUnknown = 0; // Name is unspecified - {$EXTERNALSYM PNP_VetoTypeUnknown} - PNP_VetoLegacyDevice = 1; // Name is an Instance Path - {$EXTERNALSYM PNP_VetoLegacyDevice} - PNP_VetoPendingClose = 2; // Name is an Instance Path - {$EXTERNALSYM PNP_VetoPendingClose} - PNP_VetoWindowsApp = 3; // Name is a Module - {$EXTERNALSYM PNP_VetoWindowsApp} - PNP_VetoWindowsService = 4; // Name is a Service - {$EXTERNALSYM PNP_VetoWindowsService} - PNP_VetoOutstandingOpen = 5; // Name is an Instance Path - {$EXTERNALSYM PNP_VetoOutstandingOpen} - PNP_VetoDevice = 6; // Name is an Instance Path - {$EXTERNALSYM PNP_VetoDevice} - PNP_VetoDriver = 7; // Name is a Driver Service Name - {$EXTERNALSYM PNP_VetoDriver} - PNP_VetoIllegalDeviceRequest = 8; // Name is an Instance Path - {$EXTERNALSYM PNP_VetoIllegalDeviceRequest} - PNP_VetoInsufficientPower = 9; // Name is unspecified - {$EXTERNALSYM PNP_VetoInsufficientPower} - PNP_VetoNonDisableable = 10; // Name is an Instance Path - {$EXTERNALSYM PNP_VetoNonDisableable} - PNP_VetoLegacyDriver = 11; // Name is a Service - {$EXTERNALSYM PNP_VetoLegacyDriver} - PNP_VetoInsufficientRights = 12; // Name is unspecified - {$EXTERNALSYM PNP_VetoInsufficientRights} -type - PPNP_VETO_TYPE = ^PNP_VETO_TYPE; - {$EXTERNALSYM PPNP_VETO_TYPE} - PNP_VETO_TYPE = DWORD; - {$EXTERNALSYM PNP_VETO_TYPE} - -const - // - // DevInst problem values, returned by call to CM_Get_DevInst_Status - // - CM_PROB_NOT_CONFIGURED = $00000001; // no config for device - {$EXTERNALSYM CM_PROB_NOT_CONFIGURED} - CM_PROB_DEVLOADER_FAILED = $00000002; // service load failed - {$EXTERNALSYM CM_PROB_DEVLOADER_FAILED} - CM_PROB_OUT_OF_MEMORY = $00000003; // out of memory - {$EXTERNALSYM CM_PROB_OUT_OF_MEMORY} - CM_PROB_ENTRY_IS_WRONG_TYPE = $00000004; // - {$EXTERNALSYM CM_PROB_ENTRY_IS_WRONG_TYPE} - CM_PROB_LACKED_ARBITRATOR = $00000005; // - {$EXTERNALSYM CM_PROB_LACKED_ARBITRATOR} - CM_PROB_BOOT_CONFIG_CONFLICT = $00000006; // boot config conflict - {$EXTERNALSYM CM_PROB_BOOT_CONFIG_CONFLICT} - CM_PROB_FAILED_FILTER = $00000007; // - {$EXTERNALSYM CM_PROB_FAILED_FILTER} - CM_PROB_DEVLOADER_NOT_FOUND = $00000008; // Devloader not found - {$EXTERNALSYM CM_PROB_DEVLOADER_NOT_FOUND} - CM_PROB_INVALID_DATA = $00000009; // - {$EXTERNALSYM CM_PROB_INVALID_DATA} - CM_PROB_FAILED_START = $0000000A; // - {$EXTERNALSYM CM_PROB_FAILED_START} - CM_PROB_LIAR = $0000000B; // - {$EXTERNALSYM CM_PROB_LIAR} - CM_PROB_NORMAL_CONFLICT = $0000000C; // config conflict - {$EXTERNALSYM CM_PROB_NORMAL_CONFLICT} - CM_PROB_NOT_VERIFIED = $0000000D; // - {$EXTERNALSYM CM_PROB_NOT_VERIFIED} - CM_PROB_NEED_RESTART = $0000000E; // requires restart - {$EXTERNALSYM CM_PROB_NEED_RESTART} - CM_PROB_REENUMERATION = $0000000F; // - {$EXTERNALSYM CM_PROB_REENUMERATION} - CM_PROB_PARTIAL_LOG_CONF = $00000010; // - {$EXTERNALSYM CM_PROB_PARTIAL_LOG_CONF} - CM_PROB_UNKNOWN_RESOURCE = $00000011; // unknown res type - {$EXTERNALSYM CM_PROB_UNKNOWN_RESOURCE} - CM_PROB_REINSTALL = $00000012; // - {$EXTERNALSYM CM_PROB_REINSTALL} - CM_PROB_REGISTRY = $00000013; // - {$EXTERNALSYM CM_PROB_REGISTRY} - CM_PROB_VXDLDR = $00000014; // WINDOWS 95 ONLY - {$EXTERNALSYM CM_PROB_VXDLDR} - CM_PROB_WILL_BE_REMOVED = $00000015; // devinst will remove - {$EXTERNALSYM CM_PROB_WILL_BE_REMOVED} - CM_PROB_DISABLED = $00000016; // devinst is disabled - {$EXTERNALSYM CM_PROB_DISABLED} - CM_PROB_DEVLOADER_NOT_READY = $00000017; // Devloader not ready - {$EXTERNALSYM CM_PROB_DEVLOADER_NOT_READY} - CM_PROB_DEVICE_NOT_THERE = $00000018; // device doesn't exist - {$EXTERNALSYM CM_PROB_DEVICE_NOT_THERE} - CM_PROB_MOVED = $00000019; // - {$EXTERNALSYM CM_PROB_MOVED} - CM_PROB_TOO_EARLY = $0000001A; // - {$EXTERNALSYM CM_PROB_TOO_EARLY} - CM_PROB_NO_VALID_LOG_CONF = $0000001B; // no valid log config - {$EXTERNALSYM CM_PROB_NO_VALID_LOG_CONF} - CM_PROB_FAILED_INSTALL = $0000001C; // install failed - {$EXTERNALSYM CM_PROB_FAILED_INSTALL} - CM_PROB_HARDWARE_DISABLED = $0000001D; // device disabled - {$EXTERNALSYM CM_PROB_HARDWARE_DISABLED} - CM_PROB_CANT_SHARE_IRQ = $0000001E; // can't share IRQ - {$EXTERNALSYM CM_PROB_CANT_SHARE_IRQ} - CM_PROB_FAILED_ADD = $0000001F; // driver failed add - {$EXTERNALSYM CM_PROB_FAILED_ADD} - CM_PROB_DISABLED_SERVICE = $00000020; // service's Start = 4 - {$EXTERNALSYM CM_PROB_DISABLED_SERVICE} - CM_PROB_TRANSLATION_FAILED = $00000021; // resource translation failed - {$EXTERNALSYM CM_PROB_TRANSLATION_FAILED} - CM_PROB_NO_SOFTCONFIG = $00000022; // no soft config - {$EXTERNALSYM CM_PROB_NO_SOFTCONFIG} - CM_PROB_BIOS_TABLE = $00000023; // device missing in BIOS table - {$EXTERNALSYM CM_PROB_BIOS_TABLE} - CM_PROB_IRQ_TRANSLATION_FAILED = $00000024; // IRQ translator failed - {$EXTERNALSYM CM_PROB_IRQ_TRANSLATION_FAILED} - CM_PROB_FAILED_DRIVER_ENTRY = $00000025; // DriverEntry() failed. - {$EXTERNALSYM CM_PROB_FAILED_DRIVER_ENTRY} - CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD = $00000026; // Driver should have unloaded. - {$EXTERNALSYM CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD} - CM_PROB_DRIVER_FAILED_LOAD = $00000027; // Driver load unsuccessful. - {$EXTERNALSYM CM_PROB_DRIVER_FAILED_LOAD} - CM_PROB_DRIVER_SERVICE_KEY_INVALID = $00000028; // Error accessing driver's service key - {$EXTERNALSYM CM_PROB_DRIVER_SERVICE_KEY_INVALID} - CM_PROB_LEGACY_SERVICE_NO_DEVICES = $00000029; // Loaded legacy service created no devices - {$EXTERNALSYM CM_PROB_LEGACY_SERVICE_NO_DEVICES} - CM_PROB_DUPLICATE_DEVICE = $0000002A; // Two devices were discovered with the same name - {$EXTERNALSYM CM_PROB_DUPLICATE_DEVICE} - CM_PROB_FAILED_POST_START = $0000002B; // The drivers set the device state to failed - {$EXTERNALSYM CM_PROB_FAILED_POST_START} - CM_PROB_HALTED = $0000002C; // This device was failed post start via usermode - {$EXTERNALSYM CM_PROB_HALTED} - CM_PROB_PHANTOM = $0000002D; // The devinst currently exists only in the registry - {$EXTERNALSYM CM_PROB_PHANTOM} - CM_PROB_SYSTEM_SHUTDOWN = $0000002E; // The system is shutting down - {$EXTERNALSYM CM_PROB_SYSTEM_SHUTDOWN} - CM_PROB_HELD_FOR_EJECT = $0000002F; // The device is offline awaiting removal - {$EXTERNALSYM CM_PROB_HELD_FOR_EJECT} - CM_PROB_DRIVER_BLOCKED = $00000030; // One or more drivers is blocked from loading - {$EXTERNALSYM CM_PROB_DRIVER_BLOCKED} - CM_PROB_REGISTRY_TOO_LARGE = $00000031; // System hive has grown too large - {$EXTERNALSYM CM_PROB_REGISTRY_TOO_LARGE} - NUM_CM_PROB = $00000032; - {$EXTERNALSYM NUM_CM_PROB} - - // - // Configuration Manager Global State Flags (returned by CM_Get_Global_State) - // - CM_GLOBAL_STATE_CAN_DO_UI = $00000001; // Can do UI? - {$EXTERNALSYM CM_GLOBAL_STATE_CAN_DO_UI} - CM_GLOBAL_STATE_ON_BIG_STACK = $00000002; // WINDOWS 95 ONLY - {$EXTERNALSYM CM_GLOBAL_STATE_ON_BIG_STACK} - CM_GLOBAL_STATE_SERVICES_AVAILABLE = $00000004; // CM APIs available? - {$EXTERNALSYM CM_GLOBAL_STATE_SERVICES_AVAILABLE} - CM_GLOBAL_STATE_SHUTTING_DOWN = $00000008; // CM shutting down - {$EXTERNALSYM CM_GLOBAL_STATE_SHUTTING_DOWN} - CM_GLOBAL_STATE_DETECTION_PENDING = $00000010; // detection pending - {$EXTERNALSYM CM_GLOBAL_STATE_DETECTION_PENDING} - - // - // Device Instance status flags, returned by call to CM_Get_DevInst_Status - // - DN_ROOT_ENUMERATED = $00000001; // Was enumerated by ROOT - {$EXTERNALSYM DN_ROOT_ENUMERATED} - DN_DRIVER_LOADED = $00000002; // Has Register_Device_Driver - {$EXTERNALSYM DN_DRIVER_LOADED} - DN_ENUM_LOADED = $00000004; // Has Register_Enumerator - {$EXTERNALSYM DN_ENUM_LOADED} - DN_STARTED = $00000008; // Is currently configured - {$EXTERNALSYM DN_STARTED} - DN_MANUAL = $00000010; // Manually installed - {$EXTERNALSYM DN_MANUAL} - DN_NEED_TO_ENUM = $00000020; // May need reenumeration - {$EXTERNALSYM DN_NEED_TO_ENUM} - DN_NOT_FIRST_TIME = $00000040; // Has received a config - {$EXTERNALSYM DN_NOT_FIRST_TIME} - DN_HARDWARE_ENUM = $00000080; // Enum generates hardware ID - {$EXTERNALSYM DN_HARDWARE_ENUM} - DN_LIAR = $00000100; // Lied about can reconfig once - {$EXTERNALSYM DN_LIAR} - DN_HAS_MARK = $00000200; // Not CM_Create_DevInst lately - {$EXTERNALSYM DN_HAS_MARK} - DN_HAS_PROBLEM = $00000400; // Need device installer - {$EXTERNALSYM DN_HAS_PROBLEM} - DN_FILTERED = $00000800; // Is filtered - {$EXTERNALSYM DN_FILTERED} - DN_MOVED = $00001000; // Has been moved - {$EXTERNALSYM DN_MOVED} - DN_DISABLEABLE = $00002000; // Can be rebalanced - {$EXTERNALSYM DN_DISABLEABLE} - DN_REMOVABLE = $00004000; // Can be removed - {$EXTERNALSYM DN_REMOVABLE} - DN_PRIVATE_PROBLEM = $00008000; // Has a private problem - {$EXTERNALSYM DN_PRIVATE_PROBLEM} - DN_MF_PARENT = $00010000; // Multi function parent - {$EXTERNALSYM DN_MF_PARENT} - DN_MF_CHILD = $00020000; // Multi function child - {$EXTERNALSYM DN_MF_CHILD} - DN_WILL_BE_REMOVED = $00040000; // DevInst is being removed - {$EXTERNALSYM DN_WILL_BE_REMOVED} - - // - // Windows 4 OPK2 Flags - // - DN_NOT_FIRST_TIMEE = $00080000; // S: Has received a config enumerate - {$EXTERNALSYM DN_NOT_FIRST_TIMEE} - DN_STOP_FREE_RES = $00100000; // S: When child is stopped, free resources - {$EXTERNALSYM DN_STOP_FREE_RES} - DN_REBAL_CANDIDATE = $00200000; // S: Don't skip during rebalance - {$EXTERNALSYM DN_REBAL_CANDIDATE} - DN_BAD_PARTIAL = $00400000; // S: This devnode's log_confs do not have same resources - {$EXTERNALSYM DN_BAD_PARTIAL} - DN_NT_ENUMERATOR = $00800000; // S: This devnode's is an NT enumerator - {$EXTERNALSYM DN_NT_ENUMERATOR} - DN_NT_DRIVER = $01000000; // S: This devnode's is an NT driver - {$EXTERNALSYM DN_NT_DRIVER} - // - // Windows 4.1 Flags - // - DN_NEEDS_LOCKING = $02000000; // S: Devnode need lock resume processing - {$EXTERNALSYM DN_NEEDS_LOCKING} - DN_ARM_WAKEUP = $04000000; // S: Devnode can be the wakeup device - {$EXTERNALSYM DN_ARM_WAKEUP} - DN_APM_ENUMERATOR = $08000000; // S: APM aware enumerator - {$EXTERNALSYM DN_APM_ENUMERATOR} - DN_APM_DRIVER = $10000000; // S: APM aware driver - {$EXTERNALSYM DN_APM_DRIVER} - DN_SILENT_INSTALL = $20000000; // S: Silent install - {$EXTERNALSYM DN_SILENT_INSTALL} - DN_NO_SHOW_IN_DM = $40000000; // S: No show in device manager - {$EXTERNALSYM DN_NO_SHOW_IN_DM} - DN_BOOT_LOG_PROB = $80000000; // S: Had a problem during preassignment of boot log conf - {$EXTERNALSYM DN_BOOT_LOG_PROB} - - // - // Windows NT Flags - // - // These are overloaded on top of unused Win 9X flags - // - //DN_LIAR = $00000100; // Lied about can reconfig once - DN_NEED_RESTART = DN_LIAR; // System needs to be restarted for this Devnode to work properly - {$EXTERNALSYM DN_NEED_RESTART} - //DN_NOT_FIRST_TIME = $00000040; // Has Register_Enumerator - DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME; // One or more drivers are blocked from loading for this Devnode - {$EXTERNALSYM DN_DRIVER_BLOCKED} - //DN_MOVED = $00001000; // Has been moved - DN_LEGACY_DRIVER = DN_MOVED; // This device is using a legacy driver - {$EXTERNALSYM DN_LEGACY_DRIVER} - - DN_CHANGEABLE_FLAGS = DWORD(DN_NOT_FIRST_TIME + - DN_HARDWARE_ENUM + DN_HAS_MARK + DN_DISABLEABLE + - DN_REMOVABLE + DN_MF_CHILD + DN_MF_PARENT + - DN_NOT_FIRST_TIMEE + DN_STOP_FREE_RES + DN_REBAL_CANDIDATE + - DN_NT_ENUMERATOR + DN_NT_DRIVER + DN_SILENT_INSTALL + DN_NO_SHOW_IN_DM); - {$EXTERNALSYM DN_CHANGEABLE_FLAGS} - - // - // Logical configuration Priority values - // - // These priority values are used in user-mode calls to CM_Add_Empty_Log_Conf. - // Drivers may also specify priority values for a given IO_RESOURCE_LIST - // structure by including a ConfigData member union as the first - // IO_RESOURCE_DESCRIPTOR in the IO_RESOURCE_LIST. In this case, the descriptor - // type would be CmResourceTypeConfigData. - // - LCPRI_FORCECONFIG = $00000000; // Coming from a forced config - {$EXTERNALSYM LCPRI_FORCECONFIG} - LCPRI_BOOTCONFIG = $00000001; // Coming from a boot config - {$EXTERNALSYM LCPRI_BOOTCONFIG} - LCPRI_DESIRED = $00002000; // Preferable (better performance) - {$EXTERNALSYM LCPRI_DESIRED} - LCPRI_NORMAL = $00003000; // Workable (acceptable performance) - {$EXTERNALSYM LCPRI_NORMAL} - LCPRI_LASTBESTCONFIG = $00003FFF; // CM only--do not use - {$EXTERNALSYM LCPRI_LASTBESTCONFIG} - LCPRI_SUBOPTIMAL = $00005000; // Not desired, but will work - {$EXTERNALSYM LCPRI_SUBOPTIMAL} - LCPRI_LASTSOFTCONFIG = $00007FFF; // CM only--do not use - {$EXTERNALSYM LCPRI_LASTSOFTCONFIG} - LCPRI_RESTART = $00008000; // Need to restart - {$EXTERNALSYM LCPRI_RESTART} - LCPRI_REBOOT = $00009000; // Need to reboot - {$EXTERNALSYM LCPRI_REBOOT} - LCPRI_POWEROFF = $0000A000; // Need to shutdown/power-off - {$EXTERNALSYM LCPRI_POWEROFF} - LCPRI_HARDRECONFIG = $0000C000; // Need to change a jumper - {$EXTERNALSYM LCPRI_HARDRECONFIG} - LCPRI_HARDWIRED = $0000E000; // Cannot be changed - {$EXTERNALSYM LCPRI_HARDWIRED} - LCPRI_IMPOSSIBLE = $0000F000; // Impossible configuration - {$EXTERNALSYM LCPRI_IMPOSSIBLE} - LCPRI_DISABLED = $0000FFFF; // Disabled configuration - {$EXTERNALSYM LCPRI_DISABLED} - MAX_LCPRI = $0000FFFF; // Maximum known LC Priority - {$EXTERNALSYM MAX_LCPRI} - -implementation - -end. - Deleted: trunk/jvcl/common/CfgMgr32.pas =================================================================== --- trunk/jvcl/common/CfgMgr32.pas 2008-07-18 18:05:43 UTC (rev 11825) +++ trunk/jvcl/common/CfgMgr32.pas 2008-07-18 18:09:55 UTC (rev 11826) @@ -1,5034 +0,0 @@ -{******************************************************************} -{ } -{ Borland Delphi Runtime Library } -{ Config Manager API interface unit } -{ } -{ Portions created by Microsoft are } -{ Copyright (c) Microsoft Corporation. All rights reserved. } -{ } -{ The original file is: cfgmgr32.h, released August 2001. } -{ The original Pascal code is: CfgMgr32.pas, released 5 Nov 2004. } -{ The initial developer of the Pascal code is Robert Marquardt } -{ (robert_marquardt att gmx dott de) } -{ } -{ Portions created by Robert Marquardt are } -{ Copyright (C) 2004 Robert Marquardt. } -{ } -{ Contributor(s): } -{ } -{ Obtained through: } -{ Joint Endeavour of Delphi Innovators (Project JEDI) } -{ } -{ You may retrieve the latest version of this file at the Project } -{ JEDI home page, located at http://delphi-jedi.org } -{ } -{ The contents of this file are used with permission, subject to } -{ the Mozilla Public License Version 1.1 (the "License"); you may } -{ not use this file except in compliance with the License. You may } -{ obtain a copy of the License at } -{ http://www.mozilla.org/MPL/MPL-1.1.html } -{ } -{ Software distributed under the License is distributed on an } -{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or } -{ implied. See the License for the specific language governing } -{ rights and limitations under the License. } -{ } -{******************************************************************} - -unit CfgMgr32; - -{$I windowsversion.inc} - -interface - -uses - Windows, - Cfg, WinConvTypes, SetupApi; - -{$WEAKPACKAGEUNIT ON} - -// (rom) this is the switch to change between static and dynamic linking. -// (rom) it is enabled by default here. -// (rom) To disable simply change the '$' to a '.'. -{$DEFINE CFGMGR32_LINKONREQUEST} - -{$HPPEMIT '#include "cfgmgr32.h"'} - -//-------------------------------------------------------------- -// General size definitions -//-------------------------------------------------------------- - -const - MAX_DEVICE_ID_LEN = 200; - {$EXTERNALSYM MAX_DEVICE_ID_LEN} - MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN; - {$EXTERNALSYM MAX_DEVNODE_ID_LEN} - - MAX_GUID_STRING_LEN = 39; // 38 chars + terminator null - {$EXTERNALSYM MAX_GUID_STRING_LEN} - MAX_CLASS_NAME_LEN = 32; - {$EXTERNALSYM MAX_CLASS_NAME_LEN} - MAX_PROFILE_LEN = 80; - {$EXTERNALSYM MAX_PROFILE_LEN} - - MAX_CONFIG_VALUE = 9999; - {$EXTERNALSYM MAX_CONFIG_VALUE} - MAX_INSTANCE_VALUE = 9999; - {$EXTERNALSYM MAX_INSTANCE_VALUE} - - MAX_MEM_REGISTERS = 9; // Win95 compatibility--not applicable to 32-bit ConfigMgr - {$EXTERNALSYM MAX_MEM_REGISTERS} - MAX_IO_PORTS = 20; // Win95 compatibility--not applicable to 32-bit ConfigMgr - {$EXTERNALSYM MAX_IO_PORTS} - MAX_IRQS = 7; // Win95 compatibility--not applicable to 32-bit ConfigMgr - {$EXTERNALSYM MAX_IRQS} - MAX_DMA_CHANNELS = 7; // Win95 compatibility--not applicable to 32-bit ConfigMgr - {$EXTERNALSYM MAX_DMA_CHANNELS} - - DWORD_MAX = $FFFFFFFF; - {$EXTERNALSYM DWORD_MAX} - DWORDLONG_MAX = $FFFFFFFFFFFFFFFF; - {$EXTERNALSYM DWORDLONG_MAX} - - CONFIGMG_VERSION = $0400; - {$EXTERNALSYM CONFIGMG_VERSION} - -type - PDWORDLONG = ^DWORDLONG; - {$EXTERNALSYM PDWORDLONG} - DWORDLONG = Int64; // (rom) no unsigned Int64 available in Delphi - {$EXTERNALSYM DWORDLONG} - -//-------------------------------------------------------------- -// Data types -//-------------------------------------------------------------- - - // - // Standardized Return Value data type - // - RETURN_TYPE = DWORD; - {$EXTERNALSYM RETURN_TYPE} - CONFIGRET = RETURN_TYPE; - {$EXTERNALSYM CONFIGRET} - - // - // Device Instance Handle data type - // - PDEVNODE = ^DEVNODE; - {$EXTERNALSYM PDEVNODE} - DEVNODE = DWORD; - {$EXTERNALSYM DEVNODE} - PDEVINST = ^DEVINST; - {$EXTERNALSYM PDEVINST} - DEVINST = DWORD; - {$EXTERNALSYM DEVINST} - - // - // Device Instance Identifier data type - // The device instance ID specifies the registry path, relative to the - // Enum key , for a device instance. For example: \Root\*PNP0500\0000. - // - DEVNODEID_A = PAnsiChar; // Device ID ANSI name. - {$EXTERNALSYM DEVNODEID_A} - DEVNODEID_W = PWideChar; // Device ID Unicode name. - {$EXTERNALSYM DEVNODEID_W} - DEVINSTID_A = PAnsiChar; // Device ID ANSI name. - {$EXTERNALSYM DEVINSTID_A} - DEVINSTID_W = PWideChar; // Device ID Unicode name. - {$EXTERNALSYM DEVINSTID_W} - {$IFDEF UNICODE} - DEVNODEID = DEVNODEID_W; - DEVINSTID = DEVINSTID_W; - {$ELSE} - DEVNODEID = DEVNODEID_A; - DEVINSTID = DEVINSTID_A; - {$ENDIF UNICODE} - {$EXTERNALSYM DEVNODEID} - {$EXTERNALSYM DEVINSTID} - - // - // Logical Configuration Handle data type - // - LOG_CONF = DWORD_PTR; - {$EXTERNALSYM LOG_CONF} - PLOG_CONF = ^LOG_CONF; - {$EXTERNALSYM PLOG_CONF} - - // - // Resource Descriptor Handle data type - // - RES_DES = DWORD_PTR; - {$EXTERNALSYM RES_DES} - PRES_DES = ^RES_DES; - {$EXTERNALSYM PRES_DES} - - // - // Resource ID data type (may take any of the ResType_* values) - // - RESOURCEID = ULONG; - {$EXTERNALSYM RESOURCEID} - PRESOURCEID = ^RESOURCEID; - {$EXTERNALSYM PRESOURCEID} - - // - // Priority data type (may take any of the LCPRI_* values) - // - PRIORITY = ULONG; - {$EXTERNALSYM PRIORITY} - PPRIORITY = ^PRIORITY; - {$EXTERNALSYM PPRIORITY} - - // - // Range List Handle data type - // - RANGE_LIST = DWORD_PTR; - {$EXTERNALSYM RANGE_LIST} - PRANGE_LIST = ^RANGE_LIST; - {$EXTERNALSYM PRANGE_LIST} - - // - // Range Element Handle data type - // - RANGE_ELEMENT = DWORD_PTR; - {$EXTERNALSYM RANGE_ELEMENT} - PRANGE_ELEMENT = ^RANGE_ELEMENT; - {$EXTERNALSYM PRANGE_ELEMENT} - - // - // Machine Handle data type - // - HMACHINE = THandle; - {$EXTERNALSYM HMACHINE} - PHMACHINE = ^HMACHINE; - {$EXTERNALSYM PHMACHINE} - - // - // Conflict List data types - // - CONFLICT_LIST = ULONG_PTR; - {$EXTERNALSYM CONFLICT_LIST} - PCONFLICT_LIST = ^CONFLICT_LIST; - {$EXTERNALSYM PCONFLICT_LIST} - - PCONFLICT_DETAILS_A = ^CONFLICT_DETAILS_A; - {$EXTERNALSYM PCONFLICT_DETAILS_A} - CONFLICT_DETAILS_A = packed record - CD_ulSize: ULONG; // size of structure, ie: sizeof(CONFLICT_DETAILS) - CD_ulMask: ULONG; // indicates what information is required/valid - CD_dnDevInst: DEVINST; // filled with DevInst of conflicting device if CM_CDMASK_DEVINST set - CD_rdResDes: RES_DES; // filled with a ResDes of conflict if CM_CDMASK_RESDES set - CD_ulFlags: ULONG; // various flags regarding conflict - CD_szDescription: array [0..MAX_PATH-1] of Char; // description of conflicting device - end; - {$EXTERNALSYM CONFLICT_DETAILS_A} - - PCONFLICT_DETAILS_W = ^CONFLICT_DETAILS_W; - {$EXTERNALSYM PCONFLICT_DETAILS_W} - CONFLICT_DETAILS_W = packed record - CD_ulSize: ULONG; // size of structure, ie: sizeof(CONFLICT_DETAILS) - CD_ulMask: ULONG; // indicates what information is required/valid - CD_dnDevInst: DEVINST; // filled with DevInst of conflicting device if CM_CDMASK_DEVINST set - CD_rdResDes: RES_DES; // filled with a ResDes of conflict if CM_CDMASK_RESDES set - CD_ulFlags: ULONG; // various flags regarding conflict - CD_szDescription: array [0..MAX_PATH-1] of WideChar; // description of conflicting device - end; - {$EXTERNALSYM CONFLICT_DETAILS_W} - - {$IFDEF UNICODE} - CONFLICT_DETAILS = CONFLICT_DETAILS_W; - PCONFLICT_DETAILS = PCONFLICT_DETAILS_W; - {$ELSE} - CONFLICT_DETAILS = CONFLICT_DETAILS_A; - PCONFLICT_DETAILS = PCONFLICT_DETAILS_A; - {$ENDIF UNICODE} - {$EXTERNALSYM CONFLICT_DETAILS} - {$EXTERNALSYM PCONFLICT_DETAILS} - -const - CM_CDMASK_DEVINST = $00000001; // mask to retrieve CD_dnDevInst attribute for conflict - {$EXTERNALSYM CM_CDMASK_DEVINST} - CM_CDMASK_RESDES = $00000002; // mask to retrieve CD_rdResDes attribute for conflict - {$EXTERNALSYM CM_CDMASK_RESDES} - CM_CDMASK_FLAGS = $00000004; // mask to retrieve CD_ulFlags attribute for conflict - {$EXTERNALSYM CM_CDMASK_FLAGS} - CM_CDMASK_DESCRIPTION = $00000008; // mask to retrieve CD_szDescription attribute for conflict - {$EXTERNALSYM CM_CDMASK_DESCRIPTION} - CM_CDMASK_VALID = $0000000F; // valid bits - {$EXTERNALSYM CM_CDMASK_VALID} - - CM_CDFLAGS_DRIVER = $00000001; // CD_ulFlags: CD_szDescription reports back legacy driver name - {$EXTERNALSYM CM_CDFLAGS_DRIVER} - CM_CDFLAGS_ROOT_OWNED = $00000002; // CD_ulFlags: Root owned device - {$EXTERNALSYM CM_CDFLAGS_ROOT_OWNED} - CM_CDFLAGS_RESERVED = $00000004; // CD_ulFlags: Specified range is not available for use - {$EXTERNALSYM CM_CDFLAGS_RESERVED} - -type - REGDISPOSITION = ^ULONG; - {$EXTERNALSYM REGDISPOSITION} - -//-------------------------------------------------------------- -// Memory resource -//-------------------------------------------------------------- - -const - // - // Define the attribute flags for memory ranges. Each bit flag is - // identified by a constant bitmask. Following the bitmask definition, - // are the two possible values. - // - mMD_MemoryType = $1; // Bitmask, whether memory is writable - {$EXTERNALSYM mMD_MemoryType} - fMD_MemoryType = mMD_MemoryType; // compatibility - {$EXTERNALSYM fMD_MemoryType} - fMD_ROM = $0; // Memory range is read-only - {$EXTERNALSYM fMD_ROM} - fMD_RAM = $1; // Memory range may be written to - {$EXTERNALSYM fMD_RAM} - - mMD_32_24 = $2; // Bitmask, memory is 24 or 32-bit - {$EXTERNALSYM mMD_32_24} - fMD_32_24 = mMD_32_24; // compatibility - {$EXTERNALSYM fMD_32_24} - fMD_24 = $0; // Memory range is 24-bit - {$EXTERNALSYM fMD_24} - fMD_32 = $2; // Memory range is 32-bit - {$EXTERNALSYM fMD_32} - - mMD_Prefetchable = $4; // Bitmask,whether memory prefetchable - {$EXTERNALSYM mMD_Prefetchable} - fMD_Prefetchable = mMD_Prefetchable; // compatibility - {$EXTERNALSYM fMD_Prefetchable} - fMD_Pref = mMD_Prefetchable; // compatibility - {$EXTERNALSYM fMD_Pref} - fMD_PrefetchDisallowed = $0; // Memory range is not prefetchable - {$EXTERNALSYM fMD_PrefetchDisallowed} - fMD_PrefetchAllowed = $4; // Memory range is prefetchable - {$EXTERNALSYM fMD_PrefetchAllowed} - - mMD_Readable = $8; // Bitmask,whether memory is readable - {$EXTERNALSYM mMD_Readable} - fMD_Readable = mMD_Readable; // compatibility - {$EXTERNALSYM fMD_Readable} - fMD_ReadAllowed = $0; // Memory range is readable - {$EXTERNALSYM fMD_ReadAllowed} - fMD_ReadDisallowed = $8; // Memory range is write-only - {$EXTERNALSYM fMD_ReadDisallowed} - - mMD_CombinedWrite = $10; // Bitmask,supports write-behind - {$EXTERNALSYM mMD_CombinedWrite} - fMD_CombinedWrite = mMD_CombinedWrite; // compatibility - {$EXTERNALSYM fMD_CombinedWrite} - fMD_CombinedWriteDisallowed = $0; // no combined-write caching - {$EXTERNALSYM fMD_CombinedWriteDisallowed} - fMD_CombinedWriteAllowed = $10; // supports combined-write caching - {$EXTERNALSYM fMD_CombinedWriteAllowed} - - mMD_Cacheable = $20; // Bitmask,whether memory is cacheable - {$EXTERNALSYM mMD_Cacheable} - fMD_NonCacheable = $0; // Memory range is non-cacheable - {$EXTERNALSYM fMD_NonCacheable} - fMD_Cacheable = $20; // Memory range is cacheable - {$EXTERNALSYM fMD_Cacheable} - -type - // - // MEM_RANGE Structure - // - PMEM_RANGE = ^MEM_RANGE; - {$EXTERNALSYM PMEM_RANGE} - MEM_RANGE = packed record - MR_Align: DWORDLONG; // specifies mask for base alignment - MR_nBytes: ULONG; // specifies number of bytes required - MR_Min: DWORDLONG; // specifies minimum address of the range - MR_Max: DWORDLONG; // specifies maximum address of the range - MR_Flags: DWORD; // specifies flags describing range (fMD flags) - MR_Reserved: DWORD; - end; - {$EXTERNALSYM MEM_RANGE} - - // - // MEM_DES structure - // - PMEM_DES = ^MEM_DES; - {$EXTERNALSYM PMEM_DES} - MEM_DES = packed record - MD_Count: DWORD; // number of MEM_RANGE structs in MEM_RESOURCE - MD_Type: DWORD; // size (in bytes) of MEM_RANGE (MType_Range) - MD_Alloc_Base: DWORDLONG; // base memory address of range allocated - MD_Alloc_End: DWORDLONG; // end of allocated range - MD_Flags: DWORD; // flags describing allocated range (fMD flags) - MD_Reserved: DWORD; - end; - {$EXTERNALSYM MEM_DES} - - // - // MEM_RESOURCE structure - // - PMEM_RESOURCE = ^MEM_RESOURCE; - {$EXTERNALSYM PMEM_RESOURCE} - MEM_RESOURCE = packed record - MEM_Header: MEM_DES; // info about memory range list - MEM_Data: array [0..0] of MEM_RANGE; // list of memory ranges - end; - {$EXTERNALSYM MEM_RESOURCE} - -const - // - // Define the size of each range structure - // - MType_Range = SizeOf(MEM_RANGE); - {$EXTERNALSYM MType_Range} - -//-------------------------------------------------------------- -// I/O Port Resource -//-------------------------------------------------------------- - -const - // - // Define the attribute flags for port resources. Each bit flag is - // identified by a constant bitmask. Following the bitmask definition, - // are the two possible values. - // - fIOD_PortType = $1; // Bitmask,whether port is IO or memory - {$EXTERNALSYM fIOD_PortType} - fIOD_Memory = $0; // Port resource really uses memory - {$EXTERNALSYM fIOD_Memory} - fIOD_IO = $1; // Port resource uses IO ports - {$EXTERNALSYM fIOD_IO} - fIOD_DECODE = $00fc; // decode flags - {$EXTERNALSYM fIOD_DECODE} - fIOD_10_BIT_DECODE = $0004; - {$EXTERNALSYM fIOD_10_BIT_DECODE} - fIOD_12_BIT_DECODE = $0008; - {$EXTERNALSYM fIOD_12_BIT_DECODE} - fIOD_16_BIT_DECODE = $0010; - {$EXTERNALSYM fIOD_16_BIT_DECODE} - fIOD_POSITIVE_DECODE = $0020; - {$EXTERNALSYM fIOD_POSITIVE_DECODE} - fIOD_PASSIVE_DECODE = $0040; - {$EXTERNALSYM fIOD_PASSIVE_DECODE} - fIOD_WINDOW_DECODE = $0080; - {$EXTERNALSYM fIOD_WINDOW_DECODE} - - // - // these are for compatiblity - // - IO_ALIAS_10_BIT_DECODE = $00000004; - {$EXTERNALSYM IO_ALIAS_10_BIT_DECODE} - IO_ALIAS_12_BIT_DECODE = $00000010; - {$EXTERNALSYM IO_ALIAS_12_BIT_DECODE} - IO_ALIAS_16_BIT_DECODE = $00000000; - {$EXTERNALSYM IO_ALIAS_16_BIT_DECODE} - IO_ALIAS_POSITIVE_DECODE = $000000FF; - {$EXTERNALSYM IO_ALIAS_POSITIVE_DECODE} - -type - // - // IO_RANGE structure - // - PIO_RANGE = ^IO_RANGE; - {$EXTERNALSYM PIO_RANGE} - IO_RANGE = packed record - IOR_Align: DWORDLONG; // mask for base alignment - IOR_nPorts: DWORD; // number of ports - IOR_Min: DWORDLONG; // minimum port address - IOR_Max: DWORDLONG; // maximum port address - IOR_RangeFlags: DWORD; // flags for this port range - IOR_Alias: DWORDLONG; // multiplier that generates aliases for port(s) - end; - {$EXTERNALSYM IO_RANGE} - - // - // IO_DES structure - // - PIO_DES = ^IO_DES; - {$EXTERNALSYM PIO_DES} - IO_DES = packed record - IOD_Count: DWORD; // number of IO_RANGE structs in IO_RESOURCE - IOD_Type: DWORD; // size (in bytes) of IO_RANGE (IOType_Range) - IOD_Alloc_Base: DWORDLONG; // base of allocated port range - IOD_Alloc_End: DWORDLONG; // end of allocated port range - IOD_DesFlags: DWORD; // flags relating to allocated port range - end; - {$EXTERNALSYM IO_DES} - - // - // IO_RESOURCE - // - PIO_RESOURCE = ^IO_RESOURCE; - {$EXTERNALSYM PIO_RESOURCE} - IO_RESOURCE = packed record - IO_Header: IO_DES; // info about I/O port range list - IO_Data: array [0..0] of IO_RANGE; // list of I/O port ranges - end; - {$EXTERNALSYM IO_RESOURCE} - -const - IOA_Local = $ff; - {$EXTERNALSYM IOA_Local} - - // - // Define the size of each range structure - // - IOType_Range = SizeOf(IO_RANGE); - {$EXTERNALSYM IOType_Range} - -//-------------------------------------------------------------- -// DMA Resource -//-------------------------------------------------------------- - -const - // - // Define the attribute flags for a DMA resource range. Each bit flag is - // identified with a constant bitmask. Following the bitmask definition - // are the possible values. - // - mDD_Width = $3; // Bitmask, width of the DMA channel: - {$EXTERNALSYM mDD_Width} - fDD_BYTE = $0; // 8-bit DMA channel - {$EXTERNALSYM fDD_BYTE} - fDD_WORD = $1; // 16-bit DMA channel - {$EXTERNALSYM fDD_WORD} - fDD_DWORD = $2; // 32-bit DMA channel - {$EXTERNALSYM fDD_DWORD} - fDD_BYTE_AND_WORD = $3; // 8-bit and 16-bit DMA channel - {$EXTERNALSYM fDD_BYTE_AND_WORD} - - mDD_BusMaster = $4; // Bitmask, whether bus mastering is supported - {$EXTERNALSYM mDD_BusMaster} - fDD_NoBusMaster = $0; // no bus mastering - {$EXTERNALSYM fDD_NoBusMaster} - fDD_BusMaster = $4; // bus mastering - {$EXTERNALSYM fDD_BusMaster} - - mDD_Type = $18; // Bitmask, specifies type of DMA - {$EXTERNALSYM mDD_Type} - fDD_TypeStandard = $00; // standard DMA - {$EXTERNALSYM fDD_TypeStandard} - fDD_TypeA = $08; // Type-A DMA - {$EXTERNALSYM fDD_TypeA} - fDD_TypeB = $10; // Type-B DMA - {$EXTERNALSYM fDD_TypeB} - fDD_TypeF = $18; // Type-F DMA - {$EXTERNALSYM fDD_TypeF} - -type - // - // DMA_RANGE structure - // - PDMA_RANGE = ^DMA_RANGE; - {$EXTERNALSYM PDMA_RANGE} - DMA_RANGE = packed record - DR_Min: ULONG; // minimum DMA port in the range - DR_Max: ULONG; // maximum DMA port in the range - DR_Flags: ULONG; // flags describing the range (fDD flags) - end; - {$EXTERNALSYM DMA_RANGE} - - // - // DMA_DES structure - // - PDMA_DES = ^DMA_DES; - {$EXTERNALSYM PDMA_DES} - DMA_DES = packed record - DD_Count: DWORD; // number of DMA_RANGE structs in DMA_RESOURCE - DD_Type: DWORD; // size (in bytes) of DMA_RANGE struct (DType_Range) - DD_Flags: DWORD; // Flags describing DMA channel (fDD flags) - DD_Alloc_Chan: ULONG; // Specifies the DMA channel that was allocated - end; - {$EXTERNALSYM DMA_DES} - - // - // DMA_RESOURCE - // - PDMA_RESOURCE = ^DMA_RESOURCE; - {$EXTERNALSYM PDMA_RESOURCE} - DMA_RESOURCE = packed record - DMA_Header: DMA_DES; // info about DMA channel range list - DMA_Data: array [0..0] of DMA_RANGE; // list of DMA ranges - end; - {$EXTERNALSYM DMA_RESOURCE} - -const - // - // Define the size of each range structure - // - DType_Range = SizeOf(DMA_RANGE); - {$EXTERNALSYM DType_Range} - -//-------------------------------------------------------------- -// Interrupt Resource -//-------------------------------------------------------------- - -const - // - // Define the attribute flags for an interrupt resource range. Each bit flag - // is identified with a constant bitmask. Following the bitmask definition - // are the possible values. - // - mIRQD_Share = $1; // Bitmask,whether the IRQ may be shared: - {$EXTERNALSYM mIRQD_Share} - fIRQD_Exclusive = $0; // The IRQ may not be shared - {$EXTERNALSYM fIRQD_Exclusive} - fIRQD_Share = $1; // The IRQ may be shared - {$EXTERNALSYM fIRQD_Share} - - fIRQD_Share_Bit = 0; // compatibility - {$EXTERNALSYM fIRQD_Share_Bit} - fIRQD_Level_Bit = 1; // compatibility - {$EXTERNALSYM fIRQD_Level_Bit} - - // - // ** NOTE: 16-bit ConfigMgr uses fIRQD_Level_Bit being set to indicate that the - // ** interrupt is _level-sensitive_. For 32-bit ConfigMgr, if this bit is set, - // ** then the interrupt is _edge-sensitive_. - // - mIRQD_Edge_Level = $2; // Bitmask,whether edge or level triggered: - {$EXTERNALSYM mIRQD_Edge_Level} - fIRQD_Level = $0; // The IRQ is level-sensitive - {$EXTERNALSYM fIRQD_Level} - fIRQD_Edge = $2; // The IRQ is edge-sensitive - {$EXTERNALSYM fIRQD_Edge} - -type - // - // IRQ_RANGE - // - PIRQ_RANGE = ^IRQ_RANGE; - {$EXTERNALSYM PIRQ_RANGE} - IRQ_RANGE = packed record - IRQR_Min: ULONG; // minimum IRQ in the range - IRQR_Max: ULONG; // maximum IRQ in the range - IRQR_Flags: ULONG; // flags describing the range (fIRQD flags) - end; - {$EXTERNALSYM IRQ_RANGE} - - // - // IRQ_DES structure - // - PIRQ_DES_32 = ^IRQ_DES_32; - {$EXTERNALSYM PIRQ_DES_32} - IRQ_DES_32 = packed record - IRQD_Count: DWORD; // number of IRQ_RANGE structs in IRQ_RESOURCE - IRQD_Type: DWORD; // size (in bytes) of IRQ_RANGE (IRQType_Range) - IRQD_Flags: DWORD; // flags describing the IRQ (fIRQD flags) - IRQD_Alloc_Num: ULONG; // specifies the IRQ that was allocated - IRQD_Affinity: ULONG32; - end; - {$EXTERNALSYM IRQ_DES_32} - - PIRQ_DES_64 = ^IRQ_DES_64; - {$EXTERNALSYM PIRQ_DES_64} - IRQ_DES_64 = packed record - IRQD_Count: DWORD; // number of IRQ_RANGE structs in IRQ_RESOURCE - IRQD_Type: DWORD; // size (in bytes) of IRQ_RANGE (IRQType_Range) - IRQD_Flags: DWORD; // flags describing the IRQ (fIRQD flags) - IRQD_Alloc_Num: ULONG; // specifies the IRQ that was allocated - IRQD_Affinity: ULONG64; - end; - {$EXTERNALSYM IRQ_DES_64} - - {$IFDEF _WIN64} - IRQ_DES = IRQ_DES_64; - PIRQ_DES = PIRQ_DES_64; - {$ELSE} - IRQ_DES = IRQ_DES_32; - PIRQ_DES = PIRQ_DES_32; - {$ENDIF UNICODE} - {$EXTERNALSYM IRQ_DES} - {$EXTERNALSYM PIRQ_DES} - - // - // IRQ_RESOURCE structure - // - PIRQ_RESOURCE_32 = ^IRQ_RESOURCE_32; - {$EXTERNALSYM PIRQ_RESOURCE_32} - IRQ_RESOURCE_32 = packed record - IRQ_Header: IRQ_DES_32; // info about IRQ range list - IRQ_Data: array [0..0] of IRQ_RANGE; // list of IRQ ranges - end; - {$EXTERNALSYM IRQ_RESOURCE_32} - - PIRQ_RESOURCE_64 = ^IRQ_RESOURCE_64; - {$EXTERNALSYM PIRQ_RESOURCE_64} - IRQ_RESOURCE_64 = packed record - IRQ_Header: IRQ_DES_64; // info about IRQ range list - IRQ_Data: array [0..0] of IRQ_RANGE; // list of IRQ ranges - end; - {$EXTERNALSYM IRQ_RESOURCE_64} - - {$IFDEF _WIN64} - IRQ_RESOURCE = IRQ_RESOURCE_64; - PIRQ_RESOURCE = PIRQ_RESOURCE_64; - {$ELSE} - IRQ_RESOURCE = IRQ_RESOURCE_32; - PIRQ_RESOURCE = PIRQ_RESOURCE_32; - {$ENDIF _WIN64} - {$EXTERNALSYM IRQ_RESOURCE} - {$EXTERNALSYM PIRQ_RESOURCE} - -const - // - // Define the size of each range structure - // - IRQType_Range = SizeOf(IRQ_RANGE); - {$EXTERNALSYM IRQType_Range} - - // - // Flags for resource descriptor APIs indicating the width of certain - // variable-size resource descriptor structure fields, where applicable. - // - CM_RESDES_WIDTH_DEFAULT = $00000000; // 32 or 64-bit IRQ_RESOURCE / IRQ_DES, based on client - {$EXTERNALSYM CM_RESDES_WIDTH_DEFAULT} - CM_RESDES_WIDTH_32 = $00000001; // 32-bit IRQ_RESOURCE / IRQ_DES - {$EXTERNALSYM CM_RESDES_WIDTH_32} - CM_RESDES_WIDTH_64 = $00000002; // 64-bit IRQ_RESOURCE / IRQ_DES - {$EXTERNALSYM CM_RESDES_WIDTH_64} - CM_RESDES_WIDTH_BITS = $00000003; - {$EXTERNALSYM CM_RESDES_WIDTH_BITS} - -//-------------------------------------------------------------- -// Device Private Resource -//-------------------------------------------------------------- - -type - // - // DEVICEPRIVATE_RANGE structure - // - PDEVPRIVATE_RANGE = ^DEVPRIVATE_RANGE; - {$EXTERNALSYM PDEVPRIVATE_RANGE} - DEVPRIVATE_RANGE = packed record - PR_Data1: DWORD; // mask for base alignment - PR_Data2: DWORD; // number of bytes - PR_Data3: DWORD; // minimum address - end; - {$EXTERNALSYM DEVPRIVATE_RANGE} - - // - // DEVPRIVATE_DES structure - // - PDEVPRIVATE_DES = ^DEVPRIVATE_DES; - {$EXTERNALSYM PDEVPRIVATE_DES} - DEVPRIVATE_DES = packed record - PD_Count: DWORD; - PD_Type: DWORD; - PD_Data1: DWORD; - PD_Data2: DWORD; - PD_Data3: DWORD; - PD_Flags: DWORD; - end; - {$EXTERNALSYM DEVPRIVATE_DES} - - // - // DEVPRIVATE_RESOURCE - // - PDEVPRIVATE_RESOURCE = ^DEVPRIVATE_RESOURCE; - {$EXTERNALSYM PDEVPRIVATE_RESOURCE} - DEVPRIVATE_RESOURCE = packed record - PRV_Header: DEVPRIVATE_DES; - PRV_Data: array [0..0] of DEVPRIVATE_RANGE; - end; - {$EXTERNALSYM DEVPRIVATE_RESOURCE} - -const - // - // Define the size of each range structure - // - PType_Range = SizeOf(DEVPRIVATE_RANGE); - {$EXTERNALSYM PType_Range} - -//-------------------------------------------------------------- -// Class-Specific Resource -//-------------------------------------------------------------- - -type - PCS_DES = ^CS_DES; - {$EXTERNALSYM PCS_DES} - CS_DES = packed record - CSD_SignatureLength: DWORD; - CSD_LegacyDataOffset: DWORD; - CSD_LegacyDataSize: DWORD; - CSD_Flags: DWORD; - CSD_ClassGuid: TGUID; - CSD_Signature: array [0..0] of Byte; - end; - {$EXTERNALSYM CS_DES} - - PCS_RESOURCE = ^CS_RESOURCE; - {$EXTERNALSYM PCS_RESOURCE} - CS_RESOURCE = packed record - CS_Header: CS_DES; - end; - {$EXTERNALSYM CS_RESOURCE} - -//-------------------------------------------------------------- -// PC Card Configuration Resource -//-------------------------------------------------------------- - -const - // - // Define the attribute flags for a PC Card configuration resource descriptor. - // Each bit flag is identified with a constant bitmask. Following the bitmask - // definition are the possible values. - // - mPCD_IO_8_16 = $1; // Bitmask, whether I/O is 8 or 16 bits - {$EXTERNALSYM mPCD_IO_8_16} - fPCD_IO_8 = $0; // I/O is 8-bit - {$EXTERNALSYM fPCD_IO_8} - fPCD_IO_16 = $1; // I/O is 16-bit - {$EXTERNALSYM fPCD_IO_16} - mPCD_MEM_8_16 = $2; // Bitmask, whether MEM is 8 or 16 bits - {$EXTERNALSYM mPCD_MEM_8_16} - fPCD_MEM_8 = $0; // MEM is 8-bit - {$EXTERNALSYM fPCD_MEM_8} - fPCD_MEM_16 = $2; // MEM is 16-bit - {$EXTERNALSYM fPCD_MEM_16} - mPCD_MEM_A_C = $C; // Bitmask, whether MEMx is Attribute or Common - {$EXTERNALSYM mPCD_MEM_A_C} - fPCD_MEM1_A = $4; // MEM1 is Attribute - {$EXTERNALSYM fPCD_MEM1_A} - fPCD_MEM2_A = $8; // MEM2 is Attribute - {$EXTERNALSYM fPCD_MEM2_A} - fPCD_IO_ZW_8 = $10; // zero wait on 8 bit I/O - {$EXTERNALSYM fPCD_IO_ZW_8} - fPCD_IO_SRC_16 = $20; // iosrc 16 - {$EXTERNALSYM fPCD_IO_SRC_16} - fPCD_IO_WS_16 = $40; // wait states on 16 bit io - {$EXTERNALSYM fPCD_IO_WS_16} - mPCD_MEM_WS = $300; // Bitmask, for additional wait states on memory windows - {$EXTERNALSYM mPCD_MEM_WS} - fPCD_MEM_WS_ONE = $100; // 1 wait state - {$EXTERNALSYM fPCD_MEM_WS_ONE} - fPCD_MEM_WS_TWO = $200; // 2 wait states - {$EXTERNALSYM fPCD_MEM_WS_TWO} - fPCD_MEM_WS_THREE = $300; // 3 wait states - {$EXTERNALSYM fPCD_MEM_WS_THREE} - - fPCD_MEM_A = $4; // MEM is Attribute - {$EXTERNALSYM fPCD_MEM_A} - - fPCD_ATTRIBUTES_PER_WINDOW = $8000; - {$EXTERNALSYM fPCD_ATTRIBUTES_PER_WINDOW} - - fPCD_IO1_16 = $00010000; // I/O window 1 is 16-bit - {$EXTERNALSYM fPCD_IO1_16} - fPCD_IO1_ZW_8 = $00020000; // I/O window 1 zero wait on 8 bit I/O - {$EXTERNALSYM fPCD_IO1_ZW_8} - fPCD_IO1_SRC_16 = $00040000; // I/O window 1 iosrc 16 - {$EXTERNALSYM fPCD_IO1_SRC_16} - fPCD_IO1_WS_16 = $00080000; // I/O window 1 wait states on 16 bit io - {$EXTERNALSYM fPCD_IO1_WS_16} - - fPCD_IO2_16 = $00100000; // I/O window 2 is 16-bit - {$EXTERNALSYM fPCD_IO2_16} - fPCD_IO2_ZW_8 = $00200000; // I/O window 2 zero wait on 8 bit I/O - {$EXTERNALSYM fPCD_IO2_ZW_8} - fPCD_IO2_SRC_16 = $00400000; // I/O window 2 iosrc 16 - {$EXTERNALSYM fPCD_IO2_SRC_16} - fPCD_IO2_WS_16 = $00800000; // I/O window 2 wait states on 16 bit io - {$EXTERNALSYM fPCD_IO2_WS_16} - - mPCD_MEM1_WS = $03000000; // MEM window 1 Bitmask, for additional wait states on memory windows - {$EXTERNALSYM mPCD_MEM1_WS} - fPCD_MEM1_WS_ONE = $01000000; // MEM window 1, 1 wait state - {$EXTERNALSYM fPCD_MEM1_WS_ONE} - fPCD_MEM1_WS_TWO = $02000000; // MEM window 1, 2 wait states - {$EXTERNALSYM fPCD_MEM1_WS_TWO} - fPCD_MEM1_WS_THREE = $03000000; // MEM window 1, 3 wait states - {$EXTERNALSYM fPCD_MEM1_WS_THREE} - fPCD_MEM1_16 = $04000000; // MEM window 1 is 16-bit - {$EXTERNALSYM fPCD_MEM1_16} - - mPCD_MEM2_WS = $30000000; // MEM window 2 Bitmask, for additional wait states on memory windows - {$EXTERNALSYM mPCD_MEM2_WS} - fPCD_MEM2_WS_ONE = $10000000; // MEM window 2, 1 wait state - {$EXTERNALSYM fPCD_MEM2_WS_ONE} - fPCD_MEM2_WS_TWO = $20000000; // MEM window 2, 2 wait states - {$EXTERNALSYM fPCD_MEM2_WS_TWO} - fPCD_MEM2_WS_THREE = $30000000; // MEM window 2, 3 wait states - {$EXTERNALSYM fPCD_MEM2_WS_THREE} - fPCD_MEM2_16 = $40000000; // MEM window 2 is 16-bit - {$EXTERNALSYM fPCD_MEM2_16} - - PCD_MAX_MEMORY = 2; - {$EXTERNALSYM PCD_MAX_MEMORY} - PCD_MAX_IO = 2; - {$EXTERNALSYM PCD_MAX_IO} - -type - PPCCARD_DES = ^PCCARD_DES; - {$EXTERNALSYM PPCCARD_DES} - PCCARD_DES = packed record - PCD_Count: DWORD; - PCD_Type: DWORD; - PCD_Flags: DWORD; - PCD_ConfigIndex: Byte; - PCD_Reserved: array [0..2] of Byte; - PCD_MemoryCardBase1: DWORD; - PCD_MemoryCardBase2: DWORD; - PCD_MemoryCardBase: array [0..PCD_MAX_MEMORY-1] of DWORD; // will soon be removed - PCD_MemoryFlags: array [0..PCD_MAX_MEMORY-1] of WORD; // will soon be removed - PCD_IoFlags: array [0..PCD_MAX_IO-1] of Byte; // will soon be removed - end; - {$EXTERNALSYM PCCARD_DES} - - PPCCARD_RESOURCE = ^PCCARD_RESOURCE; - {$EXTERNALSYM PPCCARD_RESOURCE} - PCCARD_RESOURCE = packed record - PcCard_Header: PCCARD_DES; - end; - {$EXTERNALSYM PCCARD_RESOURCE} - -//-------------------------------------------------------------- -// MF (multifunction) PCCard Configuration Resource -//-------------------------------------------------------------- - -const - mPMF_AUDIO_ENABLE = $8; // Bitmask, whether audio is enabled or not - {$EXTERNALSYM mPMF_AUDIO_ENABLE} - fPMF_AUDIO_ENABLE = $8; // Audio is enabled - {$EXTERNALSYM fPMF_AUDIO_ENABLE} - -type - PMFCARD_DES = ^MFCARD_DES; - {$EXTERNALSYM PMFCARD_DES} - MFCARD_DES = packed record - PMF_Count: DWORD; - PMF_Type: DWORD; - PMF_Flags: DWORD; - PMF_ConfigOptions: Byte; - PMF_IoResourceIndex: Byte; - PMF_Reserved: array [0..1] of Byte; - PMF_ConfigRegisterBase: DWORD; - end; - {$EXTERNALSYM MFCARD_DES} - - PMFCARD_RESOURCE = ^MFCARD_RESOURCE; - {$EXTERNALSYM PMFCARD_RESOURCE} - MFCARD_RESOURCE = packed record - MfCard_Header: MFCARD_DES; - end; - {$EXTERNALSYM MFCARD_RESOURCE} - -//-------------------------------------------------------------- -// Bus Number Resource -//-------------------------------------------------------------- - -// -// Define the attribute flags for a Bus Number resource descriptor. -// Each bit flag is identified with a constant bitmask. Following the bitmask -// definition are the possible values. -// -// Currently unused. -// - - // - // BUSNUMBER_RANGE - // - PBUSNUMBER_RANGE = ^BUSNUMBER_RANGE; - {$EXTERNALSYM PBUSNUMBER_RANGE} - BUSNUMBER_RANGE = packed record - BUSR_Min: ULONG; // minimum Bus Number in the range - BUSR_Max: ULONG; // maximum Bus Number in the range - BUSR_nBusNumbers: ULONG; // specifies number of buses required - BUSR_Flags: ULONG; // flags describing the range (currently unused) - end; - {$EXTERNALSYM BUSNUMBER_RANGE} - - // - // BUSNUMBER_DES structure - // - PBUSNUMBER_DES = ^BUSNUMBER_DES; - {$EXTERNALSYM PBUSNUMBER_DES} - BUSNUMBER_DES = packed record - BUSD_Count: DWORD; // number of BUSNUMBER_RANGE structs in BUSNUMBER_RESOURCE - BUSD_Type: DWORD; // size (in bytes) of BUSNUMBER_RANGE (BusNumberType_Range) - BUSD_Flags: DWORD; // flags describing the range (currently unused) - BUSD_Alloc_Base: ULONG; // specifies the first Bus that was allocated - BUSD_Alloc_End: ULONG; // specifies the last Bus number that was allocated - end; - {$EXTERNALSYM BUSNUMBER_DES} - - // - // BUSNUMBER_RESOURCE structure - // - PBUSNUMBER_RESOURCE = ^BUSNUMBER_RESOURCE; - {$EXTERNALSYM PBUSNUMBER_RESOURCE} - BUSNUMBER_RESOURCE = packed record - BusNumber_Header: BUSNUMBER_DES; // info about Bus Number range list - BusNumber_Data: array [0..0] of BUSNUMBER_RANGE; // list of Bus Number ranges - end; - {$EXTERNALSYM BUSNUMBER_RESOURCE} - -const - // - // Define the size of each range structure - // - BusNumberType_Range = SizeOf(BUSNUMBER_RANGE); - {$EXTERNALSYM BusNumberType_Range} - -//-------------------------------------------------------------- -// Hardware Profile Information -//-------------------------------------------------------------- - -const - // - // Define flags relating to hardware profiles - // - CM_HWPI_NOT_DOCKABLE = $00000000; // machine is not dockable - {$EXTERNALSYM CM_HWPI_NOT_DOCKABLE} - CM_HWPI_UNDOCKED = $00000001; // hw profile for docked config - {$EXTERNALSYM CM_HWPI_UNDOCKED} - CM_HWPI_DOCKED = $00000002; // hw profile for undocked config - {$EXTERNALSYM CM_HWPI_DOCKED} - -type - // - // HWPROFILEINFO structure - // - PHWPROFILEINFO_A = ^HWPROFILEINFO_A; - {$EXTERNALSYM PHWPROFILEINFO_A} - HWPROFILEINFO_A = packed record - HWPI_ulHWProfile: ULONG; // handle of hw profile - HWPI_szFriendlyName: array [0..MAX_PROFILE_LEN-1] of Char; // friendly name of hw profile - HWPI_dwFlags: DWORD; // profile flags (CM_HWPI_*) - end; - {$EXTERNALSYM HWPROFILEINFO_A} - - PHWPROFILEINFO_W = ^HWPROFILEINFO_W; - {$EXTERNALSYM PHWPROFILEINFO_W} - HWPROFILEINFO_W = packed record - HWPI_ulHWProfile: ULONG; // handle of hw profile - HWPI_szFriendlyName: array [0..MAX_PROFILE_LEN-1] of Char; // friendly name of hw profile - HWPI_dwFlags: DWORD; // profile flags (CM_HWPI_*) - end; - {$EXTERNALSYM HWPROFILEINFO_W} - - {$IFDEF UNICODE} - HWPROFILEINFO = HWPROFILEINFO_W; - PHWPROFILEINFO = PHWPROFILEINFO_W; - {$ELSE} - HWPROFILEINFO = HWPROFILEINFO_A; - PHWPROFILEINFO = PHWPROFILEINFO_A; - {$ENDIF UNICODE} - {$EXTERNALSYM HWPROFILEINFO} - {$EXTERNALSYM PHWPROFILEINFO} - -//-------------------------------------------------------------- -// Miscellaneous -//-------------------------------------------------------------- - -const - // - // Resource types - // - ResType_All = $00000000; // Return all resource types - {$EXTERNALSYM ResType_All} - ResType_None = $00000000; // Arbitration always succeeded - {$EXTERNALSYM ResType_None} - ResType_Mem = $00000001; // Physical address resource - {$EXTERNALSYM ResType_Mem} - ResType_IO = $00000002; // Physical I/O address resource - {$EXTERNALSYM ResType_IO} - ResType_DMA = $00000003; // DMA channels resource - {$EXTERNALSYM ResType_DMA} - ResType_IRQ = $00000004; // IRQ resource - {$EXTERNALSYM ResType_IRQ} - ResType_DoNotUse = $00000005; // Used as spacer to sync subsequent ResTypes w/NT - {$EXTERNALSYM ResType_DoNotUse} - ResType_BusNumber = $00000006; // bus number resource - {$EXTERNALSYM ResType_BusNumber} - ResType_MAX = $00000006; // Maximum known (arbitrated) ResType - {$EXTERNALSYM ResType_MAX} - ResType_Ignored_Bit = $00008000; // Ignore this resource - {$EXTERNALSYM ResType_Ignored_Bit} - ResType_ClassSpecific = $0000FFFF; // class-specific resource - {$EXTERNALSYM ResType_ClassSpecific} - ResType_Reserved = $00008000; // reserved for internal use - {$EXTERNALSYM ResType_Reserved} - ResType_DevicePrivate = $00008001; // device private data - {$EXTERNALSYM ResType_DevicePrivate} - ResType_PcCardConfig = $00008002; // PC Card configuration data - {$EXTERNALSYM ResType_PcCardConfig} - ResType_MfCardConfig = $00008003; // MF Card configuration data - {$EXTERNALSYM ResType_MfCardConfig} - - // - // Flags specifying options for ranges that conflict with ranges already in - // the range list (CM_Add_Range) - // - CM_ADD_RANGE_ADDIFCONFLICT = $00000000; // merg with conflicting range - {$EXTERNALSYM CM_ADD_RANGE_ADDIFCONFLICT} - CM_ADD_RANGE_DONOTADDIFCONFLICT = $00000001; // error if range conflicts - {$EXTERNALSYM CM_ADD_RANGE_DONOTADDIFCONFLICT} - CM_ADD_RANGE_BITS = $00000001; - {$EXTERNALSYM CM_ADD_RANGE_BITS} - - // - // Logical Config Flags (specified in call to CM_Get_First_Log_Conf - // - BASIC_LOG_CONF = $00000000; // Specifies the req list. - {$EXTERNALSYM BASIC_LOG_CONF} - FILTERED_LOG_CONF = $00000001; // Specifies the filtered req list. - {$EXTERNALSYM FILTERED_LOG_CONF} - ALLOC_LOG_CONF = $00000002; // Specifies the Alloc Element. - {$EXTERNALSYM ALLOC_LOG_CONF} - BOOT_LOG_CONF = $00000003; // Specifies the RM Alloc Element. - {$EXTERNALSYM BOOT_LOG_CONF} - FORCED_LOG_CONF = $00000004; // Specifies the Forced Log Conf - {$EXTERNALSYM FORCED_LOG_CONF} -... [truncated message content] |
From: <ob...@us...> - 2008-07-23 17:35:05
|
Revision: 11830 http://jvcl.svn.sourceforge.net/jvcl/?rev=11830&view=rev Author: obones Date: 2008-07-23 17:34:56 +0000 (Wed, 23 Jul 2008) Log Message: ----------- Mantis 4301: TJvPersistent does not support event properties correctly. Modified Paths: -------------- trunk/jvcl/design/JvCoreReg.pas trunk/jvcl/design/JvDsgnEditors.pas trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas trunk/jvcl/packages/c5/JvCoreC5R.bpk trunk/jvcl/packages/c5/JvCoreC5R.cpp trunk/jvcl/packages/c5/JvCoreC5R.dpk trunk/jvcl/packages/c5std/JvCoreC5R.bpk trunk/jvcl/packages/c5std/JvCoreC5R.cpp trunk/jvcl/packages/c5std/JvCoreC5R.dpk trunk/jvcl/packages/c6/JvCoreC6R.bpk trunk/jvcl/packages/c6/JvCoreC6R.dpk trunk/jvcl/packages/c6per/JvCoreC6R.bpk trunk/jvcl/packages/c6per/JvCoreC6R.dpk trunk/jvcl/packages/d10/JvCoreD10R.dpk trunk/jvcl/packages/d10per/JvCoreD10R.dpk trunk/jvcl/packages/d11/JvCoreD11R.dpk trunk/jvcl/packages/d5/JvCoreD5R.dpk trunk/jvcl/packages/d5std/JvCoreD5R.dpk trunk/jvcl/packages/d6/JvCoreD6R.dpk trunk/jvcl/packages/d6per/JvCoreD6R.dpk trunk/jvcl/packages/d7/JvCoreD7R.dpk trunk/jvcl/packages/d7per/JvCoreD7R.dpk trunk/jvcl/packages/d9/JvCoreD9R.dpk trunk/jvcl/packages/d9per/JvCoreD9R.dpk trunk/jvcl/packages/xml/JvCore-R.xml trunk/jvcl/run/JvButtonPersistent.pas trunk/jvcl/run/JvConsts.pas trunk/jvcl/run/JvDBActionsEngine.pas trunk/jvcl/run/JvDataEmbedded.pas trunk/jvcl/run/JvDynControlEngineDBTools.pas trunk/jvcl/run/JvExControls.pas trunk/jvcl/run/JvLabel.pas trunk/jvcl/run/JvOfficeColorButton.pas trunk/jvcl/run/JvOfficeColorPanel.pas trunk/jvcl/run/JvPanel.pas trunk/jvcl/run/JvParameterList.pas trunk/jvcl/run/JvParameterListParameter.pas trunk/jvcl/run/JvSpeedButton.pas trunk/jvcl/run/JvTipOfDay.pas trunk/jvcl/run/JvTypes.pas trunk/jvcl/run/JvVCL5Utils.pas Added Paths: ----------- trunk/jvcl/run/JvHotTrackPersistent.pas Modified: trunk/jvcl/design/JvCoreReg.pas =================================================================== --- trunk/jvcl/design/JvCoreReg.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/design/JvCoreReg.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -85,9 +85,8 @@ {$IFDEF COMPILER6_UP} RegisterPropertyEditor(TypeInfo(TComponentName), TJvPersistent, 'Name', nil); RegisterPropertyEditor(TypeInfo(Longint), TJvPersistent, 'Tag', nil); - {$ELSE} - RegisterPropertyEditor(TypeInfo(TJvPersistent), nil, '', TJvPersistentProperty); {$ENDIF COMPILER6_UP} + RegisterPropertyEditor(TypeInfo(TJvPersistent),nil, '', TJvPersistentPropertyEditor); if JvOptionRegisterGlobalDesignEditors then begin Modified: trunk/jvcl/design/JvDsgnEditors.pas =================================================================== --- trunk/jvcl/design/JvDsgnEditors.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/design/JvDsgnEditors.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -35,7 +35,7 @@ uses Windows, Forms, Controls, Graphics, ExtCtrls, Dialogs, ExtDlgs, Menus, StdCtrls, ImgList, Tabs, - ImgEdit, DsnConst, + ImgEdit, TypInfo, DsnConst, {$IFDEF COMPILER6_UP} RTLConsts, DesignIntf, DesignEditors, DesignMenus, VCLEditors, FiltEdit, @@ -45,17 +45,56 @@ Classes, SysUtils; type - // Special TClassProperty, that show events along with all other properties - // This is only useful with version 5 and before - {$IFDEF COMPILER5} - TJvPersistentProperty = class(TClassProperty) + // Special TJvPersistent property event editor, that show events along with all other properties + // This is only useful with version 5 and before --created by dejoy + {$IFNDEF COMPILER6_UP} + TGetPropProc = TGetPropEditProc; + + TJvPersistentNestedElementEventProperty = class(TNestedProperty) + private + FParent: TPropertyEditor; + FPropInfo: PPropInfo; + FInstance: TPersistent; + function GetPersistentPropertyName: string; + function GetInstance: TPersistent; + protected + constructor Create(Parent: TPropertyEditor; APropInfo: PPropInfo); reintroduce; + + function AllNamed: Boolean; virtual; + function GetTrimmedEventName: string; + function GetFormMethodName: string; virtual; + property Instance: TPersistent read GetInstance; public - procedure GetProperties(Proc: TGetPropEditProc); override; + function AllEqual: Boolean; override; + procedure Edit; override; function GetAttributes: TPropertyAttributes; override; - function GetEditLimit: Integer; override; + function GetName: string; override; + function GetValue: string; override; + procedure GetValues(Proc: TGetStrProc); override; + procedure SetValue(const AValue: string); override; end; - {$ENDIF COMPILER5} + {$ENDIF COMPILER6_UP} + {$IFDEF COMPILER6_UP} + // Special TJvPersistent property editor, that allow show event properties + // This is useful with version 5 and up --created by dejoy + TJvPersistentPropertyEditor = class(TComponentProperty) + {$ELSE} + TJvPersistentPropertyEditor = class(TClassProperty) + // Special TJvPersistent property editor, that show events along with all other properties + // This is only useful with version 5 and before --created by dejoy + {$ENDIF COMPILER6_UP} + private + FInstance: TPersistent; + protected + function GetInstance: TPersistent; virtual; //d5/d6 + public + procedure Initialize; override; //d5/d6 + procedure GetProperties(Proc: TGetPropProc); override; //d5 + function GetValue: string; override; //d5/d6 + property Instance: TPersistent read GetInstance; + end; + TJvHintProperty = class(TStringProperty) public function GetAttributes: TPropertyAttributes; override; @@ -224,7 +263,7 @@ implementation uses - TypInfo, Math, FileCtrl, Consts, + Math, FileCtrl, Consts, Registry, Dlgs, JvDateTimeForm, JvTypes, JvStringsForm, JvDsgnConsts, JvConsts; @@ -280,7 +319,286 @@ else Result := 0; end; - + +{$IFNDEF COMPILER6_UP} + +procedure JvPersistentEventProperty_GetProperties(APropertyEditor: TPropertyEditor; + AInstance: TPersistent; Proc: TGetPropProc); +var + APropList: TPropList; + I, ACount : Integer; +begin + if AInstance = nil then + Exit; + ACount := GetPropList(AInstance.ClassInfo, [tkMethod], @APropList); + for I := 0 to ACount - 1 do + Proc(TJvPersistentNestedElementEventProperty.Create(APropertyEditor, APropList[I])); +end; + +//=== { TJvPersistentNestedElementEventProperty } ================================================ + +function TJvPersistentNestedElementEventProperty.AllEqual: Boolean; +var + I: Integer; + V, T: TMethod; +begin + Result := False; + if PropCount > 1 then + begin + V := GetMethodValue; + for I := 1 to PropCount - 1 do + begin + T := GetMethodValueAt(I); + if (T.Code <> V.Code) or (T.Data <> V.Data) then Exit; + end; + end; + Result := True; +end; + +function TJvPersistentNestedElementEventProperty.AllNamed: Boolean; +var + I: Integer; +begin + Result := True; + for I := 0 to PropCount - 1 do + if GetComponent(I).GetNamePath = '' then + begin + Result := False; + Break; + end; +end; + +function TJvPersistentNestedElementEventProperty.GetPersistentPropertyName: string; +begin + Result := ''; + if FParent <> nil then + Result := FParent.GetName + Result; +end; + +function TJvPersistentNestedElementEventProperty.GetInstance: TPersistent; +begin + if not Assigned(FInstance) then + begin + if FParent is TJvPersistentPropertyEditor then + FInstance := TJvPersistentPropertyEditor(FParent).Instance; + end; + Result := FInstance; +end; + +constructor TJvPersistentNestedElementEventProperty.Create(Parent: TPropertyEditor; + APropInfo: PPropInfo); +begin + inherited Create(Parent); + FPropInfo := APropInfo; + FParent := Parent; +end; + +procedure TJvPersistentNestedElementEventProperty.Edit; +var + FormMethodName: string; +begin + FormMethodName := GetValue; + if (FormMethodName = '') or + Designer.MethodFromAncestor(GetMethodValue) then + begin + if FormMethodName = '' then + FormMethodName := GetFormMethodName; + if FormMethodName = '' then + raise EPropertyError.Create(SCannotCreateName); + SetValue(FormMethodName); + end; + Designer.ShowMethod(FormMethodName); +end; + +function TJvPersistentNestedElementEventProperty.GetAttributes: TPropertyAttributes; +begin + Result := [paMultiSelect, paValueList, paSortList, paRevertable]; +end; + +function TJvPersistentNestedElementEventProperty.GetFormMethodName: string; +var + I: Integer; +begin + if GetComponent(0) = Designer.GetRoot then + begin + Result := Designer.GetRootClassName; + if (Result <> '') and (Result[1] = 'T') then + Delete(Result, 1, 1); + end + else + begin + Result := Designer.GetObjectName(GetComponent(0)); + + for I := Length(Result) downto 1 do + if Result[I] in ['.','[',']','-','>'] then + Delete(Result, I, 1); + end; + if Result = '' then + raise EPropertyError.CreateRes(@SCannotCreateName); + + Result := Result + GetPersistentPropertyName + GetTrimmedEventName; +end; + +function TJvPersistentNestedElementEventProperty.GetName: string; +begin + Result := FPropInfo.Name; +end; + +function TJvPersistentNestedElementEventProperty.GetTrimmedEventName: string; +begin + Result := GetName; + if (Length(Result) >= 2) and + (Result[1] in ['O', 'o']) and (Result[2] in ['N', 'n']) then + Delete(Result,1,2); +end; + +function TJvPersistentNestedElementEventProperty.GetValue: string; +begin + Result := Designer.GetMethodName(GetMethodProp(Instance, FPropInfo)); +end; + +procedure TJvPersistentNestedElementEventProperty.GetValues(Proc: TGetStrProc); +begin + Designer.GetMethods(GetTypeData(FPropInfo.PropType^), Proc); +end; + +procedure TJvPersistentNestedElementEventProperty.SetValue(const AValue: string); + + procedure CheckChainCall(const MethodName: string; Method: TMethod); + var + Persistent: TPersistent; + Component: TComponent; + InstanceMethod: string; + Instance: TComponent; + begin + Persistent := GetComponent(0); + if Persistent is TComponent then + begin + Component := TComponent(Persistent); + if (Component.Name <> '') and (Method.Data <> Designer.GetRoot) and + (TObject(Method.Data) is TComponent) then + begin + Instance := TComponent(Method.Data); + InstanceMethod := Instance.MethodName(Method.Code); + if InstanceMethod <> '' then + Designer.ChainCall(MethodName, Instance.Name, InstanceMethod, + GetTypeData(GetPropType)); + end; + end; + end; +var + NewMethod: Boolean; + CurValue: string; + OldMethod: TMethod; +begin + CurValue:= GetValue; + if (CurValue <> '') and (AValue <> '') and ((CompareText(CurValue, AValue) = 0) or + not Designer.MethodExists(AValue)) and not Designer.MethodFromAncestor(GetMethodValue) then + Designer.RenameMethod(CurValue, AValue) + else + begin + NewMethod := (AValue <> '') and not Designer.MethodExists(AValue); + OldMethod := GetMethodValue; + SetMethodProp(Instance, FPropInfo, + Designer.CreateMethod(AValue, GetTypeData(FPropInfo.PropType^))); + if NewMethod then + begin + if (PropCount = 1) and (OldMethod.Data <> nil) and (OldMethod.Code <> nil) then + CheckChainCall(AValue, OldMethod); + Designer.ShowMethod(AValue); + end; + Designer.Modified; + end; +end; +//=== { TJvPersistentNestedElementEventProperty } ================================================ +{$ENDIF COMPILER6_UP} + +//=== { TJvPersistentPropertyEditor } ================================================ + +function TJvPersistentPropertyEditor.GetInstance: TPersistent; +var + LInstance: TPersistent; + LPersistentPropertyName: string; +begin + if not Assigned(FInstance) then + begin + LInstance := GetComponent(0); + LPersistentPropertyName := GetName; + if IsPublishedProp(LInstance, LPersistentPropertyName) then + begin + {$IFDEF COMPILER6_UP} + FInstance := TPersistent(GetObjectProp(LInstance, LPersistentPropertyName)); + {$ELSE} + FInstance := TPersistent(GetOrdProp(LInstance, LPersistentPropertyName)); + {$ENDIF COMPILER6_UP} + end; + end; + Result := FInstance; +end; + +procedure TJvPersistentPropertyEditor.GetProperties(Proc: TGetPropProc); +{$IFNDEF COMPILER6_UP} +var + I: Integer; + Components: TDesignerSelectionList; +{$ENDIF COMPILER6_UP} +begin +{$IFNDEF COMPILER6_UP} + //Process show all Properties with event + Components := TDesignerSelectionList.Create; + try + for I := 0 to PropCount - 1 do + Components.Add(TComponent(GetOrdValueAt(I))); + GetComponentProperties(Components, tkProperties, Designer, Proc); + finally + Components.Free; + end; + + //Process show event Properties + JvPersistentEventProperty_GetProperties(Self, Instance, Proc); +{$ELSE} + inherited; +{$ENDIF COMPILER6_UP} +end; + + //Set property name in property editor procedure "Initialize" dynamically, + //Do't set property name in property constructor Create,that will raise a + //SDuplicateName error if + //you have more then one TJvPersistent property in a component. + //Like this 'A component named xx already exists' +procedure TJvPersistentPropertyEditor.Initialize; +var + LInstance: TPersistent; + LPersistentPropertyName: string; +begin + inherited Initialize; + LInstance := Instance; + LPersistentPropertyName := GetName; + if LInstance is TComponent then + begin + if (TComponent(LInstance).Name = '') and + (TComponent(LInstance).Name <> LPersistentPropertyName) then + begin + TComponent(LInstance).Name := LPersistentPropertyName; + end; + end else + if LInstance is TJvPersistent then + begin + if (TJvPersistent(LInstance).Name = '') and + (TJvPersistent(LInstance).Name <> LPersistentPropertyName) then + begin + TJvPersistent(LInstance).Name := LPersistentPropertyName; + end; + end; +end; + +function TJvPersistentPropertyEditor.GetValue:string; +begin + FmtStr(Result, '(%s)', [GetPropType^.Name]); +end; +//=== { TJvPersistentPropertyEditor } ================================================ + + //=== { TJvFilenameProperty } ================================================ procedure TJvFilenameProperty.Edit; @@ -994,39 +1312,6 @@ inherited SetValue(Value); end; -//=== { TJvPersistentProperty } ============================================== - -{$IFDEF COMPILER5} - -function TJvPersistentProperty.GetAttributes: TPropertyAttributes; -begin - Result := [paMultiSelect, paSubProperties, paReadOnly]; -end; - -function TJvPersistentProperty.GetEditLimit: Integer; -begin - Result := 127; -end; - -procedure TJvPersistentProperty.GetProperties(Proc: TGetPropEditProc); -var - I: Integer; - J: Integer; - JvPersistents: TDesignerSelectionList; -begin - JvPersistents := TDesignerSelectionList.Create; - for I := 0 to PropCount - 1 do - begin - J := GetOrdValueAt(I); - if J <> 0 then - JvPersistents.Add(TJvPersistent(GetOrdValueAt(I))); - end; - if JvPersistents.Count > 0 then - GetComponentProperties(JvPersistents, tkAny, Designer, Proc); -end; - -{$ENDIF COMPILER5} - //=== { TJvStringsEditor } =================================================== function TJvStringsEditor.GetEditPropertyName: string; @@ -1043,3 +1328,4 @@ end. + Modified: trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas =================================================================== --- trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -59,8 +59,6 @@ dcWantMessage = dcWantAllKeys; type - TJvHotTrackOptions = class; - { IJvExControl is used for the identification of an JvExXxx control. } IJvExControl = interface ['{8E6579C3-D683-4562-AFAB-D23C8526E386}'] @@ -73,47 +71,6 @@ ['{76942BC0-2A6E-4DC4-BFC9-8E110DB7F601}'] end; - - { IJvHotTrack is Specifies whether Control are highlighted when the mouse passes over them} - IJvHotTrack = interface - ['{8F1B40FB-D8E3-46FE-A7A3-21CE4B199A8F}'] - - function GetHotTrack:Boolean; - function GetHotTrackFont:TFont; - function GetHotTrackFontOptions:TJvTrackFontOptions; - function GetHotTrackOptions:TJvHotTrackOptions; - - procedure SetHotTrack(Value: Boolean); - procedure SetHotTrackFont(Value: TFont); - procedure SetHotTrackFontOptions(Value: TJvTrackFontOptions); - procedure SetHotTrackOptions(Value: TJvHotTrackOptions); - - property HotTrack: Boolean read GetHotTrack write SetHotTrack; - property HotTrackFont: TFont read GetHotTrackFont write SetHotTrackFont; - property HotTrackFontOptions: TJvTrackFontOptions read GetHotTrackFontOptions write SetHotTrackFontOptions; - property HotTrackOptions: TJvHotTrackOptions read GetHotTrackOptions write SetHotTrackOptions; - end; - - TJvHotTrackOptions = class(TJvPersistentProperty) - private - FEnabled: Boolean; - FFrameVisible: Boolean; - FColor: TColor; - FFrameColor: TColor; - procedure SetColor(Value: TColor); - procedure SetEnabled(Value: Boolean); - procedure SetFrameColor(Value: TColor); - procedure SetFrameVisible(Value: Boolean); - public - constructor Create; virtual; - procedure Assign(Source: TPersistent); override; - published - property Enabled: Boolean read FEnabled write SetEnabled default False; - property Color: TColor read FColor write SetColor default $00D2BDB6; - property FrameVisible: Boolean read FFrameVisible write SetFrameVisible default False; - property FrameColor: TColor read FFrameColor write SetFrameColor default $006A240A; - end; - TStructPtrMessage = class(TObject) private {$IFDEF CLR} @@ -461,85 +418,6 @@ {$ENDIF COMPILER5} -//=== { TJvHotTrackOptions } ====================================== - -constructor TJvHotTrackOptions.Create; -begin - inherited Create; - FEnabled := False; - FFrameVisible := False; - FColor := $00D2BDB6; - FFrameColor := $006A240A; -end; - -procedure TJvHotTrackOptions.Assign(Source: TPersistent); -begin - if Source is TJvHotTrackOptions then - begin - BeginUpdate; - try - Enabled := TJvHotTrackOptions(Source).Enabled; - Color := TJvHotTrackOptions(Source).Color; - FrameVisible := TJvHotTrackOptions(Source).FrameVisible; - FrameColor := TJvHotTrackOptions(Source).FrameColor; - finally - EndUpdate; - end; - end - else - inherited Assign(Source); -end; - -procedure TJvHotTrackOptions.SetColor(Value: TColor); -begin - if FColor <> Value then - begin - Changing; - ChangingProperty('Color'); - FColor := Value; - ChangedProperty('Color'); - Changed; - end; -end; - -procedure TJvHotTrackOptions.SetEnabled(Value: Boolean); -begin - if FEnabled <> Value then - begin - Changing; - ChangingProperty('Enabled'); - FEnabled := Value; - ChangedProperty('Enabled'); - Changed; - end; -end; - -procedure TJvHotTrackOptions.SetFrameVisible(Value: Boolean); -begin - if FFrameVisible <> Value then - begin - Changing; - ChangingProperty('FrameVisible'); - FFrameVisible := Value; - ChangedProperty('FrameVisible'); - Changed; - end; -end; - -procedure TJvHotTrackOptions.SetFrameColor(Value: TColor); -begin - if FFrameColor <> Value then - begin - Changing; - ChangingProperty('FrameColor'); - FFrameColor := Value; - ChangedProperty('FrameColor'); - Changed; - end; -end; - -//============================================================================ - CONTROL_IMPL_DEFAULT(Control) WINCONTROL_IMPL_DEFAULT(WinControl) @@ -569,3 +447,4 @@ end. + Modified: trunk/jvcl/packages/c5/JvCoreC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.bpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c5/JvCoreC5R.bpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 10-01-2008 19:24:58 UTC + Last generated: 23-07-2008 17:11:39 UTC ***************************************************************************** --> <PROJECT> @@ -67,6 +67,7 @@ ..\..\lib\c5\JvVCL5Utils.obj ..\..\lib\c5\JvDataSourceIntf.obj ..\..\lib\c5\JvOfficeDragBarForm.obj + ..\..\lib\c5\JvHotTrackPersistent.obj "/> <RESFILES value="JvCoreC5R.res"/> <IDLFILES value=""/> Modified: trunk/jvcl/packages/c5/JvCoreC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.cpp 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c5/JvCoreC5R.cpp 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:11:40 UTC ----------------------------------------------------------------------------- */ @@ -64,6 +64,7 @@ USEUNIT("..\..\run\JvVCL5Utils.pas"); USEUNIT("..\..\run\JvDataSourceIntf.pas"); USEUNIT("..\..\run\JvOfficeDragBarForm.pas"); +USEUNIT("..\..\run\JvHotTrackPersistent.pas"); USEPACKAGE("JclC50.bpi"); USEPACKAGE("vcl50.bpi"); USEPACKAGE("vcljpg50.bpi"); Modified: trunk/jvcl/packages/c5/JvCoreC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c5/JvCoreC5R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:11:40 UTC ----------------------------------------------------------------------------- } @@ -97,7 +97,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/c5std/JvCoreC5R.bpk =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.bpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c5std/JvCoreC5R.bpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 10-01-2008 19:24:58 UTC + Last generated: 23-07-2008 17:11:39 UTC ***************************************************************************** --> <PROJECT> @@ -67,6 +67,7 @@ ..\..\lib\c5\JvVCL5Utils.obj ..\..\lib\c5\JvDataSourceIntf.obj ..\..\lib\c5\JvOfficeDragBarForm.obj + ..\..\lib\c5\JvHotTrackPersistent.obj "/> <RESFILES value="JvCoreC5R.res"/> <IDLFILES value=""/> Modified: trunk/jvcl/packages/c5std/JvCoreC5R.cpp =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.cpp 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c5std/JvCoreC5R.cpp 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:11:40 UTC ----------------------------------------------------------------------------- */ @@ -64,6 +64,7 @@ USEUNIT("..\..\run\JvVCL5Utils.pas"); USEUNIT("..\..\run\JvDataSourceIntf.pas"); USEUNIT("..\..\run\JvOfficeDragBarForm.pas"); +USEUNIT("..\..\run\JvHotTrackPersistent.pas"); USEPACKAGE("JclC50.bpi"); USEPACKAGE("vcl50.bpi"); USEPACKAGE("vcljpg50.bpi"); Modified: trunk/jvcl/packages/c5std/JvCoreC5R.dpk =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c5std/JvCoreC5R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:11:40 UTC ----------------------------------------------------------------------------- } @@ -98,7 +98,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/c6/JvCoreC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvCoreC6R.bpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c6/JvCoreC6R.bpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:15:00 UTC ***************************************************************************** --> <PROJECT> @@ -67,6 +67,7 @@ ..\..\lib\c6\JvVCL5Utils.obj ..\..\lib\c6\JvDataSourceIntf.obj ..\..\lib\c6\JvOfficeDragBarForm.obj + ..\..\lib\c6\JvHotTrackPersistent.obj "/> <RESFILES value="JvCoreC6R.res"/> <IDLFILES value=""/> @@ -191,6 +192,7 @@ <FILE FILENAME="..\..\run\JvVCL5Utils.pas" FORMNAME="" UNITNAME="JvVCL5Utils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvDataSourceIntf.pas" FORMNAME="" UNITNAME="JvDataSourceIntf" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvOfficeDragBarForm.pas" FORMNAME="" UNITNAME="JvOfficeDragBarForm" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvHotTrackPersistent.pas" FORMNAME="" UNITNAME="JvHotTrackPersistent" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jvcl/packages/c6/JvCoreC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvCoreC6R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c6/JvCoreC6R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:15:00 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/c6per/JvCoreC6R.bpk =================================================================== --- trunk/jvcl/packages/c6per/JvCoreC6R.bpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c6per/JvCoreC6R.bpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:15:00 UTC ***************************************************************************** --> <PROJECT> @@ -67,6 +67,7 @@ ..\..\lib\c6\JvVCL5Utils.obj ..\..\lib\c6\JvDataSourceIntf.obj ..\..\lib\c6\JvOfficeDragBarForm.obj + ..\..\lib\c6\JvHotTrackPersistent.obj "/> <RESFILES value="JvCoreC6R.res"/> <IDLFILES value=""/> @@ -188,6 +189,7 @@ <FILE FILENAME="..\..\run\JvVCL5Utils.pas" FORMNAME="" UNITNAME="JvVCL5Utils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvDataSourceIntf.pas" FORMNAME="" UNITNAME="JvDataSourceIntf" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvOfficeDragBarForm.pas" FORMNAME="" UNITNAME="JvOfficeDragBarForm" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvHotTrackPersistent.pas" FORMNAME="" UNITNAME="JvHotTrackPersistent" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jvcl/packages/c6per/JvCoreC6R.dpk =================================================================== --- trunk/jvcl/packages/c6per/JvCoreC6R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/c6per/JvCoreC6R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 23-07-2008 17:15:00 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d10/JvCoreD10R.dpk =================================================================== --- trunk/jvcl/packages/d10/JvCoreD10R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d10/JvCoreD10R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:18:39 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d10per/JvCoreD10R.dpk =================================================================== --- trunk/jvcl/packages/d10per/JvCoreD10R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d10per/JvCoreD10R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:18:39 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d11/JvCoreD11R.dpk =================================================================== --- trunk/jvcl/packages/d11/JvCoreD11R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d11/JvCoreD11R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:19:44 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d5/JvCoreD5R.dpk =================================================================== --- trunk/jvcl/packages/d5/JvCoreD5R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d5/JvCoreD5R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:09:49 UTC ----------------------------------------------------------------------------- } @@ -97,7 +97,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d5std/JvCoreD5R.dpk =================================================================== --- trunk/jvcl/packages/d5std/JvCoreD5R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d5std/JvCoreD5R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:09:49 UTC ----------------------------------------------------------------------------- } @@ -98,7 +98,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d6/JvCoreD6R.dpk =================================================================== --- trunk/jvcl/packages/d6/JvCoreD6R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d6/JvCoreD6R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:10:45 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d6per/JvCoreD6R.dpk =================================================================== --- trunk/jvcl/packages/d6per/JvCoreD6R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d6per/JvCoreD6R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:10:45 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d7/JvCoreD7R.dpk =================================================================== --- trunk/jvcl/packages/d7/JvCoreD7R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d7/JvCoreD7R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:29:08 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d7per/JvCoreD7R.dpk =================================================================== --- trunk/jvcl/packages/d7per/JvCoreD7R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d7per/JvCoreD7R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 23-07-2008 17:29:08 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d9/JvCoreD9R.dpk =================================================================== --- trunk/jvcl/packages/d9/JvCoreD9R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d9/JvCoreD9R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:18 UTC + Last generated: 23-07-2008 17:29:08 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/d9per/JvCoreD9R.dpk =================================================================== --- trunk/jvcl/packages/d9per/JvCoreD9R.dpk 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/d9per/JvCoreD9R.dpk 2008-07-23 17:34:56 UTC (rev 11830) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 17-07-2008 16:01:18 UTC + Last generated: 23-07-2008 17:29:08 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvBackgrounds in '..\..\run\JvBackgrounds.pas' , JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , - JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' + JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' ; end. Modified: trunk/jvcl/packages/xml/JvCore-R.xml =================================================================== --- trunk/jvcl/packages/xml/JvCore-R.xml 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/packages/xml/JvCore-R.xml 2008-07-23 17:34:56 UTC (rev 11830) @@ -86,5 +86,6 @@ <File Name="..\..\run\JvVCL5Utils.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvDataSourceIntf.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvOfficeDragBarForm.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\run\JvHotTrackPersistent.pas" Targets="all" Formname="" Condition=""/> </Contains> </Package> Modified: trunk/jvcl/run/JvButtonPersistent.pas =================================================================== --- trunk/jvcl/run/JvButtonPersistent.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/run/JvButtonPersistent.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -14,7 +14,8 @@ Portions created by S\xE9bastien Buysse are Copyright (C) 2001 S\xE9bastien Buysse. All Rights Reserved. -Contributor(s): Michael Beck [mbeck att bigfoot dott com]. +Contributor(s): Michael Beck [mbeck att bigfoot dott com] + Dejoy You may retrieve the latest version of this file at the Project JEDI's JVCL home page, located at http://jvcl.sourceforge.net @@ -35,47 +36,78 @@ {$ENDIF UNITVERSIONING} Windows, Messages, Classes, Graphics, Controls, - JvTypes; + JvTypes, JvHotTrackPersistent; type - TJvButtonPersistent = class(TPersistent) + + IJvControlProperty = interface(IInterface) + ['{33316D29-0F86-41C4-8DB4-3FE9756158B5}'] + function GetCaption: string; + function GetEnabled: Boolean; + function GetFlat: Boolean; + function GetHint: string; + function GetShowHint: Boolean; + function GetVisible: Boolean; + procedure SetCaption(const Value: string); + procedure SetEnabled(const Value: Boolean); + procedure SetFlat(const Value: Boolean); + procedure SetHint(const Value: string); + procedure SetShowHint(const Value: Boolean); + procedure SetVisible(const Value: Boolean); + procedure Assign(Source: IJvControlProperty); + + property Caption: string read GetCaption write SetCaption; + property Enabled: Boolean read GetEnabled write SetEnabled; + property Flat: Boolean read GetFlat write SetFlat; + property Hint: string read GetHint write SetHint; + property ShowHint: Boolean read GetShowHint write SetShowHint; + property Visible: Boolean read GetVisible write SetVisible; + end; + + TJvButtonPersistent = class(TJvCustomHotTrackPersistent + ,IJvControlProperty + ) private FVisible: Boolean; FFlat: Boolean; FEnabled: Boolean; FCaption: string; - FOnChanged: TNotifyEvent; - FFontEffect: Boolean; FHint: string; FShowHint: Boolean; - FFont: TFont; - FHotTrackFontOptions: TJvTrackFontOptions; + {IJvControlProperty} + function GetCaption: string; + function GetEnabled: Boolean; + function GetFlat: Boolean; + function GetHint: string; + function GetShowHint: Boolean; + function GetVisible: Boolean; procedure SetCaption(const Value: string); procedure SetEnabled(const Value: Boolean); procedure SetFlat(const Value: Boolean); procedure SetVisible(const Value: Boolean); - procedure SetFontEffect(const Value: Boolean); procedure SetHint(const Value: string); procedure SetShowHint(const Value: Boolean); - procedure SetFont(const Value: TFont); - procedure SetHotTrackFontOptions(const Value: TJvTrackFontOptions); - protected - procedure Changed; + + procedure IJvControlProperty_Assign(Source: IJvControlProperty); + procedure IJvControlProperty.Assign = IJvControlProperty_Assign; + public + procedure Assign(Source: TPersistent); override; procedure AssignTo(Sender: TPersistent); override; - public - property OnChanged: TNotifyEvent read FOnChanged write FOnChanged; - constructor Create; + + constructor Create(AOwner: TPersistent); override; destructor Destroy; override; published - property Caption: string read FCaption write SetCaption; - property Enabled: Boolean read FEnabled write SetEnabled default True; - property Flat: Boolean read FFlat write SetFlat default True; - property Hint: string read FHint write SetHint; - property HotTrack: Boolean read FFontEffect write SetFontEffect default True; - property HotTrackFont: TFont read FFont write SetFont; - property HotTrackFontOptions: TJvTrackFontOptions read FHotTrackFontOptions write SetHotTrackFontOptions; - property ShowHint: Boolean read FShowHint write SetShowHint; - property Visible: Boolean read FVisible write SetVisible default True; + property Caption: string read GetCaption write SetCaption; + property Enabled: Boolean read GetEnabled write SetEnabled default True; + property Flat: Boolean read GetFlat write SetFlat default True; + property Hint: string read GetHint write SetHint; + property ShowHint: Boolean read GetShowHint write SetShowHint; + property Visible: Boolean read GetVisible write SetVisible default True; + + property HotTrack default True; + property HotTrackFont; + property HotTrackFontOptions; + property HotTrackOptions; end; {$IFDEF UNITVERSIONING} @@ -91,75 +123,114 @@ implementation uses - StdCtrls, Buttons, - JvSpeedButton, JvButton; + SysUtils, StdCtrls, Buttons; -constructor TJvButtonPersistent.Create; +constructor TJvButtonPersistent.Create(AOwner: TPersistent); begin - inherited Create; - FFont := TFont.Create; + inherited Create(AOwner); + HotTrack := True; FEnabled := True; FFlat := True; FVisible := True; - FFontEffect := True; end; destructor TJvButtonPersistent.Destroy; begin - FFont.Free; inherited Destroy; end; -type - TJvCustomButtonAccessProtected = class(TJvCustomButton); +procedure TJvButtonPersistent.Assign(Source: TPersistent); +var + intf: IJvControlProperty; +begin + if Supports(Source, IJvControlProperty, intf) then + IJvControlProperty(Self).Assign(intf); + inherited Assign(Source); +end; procedure TJvButtonPersistent.AssignTo(Sender: TPersistent); +var + intf : IJvHotTrack; + intf2: IJvControlProperty; begin if Sender is TButton then begin - TButton(Sender).Enabled := Enabled; - TButton(Sender).Visible := Visible; - TButton(Sender).Caption := Caption; - TButton(Sender).Hint := Hint; - TButton(Sender).ShowHint := ShowHint; - if Sender is TJvCustomButton then + if Supports(Sender, IJvControlProperty, intf2) then + intf2.Assign(Self) + else begin - TJvCustomButtonAccessProtected(Sender).HotTrack := HotTrack; - TJvCustomButtonAccessProtected(Sender).HotTrackFont.Assign(FFont); - TJvCustomButtonAccessProtected(Sender).HotTrackFontOptions := HotTrackFontOptions; + TButton(Sender).Enabled := Enabled; + TButton(Sender).Visible := Visible; + TButton(Sender).Caption := Caption; + TButton(Sender).Hint := Hint; + TButton(Sender).ShowHint := ShowHint; end; + if Supports(Sender, IJvHotTrack, intf) then + begin + intf.Assign(Self); + end; end else if Sender is TSpeedButton then begin - TSpeedButton(Sender).Enabled := Enabled; - TSpeedButton(Sender).Visible := Visible; - TSpeedButton(Sender).Caption := Caption; - TSpeedButton(Sender).Hint := Hint; - TSpeedButton(Sender).ShowHint := ShowHint; - TSpeedButton(Sender).Flat := Flat; - if Sender is TJvSpeedButton then + if Supports(Sender, IJvControlProperty, intf2) then + intf2.Assign(Self) + else begin - TJvSpeedButton(Sender).HotTrack := HotTrack; - TJvSpeedButton(Sender).HotTrackFont.Assign(FFont); - TJvSpeedButton(Sender).HotTrackFontOptions := HotTrackFontOptions; + TSpeedButton(Sender).Enabled := Enabled; + TSpeedButton(Sender).Visible := Visible; + TSpeedButton(Sender).Caption := Caption; + TSpeedButton(Sender).Hint := Hint; + TSpeedButton(Sender).ShowHint := ShowHint; + TSpeedButton(Sender).Flat := Flat; end; + if Supports(Sender, IJvHotTrack, intf) then + begin + intf.Assign(Self); + end; end else inherited AssignTo(Sender); end; -procedure TJvButtonPersistent.Changed; +function TJvButtonPersistent.GetCaption: string; begin - if Assigned(FOnChanged) then - FOnChanged(Self); + Result := FCaption; end; +function TJvButtonPersistent.GetEnabled: Boolean; +begin + Result := FEnabled; +end; + +function TJvButtonPersistent.GetFlat: Boolean; +begin + Result := FFlat; +end; + +function TJvButtonPersistent.GetHint: string; +begin + Result := FHint; +end; + +function TJvButtonPersistent.GetShowHint: Boolean; +begin + Result := FShowHint; +end; + +function TJvButtonPersistent.GetVisible: Boolean; +begin + Result := FVisible; +end; + procedure TJvButtonPersistent.SetCaption(const Value: string); begin if FCaption <> Value then begin + Changing; + ChangingProperty('Caption'); FCaption := Value; + ChangedProperty('Caption'); Changed; end; end; @@ -168,7 +239,10 @@ begin if FEnabled <> Value then begin + Changing; + ChangingProperty('Enabled'); FEnabled := Value; + ChangedProperty('Enabled'); Changed; end; end; @@ -177,34 +251,22 @@ begin if FFlat <> Value then begin + Changing; + ChangingProperty('Flat'); FFlat := Value; + ChangedProperty('Flat'); Changed; end; end; -procedure TJvButtonPersistent.SetFont(const Value: TFont); -begin - if FFont <> Value then - begin - FFont.Assign(Value); - Changed; - end; -end; - -procedure TJvButtonPersistent.SetFontEffect(const Value: Boolean); -begin - if FFontEffect <> Value then - begin - FFontEffect := Value; - Changed; - end; -end; - procedure TJvButtonPersistent.SetHint(const Value: string); begin if FHint <> Value then begin + Changing; + ChangingProperty('Hint'); FHint := Value; + ChangedProperty('Hint'); Changed; end; end; @@ -213,7 +275,10 @@ begin if FShowHint <> Value then begin + Changing; + ChangingProperty('ShowHint'); FShowHint := Value; + ChangedProperty('ShowHint'); Changed; end; end; @@ -222,17 +287,30 @@ begin if FVisible <> Value then begin + Changing; + ChangingProperty('Visible'); FVisible := Value; + ChangedProperty('Visible'); Changed; end; end; -procedure TJvButtonPersistent.SetHotTrackFontOptions(const Value: TJvTrackFontOptions); +procedure TJvButtonPersistent.IJvControlProperty_Assign( + Source: IJvControlProperty); begin - if FHotTrackFontOptions <> Value then + if (Source <> nil) and (IJvControlProperty(Self) <> Source) then begin - FHotTrackFontOptions := Value; - Changed; + BeginUpdate; + try + Caption := Source.Caption; + Enabled := Source.Enabled; + Flat := Source.Flat; + Hint := Source.Hint; + ShowHint := Source.ShowHint; + Visible := Source.Visible; + finally + EndUpdate; + end; end; end; @@ -246,3 +324,4 @@ end. + Modified: trunk/jvcl/run/JvConsts.pas =================================================================== --- trunk/jvcl/run/JvConsts.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/run/JvConsts.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -32,8 +32,10 @@ {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} - SysUtils, Classes, Forms, Controls, Graphics, Windows, - JvWin32; + {$IFDEF COMPILER5} + JvWin32, + {$ENDIF COMPILER5} + SysUtils, Classes, Forms, Controls, Graphics, Windows; const { JvEditor } @@ -257,3 +259,4 @@ end. + Modified: trunk/jvcl/run/JvDBActionsEngine.pas =================================================================== --- trunk/jvcl/run/JvDBActionsEngine.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/run/JvDBActionsEngine.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -478,7 +478,7 @@ var Dialog: TJvDynControlDataSourceEditDialog; begin - Dialog := TJvDynControlDataSourceEditDialog.Create; + Dialog := TJvDynControlDataSourceEditDialog.Create(Self); try if Dialog.DynControlEngineDB.SupportsDataComponent(aActionComponent) then Dialog.DataComponent := aActionComponent @@ -642,7 +642,7 @@ var Dialog: TJvDynControlDataSourceEditDialog; begin - Dialog := TJvDynControlDataSourceEditDialog.Create; + Dialog := TJvDynControlDataSourceEditDialog.Create(self); try AOptions.SetOptionsToDialog(Dialog); if Dialog.DynControlEngineDB.SupportsDataComponent(aActionComponent) then @@ -765,7 +765,7 @@ FWidth := 640; FHeight := 480; FPosition := poScreenCenter; - FArrangeSettings := TJvArrangeSettings.Create(); + FArrangeSettings := TJvArrangeSettings.Create(Self); with FArrangeSettings do begin AutoSize := asBoth; @@ -870,3 +870,4 @@ end. + Modified: trunk/jvcl/run/JvDataEmbedded.pas =================================================================== --- trunk/jvcl/run/JvDataEmbedded.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/run/JvDataEmbedded.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -50,7 +50,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} SysUtils, Classes, - JVCLVer, JvVCL5Utils; + JVCLVer, JvTypes; type TJvPersistentEmbedded = class(TInterfacedPersistent) @@ -448,3 +448,4 @@ end. + Modified: trunk/jvcl/run/JvDynControlEngineDBTools.pas =================================================================== --- trunk/jvcl/run/JvDynControlEngineDBTools.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/run/JvDynControlEngineDBTools.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -32,7 +32,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} Controls, DB, Classes, - ActnList, Forms, Graphics, + ActnList, Forms, Graphics, JvTypes, JvPanel, JvDynControlEngineTools, JvDynControlEngine, JvDynControlEngineDB; type @@ -41,8 +41,7 @@ TWinControl; AFieldCreateOptions: TJvCreateDBFieldsOnControlOptions) of object; - {$M+} - TJvDynControlDataSourceEditDialog = class(TObject) + TJvDynControlDataSourceEditDialog = class(TJvPersistentProperty) private FForm: TCustomForm; FDynControlEngineDB: TJvDynControlEngineDB; @@ -88,7 +87,7 @@ TJvCreateDBFieldsOnControlOptions); virtual; property DataSource: TDataSource read FDataSource; public - constructor Create; + constructor Create(AOwner: TPersistent); override; destructor Destroy; override; function ShowDialog: TModalResult; published @@ -117,7 +116,6 @@ FFieldCreateOptions write SetFieldCreateOptions; end; - {$M-} function ShowDataSourceEditDialog(ADataComponent: TComponent; const ADialogCaption, APostButtonCaption, ACancelButtonCaption, @@ -181,9 +179,10 @@ FForm.ModalResult := mrAbort; end; -constructor TJvDynControlDataSourceEditDialog.Create; +constructor TJvDynControlDataSourceEditDialog.Create(AOwner: TPersistent); begin - inherited Create; + inherited Create(AOwner); + FDialogCaption := ''; FPostButtonCaption := RSSRWPostButtonCaption; FCancelButtonCaption := RSSRWCancelButtonCaption; @@ -199,7 +198,7 @@ FPosition := poScreenCenter; FDynControlEngineDB := nil; FDataSource := nil; - FArrangeSettings := TJvArrangeSettings.Create; + FArrangeSettings := TJvArrangeSettings.Create(Self); with FArrangeSettings do begin AutoSize := asBoth; @@ -452,7 +451,7 @@ var Dialog: TJvDynControlDataSourceEditDialog; begin - Dialog := TJvDynControlDataSourceEditDialog.Create; + Dialog := TJvDynControlDataSourceEditDialog.Create(ADataComponent); try Dialog.DataComponent := ADataComponent; Dialog.DialogCaption := ADialogCaption; @@ -487,3 +486,4 @@ end. + Modified: trunk/jvcl/run/JvExControls.pas =================================================================== --- trunk/jvcl/run/JvExControls.pas 2008-07-23 17:31:14 UTC (rev 11829) +++ trunk/jvcl/run/JvExControls.pas 2008-07-23 17:34:56 UTC (rev 11830) @@ -65,7 +65,6 @@ dcWantMessage = dcWantAllKeys; type - TJvHotTrackOptions = class; { IJvExControl is used for the identification of an JvExXxx control. } IJvExControl = interface @@ -79,47 +78,6 @@ ['{76942BC0-2A6E-4DC4-BFC9-8E110DB7F601}'] end; - - { IJvHotTrack is Specifies whether Control are highlighted when the mouse passes over them} - IJvHotTrack = interface - ['{8F1B40FB-D8E3-46FE-A7A3-21CE4B199A8F}'] - - function GetHotTrack:Boolean; - function GetHotTrackFont:TFont; - function GetHotTrackFontOptions:TJvTrackFontOptions; - function GetHotTrackOptions:TJvHotTrackOptions; - - procedure SetHotTrack(Value: Boolean); - procedure SetHotTrackFont(Value: TFont); - procedure SetHotTrackFontOptions(Value: TJvTrackFontOptions); - procedure SetHotTrackOptions(Value: TJvHotTrackOptions); - - property HotTrack: Boolean read GetHotTrack write SetHotTrack; - property HotTrackFont: TFont read GetHotTrackFont write SetHotTrackFont; - property HotTrackFontOptions: TJvTrackFontOptions read GetHotTrackFontOptions write SetHotTrackFontOptions; - property HotTrackOptions: TJvHotTrackOptions read GetHotTrackOptions write SetHotTrackOptions; - end; - - TJvHotTrackOptions = class(TJvPersistentProperty) - private - FEnabled: Boolean; - FFrameVisible: Boolean; - FColor: TColor; - FFrameColor: TColor; - procedure SetColor(Value: TColor); - procedure SetEnabled(Value: Boolean); - procedure SetFrameColor(Value: TColor); - procedure SetFrameVisible(Value: Boolean); - public - constructor Create; virtual; - procedure Assign(Source: TPersistent); override; - published - property Enabled: Boolean read FEnabled write SetEnabled default False; - property Color: TColor read FColor write SetColor default $00D2BDB6; - property FrameVisible: Boolean read FFrameVisible write SetFrameVisible default False; - property FrameColor: TColor read FFrameColor write SetFrameColor default $006A240A; - end; - TStructPtrMessage = class(TObject) private {$IFDEF CLR} @@ -776,83 +734,6 @@ {$ENDIF COMPILER5} -//=== { TJvHotTrackOptions } ====================================== - -constructor TJvHotTrackOptions.Create; -begin - inherited Create; - FEnabled := False; - FFrameVisible := False; - FColor := $00D2BDB6; - FFrameColor := $006A240A; -end; - -procedure TJvHotTrackOptions.Assign(Source: TPersistent); -begin - if Source is TJvHotTrackOptions then - begin - BeginUpdate; - try - Enabled := TJvHotTrackOptions(Source).Enabled; - Color := TJvHotTrackOptions(Source).Color; - FrameVisible := TJvHotTrackOptions(Source).FrameVisible; - FrameColor := TJvHotTrackOptions(Source).FrameColor; - finally - EndUpdate; - end; - end - else - inherited Assign(Source); -end; - -procedure TJvHotTrackOptions.SetColor(Value: TColor); -begin - if FColor <> Value then - begin - Changing; - ChangingProperty('Color'); - FColor := Value; - ChangedProperty('Color'); - Changed; - end; -end; - -procedure TJvHotTrackOptions.SetEnabled(Value: Boolean); -begin - if FEnabled <> Value then - begin - Changing; - ChangingProperty('Enabled'); - ... [truncated message content] |
From: <ob...@us...> - 2008-09-09 20:29:54
|
Revision: 11890 http://jvcl.svn.sourceforge.net/jvcl/?rev=11890&view=rev Author: obones Date: 2008-09-09 20:29:49 +0000 (Tue, 09 Sep 2008) Log Message: ----------- Changes required for D2009/C2009 support, merged from the 3.35 branch Modified Paths: -------------- trunk/jvcl/archive/JvAppInfo.pas trunk/jvcl/archive/JvProps.pas trunk/jvcl/archive/JvRegAuto.pas trunk/jvcl/archive/JvRegAutoEditorForm.dfm trunk/jvcl/archive/JvRegAutoEditorForm.pas trunk/jvcl/archive/JvUtils.pas trunk/jvcl/bin/PhoneList.csv trunk/jvcl/common/jedi.inc trunk/jvcl/common/jvcl.inc trunk/jvcl/common/jvclbase.inc Modified: trunk/jvcl/archive/JvAppInfo.pas =================================================================== --- trunk/jvcl/archive/JvAppInfo.pas 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/archive/JvAppInfo.pas 2008-09-09 20:29:49 UTC (rev 11890) @@ -130,6 +130,7 @@ SetOrdProp(Self, PropList[I], StrToInt(Value)); tkFloat: SetFloatProp(Self, PropList[I], StrToFloat(Value)); + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString: SetStrProp(Self, PropList[I], Value); else @@ -162,6 +163,7 @@ Value := IntToStr(GetOrdProp(Self, PropList[I])); tkFloat: Value := FloatToStr(GetFloatProp(Self, PropList[I])); + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString: Value := GetStrProp(Self, PropList[I]); else @@ -203,6 +205,7 @@ SetOrdProp(Self, PropList[I], StrToInt(Value)); tkFloat: SetFloatProp(Self, PropList[I], StrToFloat(Value)); + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString: SetStrProp(Self, PropList[I], Value); else @@ -236,6 +239,7 @@ Value := IntToStr(GetOrdProp(Self, PropList[I])); tkFloat: Value := FloatToStr(GetFloatProp(Self, PropList[I])); + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString: Value := GetStrProp(Self, PropList[I]); else Modified: trunk/jvcl/archive/JvProps.pas =================================================================== --- trunk/jvcl/archive/JvProps.pas 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/archive/JvProps.pas 2008-09-09 20:29:49 UTC (rev 11890) @@ -72,18 +72,14 @@ function StoreClassProperty(PropInfo: PPropInfo): string; function StoreStringsProperty(PropInfo: PPropInfo): string; function StoreComponentProperty(PropInfo: PPropInfo): string; - {$IFDEF WIN32} function StoreLStringProperty(PropInfo: PPropInfo): string; function StoreWCharProperty(PropInfo: PPropInfo): string; function StoreVariantProperty(PropInfo: PPropInfo): string; procedure LoadLStringProperty(const S: string; PropInfo: PPropInfo); procedure LoadWCharProperty(const S: string; PropInfo: PPropInfo); procedure LoadVariantProperty(const S: string; PropInfo: PPropInfo); - {$ENDIF} - {$IFDEF COMPILER4_UP} function StoreInt64Property(PropInfo: PPropInfo): string; procedure LoadInt64Property(const S: string; PropInfo: PPropInfo); - {$ENDIF} procedure LoadIntegerProperty(const S: string; PropInfo: PPropInfo); procedure LoadCharProperty(const S: string; PropInfo: PPropInfo); procedure LoadEnumProperty(const S: string; PropInfo: PPropInfo); @@ -123,19 +119,11 @@ function ParseStoredItem(const Item: string; var CompName, PropName: string): Boolean; const - {$IFDEF WIN32} sPropNameDelimiter: string = '_'; - {$ELSE} - sPropNameDelimiter: Char = '_'; - {$ENDIF} implementation uses - {$IFNDEF WIN32} - WinTypes, WinProcs, - JvStr16, - {$ENDIF} JvStrUtils; const @@ -146,20 +134,9 @@ type TCardinalSet = set of 0..SizeOf(Cardinal) * 8 - 1; -{$IFNDEF WIN32} -function GetEnumName(TypeInfo: PTypeInfo; Value: Integer): string; -begin - Result := TypInfo.GetEnumName(TypeInfo, Value)^; -end; -{$ENDIF} - function GetPropType(PropInfo: PPropInfo): PTypeInfo; begin - {$IFDEF COMPILER3_UP} Result := PropInfo^.PropType^; - {$ELSE} - Result := PropInfo^.PropType; - {$ENDIF} end; //=== TJvPropInfoList ======================================================== @@ -305,7 +282,6 @@ end; end; -{$IFDEF WIN32} function FindGlobalComponent(const Name: string): TComponent; var I: Integer; @@ -324,7 +300,6 @@ end; Result := nil; end; -{$ENDIF} //=== TJvPropsStorage ======================================================== @@ -349,22 +324,16 @@ Def := StoreEnumProperty(PropInfo); tkFloat: Def := StoreFloatProperty(PropInfo); - {$IFDEF WIN32} tkWChar: Def := StoreWCharProperty(PropInfo); tkLString: Def := StoreLStringProperty(PropInfo); - {$IFNDEF COMPILER3_UP} { - Delphi 2.0, C++Builder 1.0 } - tkLWString: - Def := StoreLStringProperty(PropInfo); - {$ENDIF} + tkWString: + Def := StoreWStringProperty(PropInfo); tkVariant: Def := StoreVariantProperty(PropInfo); - {$ENDIF WIN32} - {$IFDEF COMPILER4_UP} tkInt64: Def := StoreInt64Property(PropInfo); - {$ENDIF} tkString: Def := StoreStringProperty(PropInfo); tkSet: @@ -375,10 +344,7 @@ Exit; end; if (Def <> '') or (PropInfo^.PropType^.Kind in [tkString, tkClass]) - {$IFDEF WIN32} - or (PropInfo^.PropType^.Kind in [tkLString, - {$IFNDEF COMPILER3_UP}tkLWString, {$ENDIF}tkWChar]) - {$ENDIF WIN32} + or (PropInfo^.PropType^.Kind in [tkLString, tkWChar]) then S := Trim(ReadString(Section, GetItemName(PropInfo^.Name), Def)) else @@ -392,22 +358,14 @@ LoadEnumProperty(S, PropInfo); tkFloat: LoadFloatProperty(S, PropInfo); - {$IFDEF WIN32} tkWChar: LoadWCharProperty(S, PropInfo); tkLString: LoadLStringProperty(S, PropInfo); - {$IFNDEF COMPILER3_UP} { - Delphi 2.0, C++Builder 1.0 } - tkLWString: - LoadLStringProperty(S, PropInfo); - {$ENDIF} tkVariant: LoadVariantProperty(S, PropInfo); - {$ENDIF WIN32} - {$IFDEF COMPILER4_UP} tkInt64: LoadInt64Property(S, PropInfo); - {$ENDIF} tkString: LoadStringProperty(S, PropInfo); tkSet: @@ -436,22 +394,14 @@ S := StoreEnumProperty(PropInfo); tkFloat: S := StoreFloatProperty(PropInfo); - {$IFDEF WIN32} tkLString: S := StoreLStringProperty(PropInfo); - {$IFNDEF COMPILER3_UP} { - Delphi 2.0, C++Builder 1.0 } - tkLWString: - S := StoreLStringProperty(PropInfo); - {$ENDIF} tkWChar: S := StoreWCharProperty(PropInfo); tkVariant: S := StoreVariantProperty(PropInfo); - {$ENDIF WIN32} - {$IFDEF COMPILER4_UP} tkInt64: S := StoreInt64Property(PropInfo); - {$ENDIF} tkString: S := StoreStringProperty(PropInfo); tkSet: @@ -461,9 +411,7 @@ else Exit; end; - if (S <> '') or (PropInfo^.PropType^.Kind in [tkString - {$IFDEF WIN32}, tkLString, {$IFNDEF COMPILER3_UP} tkLWString, {$ENDIF} - tkWChar {$ENDIF WIN32}]) then + if (S <> '') or (PropInfo^.PropType^.Kind in [tkString, tkLString, tkWChar]) then WriteString(Section, GetItemName(PropInfo^.Name), Trim(S)); end; end; @@ -485,11 +433,7 @@ function TJvPropsStorage.StoreFloatProperty(PropInfo: PPropInfo): string; const - {$IFDEF WIN32} Precisions: array [TFloatType] of Integer = (7, 15, 18, 18, 19); - {$ELSE} - Precisions: array [TFloatType] of Integer = (7, 15, 18, 18); - {$ENDIF} begin Result := ReplaceStr(FloatToStrF(GetFloatProp(FObject, PropInfo), ffGeneral, Precisions[GetTypeData(GetPropType(PropInfo))^.FloatType], 0), @@ -501,8 +445,6 @@ Result := GetStrProp(FObject, PropInfo); end; -{$IFDEF WIN32} - function TJvPropsStorage.StoreLStringProperty(PropInfo: PPropInfo): string; begin Result := GetStrProp(FObject, PropInfo); @@ -518,14 +460,10 @@ Result := GetVariantProp(FObject, PropInfo); end; -{$ENDIF} - -{$IFDEF COMPILER4_UP} function TJvPropsStorage.StoreInt64Property(PropInfo: PPropInfo): string; begin Result := IntToStr(GetInt64Prop(FObject, PropInfo)); end; -{$ENDIF} function TJvPropsStorage.StoreSetProperty(PropInfo: PPropInfo): string; var @@ -535,7 +473,7 @@ begin Result := '['; W := GetOrdProp(FObject, PropInfo); - TypeInfo := GetTypeData(GetPropType(PropInfo))^.CompType{$IFDEF COMPILER3_UP}^{$ENDIF}; + TypeInfo := GetTypeData(GetPropType(PropInfo))^.CompType^; for I := 0 to SizeOf(TCardinalSet) * 8 - 1 do if I in TCardinalSet(W) then begin @@ -624,7 +562,6 @@ begin if Obj is TStrings then StoreStringsProperty(PropInfo) - {$IFDEF WIN32} else if Obj is TCollection then begin @@ -643,7 +580,6 @@ Saver.Free; end; end - {$ENDIF} else if Obj is TComponent then begin @@ -693,15 +629,11 @@ DecimalSeparator))); end; -{$IFDEF COMPILER4_UP} procedure TJvPropsStorage.LoadInt64Property(const S: string; PropInfo: PPropInfo); begin SetInt64Prop(FObject, PropInfo, StrToInt64Def(S, 0)); end; -{$ENDIF} -{$IFDEF WIN32} - procedure TJvPropsStorage.LoadLStringProperty(const S: string; PropInfo: PPropInfo); begin SetStrProp(FObject, PropInfo, S); @@ -717,8 +649,6 @@ SetVariantProp(FObject, PropInfo, S); end; -{$ENDIF} - procedure TJvPropsStorage.LoadStringProperty(const S: string; PropInfo: PPropInfo); begin SetStrProp(FObject, PropInfo, S); @@ -735,7 +665,7 @@ EnumName: string; begin W := 0; - TypeInfo := GetTypeData(GetPropType(PropInfo))^.CompType{$IFDEF COMPILER3_UP}^{$ENDIF}; + TypeInfo := GetTypeData(GetPropType(PropInfo))^.CompType^; Count := WordCount(S, Delims); for N := 1 to Count do begin @@ -777,7 +707,6 @@ end; procedure TJvPropsStorage.LoadComponentProperty(const S: string; PropInfo: PPropInfo); -{$IFDEF WIN32} var RootName, Name: string; Root: TComponent; @@ -808,28 +737,13 @@ if Root <> nil then SetOrdProp(FObject, PropInfo, Longint(Root.FindComponent(Name))); end; -{$ELSE} -begin - if Trim(S) = '' then - Exit; - if CompareText(SNull, Trim(S)) = 0 then - begin - SetOrdProp(FObject, PropInfo, Longint(nil)); - Exit; - end; - if FOwner <> nil then - SetOrdProp(FObject, PropInfo, Longint(FOwner.FindComponent(Trim(S)))); -end; -{$ENDIF} procedure TJvPropsStorage.LoadClassProperty(const S: string; PropInfo: PPropInfo); var Loader: TJvPropsStorage; I: Integer; - {$IFDEF WIN32} Cnt: Integer; Recreate: Boolean; - {$ENDIF} Obj: TObject; procedure LoadObjectProps(Obj: TObject; const APrefix, ASection: string); @@ -859,7 +773,6 @@ begin if Obj is TStrings then LoadStringsProperty(S, PropInfo) - {$IFDEF WIN32} else if Obj is TCollection then begin @@ -888,7 +801,6 @@ Loader.Free; end; end - {$ENDIF} else if Obj is TComponent then begin Modified: trunk/jvcl/archive/JvRegAuto.pas =================================================================== --- trunk/jvcl/archive/JvRegAuto.pas 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/archive/JvRegAuto.pas 2008-09-09 20:29:49 UTC (rev 11890) @@ -432,7 +432,8 @@ begin Result := ''; case PropTyp of - tkString, tkLString , tkWString : + {$IFDEF UNICODE} tkUString, {$ENDIF} + tkString, tkLString, tkWString : if FLoaded then Result := GetStrProp(Obj, PropInf); end; @@ -441,7 +442,8 @@ procedure TJvRegAuto.SetStrPrp(Value: string); begin case PropTyp of - tkString, tkLString , tkWString : + {$IFDEF UNICODE} tkUString, {$ENDIF} + tkString, tkLString, tkWString : if FLoaded then SetStrProp(Obj, PropInf, Value); end; @@ -511,6 +513,7 @@ SaveOrdPrp; tkFloat: SaveFloatPrp; + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString , tkWString : SaveStrPrp; end; @@ -580,6 +583,7 @@ LoadOrdPrp; tkFloat: LoadFloatPrp; + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString , tkWString : LoadStrPrp; end; Modified: trunk/jvcl/archive/JvRegAutoEditorForm.dfm =================================================================== --- trunk/jvcl/archive/JvRegAutoEditorForm.dfm 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/archive/JvRegAutoEditorForm.dfm 2008-09-09 20:29:49 UTC (rev 11890) @@ -1,10 +1,10 @@ object JvRegEditor: TJvRegEditor Left = 211 Top = 120 - Width = 460 - Height = 359 BorderIcons = [biSystemMenu] Caption = 'RegAuto Editor' + ClientHeight = 325 + ClientWidth = 452 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -32,7 +32,7 @@ TextHeight = 13 object panelBottom: TPanel Left = 0 - Top = 302 + Top = 295 Width = 452 Height = 30 Align = alBottom @@ -46,6 +46,9 @@ Align = alRight BevelOuter = bvNone TabOrder = 0 + DesignSize = ( + 158 + 30) object btnOk: TButton Left = 1 Top = 4 @@ -93,6 +96,9 @@ Align = alRight BevelOuter = bvNone TabOrder = 0 + DesignSize = ( + 28 + 32) object btnAddProp: TSpeedButton Left = 2 Top = 3 @@ -171,7 +177,7 @@ Left = 0 Top = 36 Width = 201 - Height = 266 + Height = 259 Hint = 'Accessible properties' Align = alLeft Ctl3D = True @@ -184,18 +190,20 @@ OnDragDrop = TreeDragDrop OnDragOver = TreeDragOver OnEnter = TreeEnter - Items.Data = { - 030000001C00000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 - 033132321F000000FFFFFFFF00000000FFFFFFFFFFFFFFFF0000000000000000 - 063333353435341D0000000300000000000000FFFFFFFFFFFFFFFF0000000001 - 00000004313132321C0000000000000000000000FFFFFFFFFFFFFFFF00000000 - 0000000003323334} + Items.NodeData = { + 03030000002400000001000000FFFFFFFFFFFFFFFFFFFFFFFF00000000000000 + 000000000001033100320032002A000000FFFFFFFF00000000FFFFFFFFFFFFFF + FF00000000000000000000000001063300330035003400350034002600000003 + 00000000000000FFFFFFFFFFFFFFFF0000000000000000010000000104310031 + 0032003200240000000000000000000000FFFFFFFFFFFFFFFF00000000000000 + 00000000000103320033003400} + ExplicitHeight = 266 end object List: TListBox Left = 201 Top = 36 Width = 251 - Height = 266 + Height = 259 Hint = 'List of saved properties' Align = alClient Ctl3D = True Modified: trunk/jvcl/archive/JvRegAutoEditorForm.pas =================================================================== --- trunk/jvcl/archive/JvRegAutoEditorForm.pas 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/archive/JvRegAutoEditorForm.pas 2008-09-09 20:29:49 UTC (rev 11890) @@ -45,7 +45,7 @@ {$IFDEF COMPILER4_UP} ImgList, {$ENDIF COMPILER4_UP} - JvRegAuto, JvComponent; + JvRegAuto, JvComponent, ImgList; type TJvRegAutoEditor = class(TComponentEditor) @@ -342,6 +342,7 @@ + ATypeInfo^.Name + #0 + 'Y'); MyNode.ImageIndex := imEnumeration; // Picture - Possible to select [translated] end; + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString {, tkWString}: begin MyNode := Modified: trunk/jvcl/archive/JvUtils.pas =================================================================== --- trunk/jvcl/archive/JvUtils.pas 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/archive/JvUtils.pas 2008-09-09 20:29:49 UTC (rev 11890) @@ -3000,7 +3000,7 @@ if PropInf = nil then raise Exception.CreateFmt(SPropertyNotExists, [PropName]); if not (PropInf^.PropType^.Kind in - [tkString, tkLString {$IFDEF COMPILER3_UP}, tkWString {$ENDIF COMPILER3_UP}]) then + [tkString, tkLString, {$IFDEF UNICODE} tkUString, {$ENDIF} tkWString]) then raise Exception.CreateFmt(SInvalidPropertyType, [PropName]); Result := GetStrProp(Obj, PropInf); end; Modified: trunk/jvcl/bin/PhoneList.csv =================================================================== --- trunk/jvcl/bin/PhoneList.csv 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/bin/PhoneList.csv 2008-09-09 20:29:49 UTC (rev 11890) @@ -1,10 +1,10 @@ NAME,ADDRESS,ADDRESS2,TELEPHONE,AGE,LASTPHONECALL,PRIVATENUMBER -Warren Postma,"118 Lyall Ave, Toronto Ontario Canada",M4E 1W5,416-693-5545,33,,1 -Mr Filename,"c:\Program Files\Microsoft Office",,,,2001-05-09 00:00:01, +Froggy Woggle,1 Small Street,M4E 1W5,415-292-2822,33,,1 +Mark Anderson,2 Big Street,M1P 2P4,411-239-2938,33,2001-05-09 00:00:01,1 John Smith,"1 Park Lawn Avenue, Upper West Side","New York, NY",555-111-110102,999,2003/05/05 00:00:00,1 David Jones,"5 Main Street, Apt #703","Smalltown, NY, USA",555-123-4567,44,2004/05/05 00:00:00,1 NASTY_1,"123 "" "" "" 45, 66 "" \\ "" ,,,,",NASTY TEST #1,,,1998/09/05 03:45:00,1 -COMMAS_1,"1,2,3,4,5,6,7,8,9, 10,11,12",COMMA TEST #1,,,,,1 +COMMAS_1,"1,2,3,4,5,6,7,8,9, 10,11,12",COMMA TEST #1,,,,0,1 NEXT_ROW_BLANK,The next row should be all NULLs,,,,,1 -,,,,,, +,,,,,,1 LAST_ROW,"This is the last row, my friend",,,,,0 Modified: trunk/jvcl/common/jedi.inc =================================================================== --- trunk/jvcl/common/jedi.inc 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/common/jedi.inc 2008-09-09 20:29:49 UTC (rev 11890) @@ -1,50 +1,49 @@ {$IFNDEF JEDI_INC} {$DEFINE JEDI_INC} -{******************************************************************************} -{ } -{ The contents of this file are subject to the Mozilla Public License } -{ Version 1.1 (the "License"); you may not use this file except in } -{ compliance with the License. You may obtain a copy of the License at } -{ http://www.mozilla.org/MPL/ } -{ } -{ Software distributed under the License is distributed on an "AS IS" basis, } -{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License } -{ for the specific language governing rights and limitations under the } -{ License. } -{ } -{ The Original Code is: jedi.inc. } -{ The Initial Developer of the Original Code is Project JEDI } -{ http://www.delphi-jedi.org } -{ } -{ Alternatively, the contents of this file may be used under the terms of } -{ the GNU Lesser General Public License (the "LGPL License"), in which case } -{ the provisions of the LGPL License are applicable instead of those above. } -{ If you wish to allow use of your version of this file only under the terms } -{ of the LGPL License and not to allow others to use your version of this } -{ file under the MPL, indicate your decision by deleting the provisions } -{ above and replace them with the notice and other provisions required by } -{ the LGPL License. If you do not delete the provisions above, a recipient } -{ may use your version of this file under either the MPL or the LGPL License. } -{ } -{ For more information about the LGPL: } -{ http://www.gnu.org/copyleft/lesser.html } -{ } -{******************************************************************************} -{ } -{ This file defines various generic compiler directives used in different } -{ libraries, e.g. in the JEDI Code Library (JCL) and JEDI Visual Component } -{ Library Library (J-VCL). The directives in this file are of generic nature } -{ and consist mostly of mappings from the VERXXX directives defined by } -{ Delphi, C++ Builder and FPC to friendly names such as DELPHI5 and } -{ SUPPORTS_WIDESTRING. These friendly names are subsequently used in the } -{ libraries to test for compiler versions and/or whether the compiler } -{ supports certain features (such as widestrings or 64 bit integers. The } -{ libraries provide an additional, library specific, include file. For the } -{ JCL e.g. this is jcl.inc. These files should be included in source files } -{ instead of this file (which is pulled in automatically). } -{ } -{******************************************************************************} +{**************************************************************************************************} +{ } +{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} +{ you may not use this file except in compliance with the License. You may obtain a copy of the } +{ License at http://www.mozilla.org/MPL/ } +{ } +{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } +{ ANY KIND, either express or implied. See the License for the specific language governing rights } +{ and limitations under the License. } +{ } +{ The Original Code is: jedi.inc. } +{ The Initial Developer of the Original Code is Project JEDI http://www.delphi-jedi.org } +{ } +{ Alternatively, the contents of this file may be used under the terms of the GNU Lesser General } +{ Public License (the "LGPL License"), in which case the provisions of the LGPL License are } +{ applicable instead of those above. If you wish to allow use of your version of this file only } +{ under the terms of the LGPL License and not to allow others to use your version of this file } +{ under the MPL, indicate your decision by deleting the provisions above and replace them with } +{ the notice and other provisions required by the LGPL License. If you do not delete the } +{ provisions above, a recipient may use your version of this file under either the MPL or the } +{ LGPL License. } +{ } +{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } +{ } +{**************************************************************************************************} +{ } +{ This file defines various generic compiler directives used in different libraries, e.g. in the } +{ JEDI Code Library (JCL) and JEDI Visual Component Library Library (JVCL). The directives in } +{ this file are of generic nature and consist mostly of mappings from the VERXXX directives } +{ defined by Delphi, C++ Builder and FPC to friendly names such as DELPHI5 and } +{ SUPPORTS_WIDESTRING. These friendly names are subsequently used in the libraries to test for } +{ compiler versions and/or whether the compiler supports certain features (such as widestrings or } +{ 64 bit integers. The libraries provide an additional, library specific, include file. For the } +{ JCL e.g. this is jcl.inc. These files should be included in source files instead of this file } +{ (which is pulled in automatically). } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} (* @@ -136,6 +135,8 @@ DELPHI2006 Alias for DELPHI10 DELPHI11 Defined when compiling with Delphi 2007 for Win32 DELPHI2007 Alias for DELPHI11 + DELPHI12 Defined when compiling with Delphi for Win32 2009 + DELPHI2009 Alias for DELPHI12 DELPHI1_UP Defined when compiling with Delphi 1 or higher DELPHI2_UP Defined when compiling with Delphi 2 or higher DELPHI3_UP Defined when compiling with Delphi 3 or higher @@ -150,6 +151,8 @@ DELPHI2006_UP Alias for DELPHI10_UP DELPHI11_UP Defined when compiling with Delphi 2007 for Win32 or higher DELPHI2007_UP Alias for DELPHI11_UP + DELPHI12_UP Defined when compiling with Delphi for Win32 2009 or higher + DELPHI2009_UP Alias for DELPHI12_UP - Kylix Versions @@ -183,6 +186,7 @@ DELPHICOMPILER9 Defined when compiling with Delphi 2005 DELPHICOMPILER10 Defined when compiling with Delphi Personality of BDS 4.0 DELPHICOMPILER11 Defined when compiling with Delphi 2007 for Win32 + DELPHICOMPILER12 Defined when compiling with Delphi Personality of BDS 6.0 DELPHICOMPILER1_UP Defined when compiling with Delphi 1 or higher DELPHICOMPILER2_UP Defined when compiling with Delphi 2 or higher DELPHICOMPILER3_UP Defined when compiling with Delphi 3 or higher @@ -194,6 +198,7 @@ DELPHICOMPILER9_UP Defined when compiling with Delphi 2005 DELPHICOMPILER10_UP Defined when compiling with Delphi Personality of BDS 4.0 or higher DELPHICOMPILER11_UP Defined when compiling with Delphi 2007 for Win32 or higher + DELPHICOMPILER12_UP Defined when compiling with Delphi Personality of BDS 6.0 or higher - C++ Builder Versions @@ -211,6 +216,7 @@ BCB6 Defined when compiling with C++ Builder 6 BCB10 Defined when compiling with C++ Builder Personality of BDS 4.0 (also known as C++Builder 2006) BCB11 Defined when compiling with C++ Builder Personality of RAD Studio 2007 (also known as C++Builder 2007) + BCB12 Defined when compiling with C++ Builder Personality of RAD Studio 2009 (also known as C++Builder 2009) BCB1_UP Defined when compiling with C++ Builder 1 or higher BCB3_UP Defined when compiling with C++ Builder 3 or higher BCB4_UP Defined when compiling with C++ Builder 4 or higher @@ -218,9 +224,10 @@ BCB6_UP Defined when compiling with C++ Builder 6 or higher BCB10_UP Defined when compiling with C++ Builder Personality of BDS 4.0 or higher BCB11_UP Defined when compiling with C++ Builder Personality of RAD Studio 2007 or higher + BCB12_UP Defined when compiling with C++ Builder Personality of RAD Studio 2009 or higher -- Borland Developer Studio Versions +- CodeGear RAD Studio / Borland Developer Studio Versions The following directives are direct mappings from the VERXXX directives to a friendly name of the associated IDE. These directives are only defined if @@ -236,10 +243,12 @@ BDS3 Defined when compiling with BDS 3.0 (Delphi 2005) BDS4 Defined when compiling with BDS 4.0 (Borland Developer Studio 2006) BDS5 Defined when compiling with BDS 5.0 (CodeGear RAD Studio 2007) + BDS6 Defined when compiling with BDS 6.0 (CodeGear RAD Studio 2009) BDS2_UP Defined when compiling with BDS 2.0 or higher BDS3_UP Defined when compiling with BDS 3.0 or higher BDS4_UP Defined when compiling with BDS 4.0 or higher BDS5_UP Defined when compiling with BDS 5.0 or higher + BDS6_UP Defined when compiling with BDS 6.0 or higher - Compiler Versions @@ -263,6 +272,7 @@ COMPILER9 Defined when compiling with Delphi 9 COMPILER10 Defined when compiling with Delphi or C++ Builder Personalities of BDS 4.0 COMPILER11 Defined when compiling with Delphi 2007 for Win32 + COMPILER12 Defined when compiling with Delphi or C++ Builder Personalities of BDS 6.0 COMPILER1_UP Defined when compiling with Delphi 1 or higher COMPILER2_UP Defined when compiling with Delphi 2 or C++ Builder 1 or higher COMPILER3_UP Defined when compiling with Delphi 3 or higher @@ -275,6 +285,7 @@ COMPILER9_UP Defined when compiling with Delphi Personalities of BDS 3.0 COMPILER10_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 4.0 or higher COMPILER11_UP Defined when compiling with Delphi 2007 for Win32 or higher + COMPILER12_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 6.0 or higher - RTL Versions @@ -303,6 +314,8 @@ RTL170_UP Defined when compiling with Delphi Personalities of BDS 3.0 or higher RTL180_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 4.0 or higher RTL185_UP Defined when compiling with Delphi 2007 for Win32 or higher + RTL190_UP Defined when compiling with Delphi.NET of BDS 5.0 or later + RTL200_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 6.0 or later - CLR Versions @@ -363,7 +376,7 @@ SUPPORTS_STRICT Compiler supports strict keyword (D9.NET, D10+) SUPPORTS_STATIC Compiler supports static keyword (D9.NET, D10+) SUPPORTS_FINAL Compiler supports final keyword (D9.NET, D10+) - SUPPORTS_GENERICS Compiler supports generic implementations (D11.net) + SUPPORTS_GENERICS Compiler supports generic implementations (D11.net, D12+) ACCEPT_DEPRECATED Compiler supports or ignores the deprecated directive (D6+/BCB6+/FPC) ACCEPT_PLATFORM Compiler supports or ignores the platform directive (D6+/BCB6+/FPC) ACCEPT_LIBRARY Compiler supports or ignores the library directive (D6+/BCB6+) @@ -384,8 +397,10 @@ HAS_UNIT_STRUTILS Unit StrUtils exists (D6+/BCB6+/FPC) HAS_UNIT_DATEUTILS Unit DateUtils exists (D6+/BCB6+/FPC) HAS_UNIT_CONTNRS Unit contnrs exists (D6+/BCB6+/FPC) + HAS_UNIT_ANSISTRINGS Unit AnsiStrings exists (D12+) XPLATFORM_RTL The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) - SUPPORTS_UNICODE Compiler supports unicode strings + SUPPORTS_UNICODE string type is aliased to an unicode string (WideString or UnicodeString) (DX.net, D12+) + SUPPORTS_UNICODE_STRING Compiler supports UnicodeString (D12+) - Compiler Settings @@ -607,14 +622,44 @@ {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF VER190} + {$IFDEF VER200} // RAD Studio 2009 + {$DEFINE BDS} + {$DEFINE BDS6} + {$IFDEF CLR} + {$DEFINE CLR20} + {$ENDIF CLR} + {$DEFINE COMPILER12} + {$IFDEF BCB} + {$DEFINE BCB12} + {$ELSE} + {$DEFINE DELPHI12} + {$DEFINE DELPHI2009} // synonym to DELPHI12 + {$DEFINE DELPHICOMPILER12} + {$ENDIF BCB} + {$IFDEF CLR} + {$DEFINE RTL190_UP} + {$ELSE} + {$DEFINE RTL200_UP} + {$ENDIF} + {$UNDEF UNKNOWN_COMPILER_VERSION} + {$ENDIF VER200} + {$IFDEF UNKNOWN_COMPILER_VERSION} // adjust for newer version (always use latest version) {$DEFINE BDS} - {$DEFINE BDS5} - {$DEFINE COMPILER11} - {$DEFINE DELPHI11} - {$DEFINE DELPHI2007} // synonym to DELPHI11 - {$DEFINE DELPHICOMPILER11} - {$DEFINE RTL185_UP} + {$DEFINE BDS6} + {$DEFINE COMPILER12} + {$IFDEF BCB} + {$DEFINE BCB12} + {$ELSE} + {$DEFINE DELPHI12} + {$DEFINE DELPHI2009} // synonym to DELPHI12 + {$DEFINE DELPHICOMPILER12} + {$ENDIF BCB} + {$IFDEF CLR} + {$DEFINE RTL190_UP} + {$ELSE} + {$DEFINE RTL200_UP} + {$ENDIF} {$UNDEF UNKNOWN_COMPILER_VERSION} {$ENDIF} @@ -634,6 +679,7 @@ { DELPHIX_UP from DELPHIX mappings } {------------------------------------------------------------------------------} +{$IFDEF DELPHI12} {$DEFINE DELPHI12_UP} {$ENDIF} {$IFDEF DELPHI11} {$DEFINE DELPHI11_UP} {$ENDIF} {$IFDEF DELPHI10} {$DEFINE DELPHI10_UP} {$ENDIF} {$IFDEF DELPHI9} {$DEFINE DELPHI9_UP} {$ENDIF} @@ -650,6 +696,11 @@ { DELPHIX_UP from DELPHIX_UP mappings } {------------------------------------------------------------------------------} +{$IFDEF DELPHI12_UP} + {$DEFINE DELPHI2009_UP} // synonym to DELPHI12_UP + {$DEFINE DELPHI11_UP} +{$ENDIF} + {$IFDEF DELPHI11_UP} {$DEFINE DELPHI2007_UP} // synonym to DELPHI11_UP {$DEFINE DELPHI10_UP} @@ -677,6 +728,7 @@ { BCBX_UP from BCBX mappings } {------------------------------------------------------------------------------} +{$IFDEF BCB12} {$DEFINE BCB12_UP} {$ENDIF} {$IFDEF BCB11} {$DEFINE BCB11_UP} {$ENDIF} {$IFDEF BCB10} {$DEFINE BCB10_UP} {$ENDIF} {$IFDEF BCB6} {$DEFINE BCB6_UP} {$ENDIF} @@ -689,6 +741,7 @@ { BCBX_UP from BCBX_UP mappings } {------------------------------------------------------------------------------} +{$IFDEF BCB12_UP} {$DEFINE BCB11_UP} {$ENDIF} {$IFDEF BCB11_UP} {$DEFINE BCB10_UP} {$ENDIF} {$IFDEF BCB10_UP} {$DEFINE BCB6_UP} {$ENDIF} {$IFDEF BCB6_UP} {$DEFINE BCB5_UP} {$ENDIF} @@ -700,6 +753,7 @@ { BDSX_UP from BDSX mappings } {------------------------------------------------------------------------------} +{$IFDEF BDS6} {$DEFINE BDS6_UP} {$ENDIF} {$IFDEF BDS5} {$DEFINE BDS5_UP} {$ENDIF} {$IFDEF BDS4} {$DEFINE BDS4_UP} {$ENDIF} {$IFDEF BDS3} {$DEFINE BDS3_UP} {$ENDIF} @@ -709,6 +763,7 @@ { BDSX_UP from BDSX_UP mappings } {------------------------------------------------------------------------------} +{$IFDEF BDS6_UP} {$DEFINE BDS5_UP} {$ENDIF} {$IFDEF BDS5_UP} {$DEFINE BDS4_UP} {$ENDIF} {$IFDEF BDS4_UP} {$DEFINE BDS3_UP} {$ENDIF} {$IFDEF BDS3_UP} {$DEFINE BDS2_UP} {$ENDIF} @@ -717,6 +772,7 @@ { DELPHICOMPILERX_UP from DELPHICOMPILERX mappings } {------------------------------------------------------------------------------} +{$IFDEF DELPHICOMPILER12} {$DEFINE DELPHICOMPILER12_UP} {$ENDIF} {$IFDEF DELPHICOMPILER11} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} {$IFDEF DELPHICOMPILER10} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} {$IFDEF DELPHICOMPILER9} {$DEFINE DELPHICOMPILER9_UP} {$ENDIF} @@ -733,6 +789,7 @@ { DELPHICOMPILERX_UP from DELPHICOMPILERX_UP mappings } {------------------------------------------------------------------------------} +{$IFDEF DELPHICOMPILER12_UP} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} {$IFDEF DELPHICOMPILER11_UP} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} {$IFDEF DELPHICOMPILER10_UP} {$DEFINE DELPHICOMPILER9_UP} {$ENDIF} {$IFDEF DELPHICOMPILER9_UP} {$DEFINE DELPHICOMPILER8_UP} {$ENDIF} @@ -749,6 +806,7 @@ { COMPILERX_UP from COMPILERX mappings } {------------------------------------------------------------------------------} +{$IFDEF COMPILER12} {$DEFINE COMPILER12_UP} {$ENDIF} {$IFDEF COMPILER11} {$DEFINE COMPILER11_UP} {$ENDIF} {$IFDEF COMPILER10} {$DEFINE COMPILER10_UP} {$ENDIF} {$IFDEF COMPILER9} {$DEFINE COMPILER9_UP} {$ENDIF} @@ -766,6 +824,7 @@ { COMPILERX_UP from COMPILERX_UP mappings } {------------------------------------------------------------------------------} +{$IFDEF COMPILER12_UP} {$DEFINE COMPILER11_UP} {$ENDIF} {$IFDEF COMPILER11_UP} {$DEFINE COMPILER10_UP} {$ENDIF} {$IFDEF COMPILER10_UP} {$DEFINE COMPILER9_UP} {$ENDIF} {$IFDEF COMPILER9_UP} {$DEFINE COMPILER8_UP} {$ENDIF} @@ -782,6 +841,7 @@ { RTLX_UP from RTLX_UP mappings } {------------------------------------------------------------------------------} +{$IFDEF RTL200_UP} {$DEFINE RTL190_UP} {$ENDIF} {$IFDEF RTL190_UP} {$DEFINE RTL185_UP} {$ENDIF} {$IFDEF RTL185_UP} {$DEFINE RTL180_UP} {$ENDIF} {$IFDEF RTL180_UP} {$DEFINE RTL170_UP} {$ENDIF} @@ -932,15 +992,9 @@ {$ENDIF} {$ENDIF FPC} -{$IFDEF CONDITIONALEXPRESSIONS} - {$IFDEF CLR} - {$DEFINE SUPPORTS_UNICODE} - {$ELSE} - {$IFDEF COMPILER12_UP} - {$DEFINE SUPPORTS_UNICODE} - {$ENDIF COMPILER12_UP} - {$ENDIF CLR} -{$ENDIF CONDITIONALEXPRESSIONS} +{$IFDEF CLR} + {$DEFINE SUPPORTS_UNICODE} +{$ENDIF CLR} {$IFDEF COMPILER1_UP} {$DEFINE SUPPORTS_CONSTPARAMS} @@ -1033,6 +1087,15 @@ {$ENDIF CLR} {$ENDIF COMPILER11_UP} +{$IFDEF COMPILER12_UP} + {.$DEFINE SUPPORTS_GENERICS} + {$DEFINE HAS_UNIT_ANSISTRINGS} + {$IFNDEF CLR} + {$DEFINE SUPPORTS_UNICODE} + {$DEFINE SUPPORTS_UNICODE_STRING} + {$ENDIF CLR} +{$ENDIF COMPILER12_UP} + {$IFDEF RTL140_UP} {$IFDEF LINUX} {$DEFINE HAS_UNIT_LIBC} Modified: trunk/jvcl/common/jvcl.inc =================================================================== --- trunk/jvcl/common/jvcl.inc 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/common/jvcl.inc 2008-09-09 20:29:49 UTC (rev 11890) @@ -104,6 +104,11 @@ {$DEFINE JVCL_CONFIGURED} {$ENDIF DELPHI11} {-----------------------------------------------------------------------------} +{$IFDEF DELPHI12} + {$I jvcld12.inc} + {$DEFINE JVCL_CONFIGURED} +{$ENDIF DELPHI12} +{-----------------------------------------------------------------------------} { C++Builder } {-----------------------------------------------------------------------------} {$IFDEF BCB5} @@ -126,6 +131,11 @@ {$DEFINE JVCL_CONFIGURED} {$ENDIF BCB11} {-----------------------------------------------------------------------------} +{$IFDEF BCB12} + {$I jvcld12.inc} // same include file for BDS based C++ + {$DEFINE JVCL_CONFIGURED} +{$ENDIF BCB12} +{-----------------------------------------------------------------------------} { Default configuration } {-----------------------------------------------------------------------------} {$ELSE} Modified: trunk/jvcl/common/jvclbase.inc =================================================================== --- trunk/jvcl/common/jvclbase.inc 2008-09-09 20:13:21 UTC (rev 11889) +++ trunk/jvcl/common/jvclbase.inc 2008-09-09 20:29:49 UTC (rev 11890) @@ -95,22 +95,22 @@ { Activates SM-Export Wrapper Components (in DBActions) For further informations have a look at http://www.scalabium.com ATTENTION : -BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE +BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE SMEXPORT PACKAGE FROM AUTOMATIC COMPILE NO MANUAL COMPILE } {.$DEFINE USE_3RDPARTY_SMEXPORT} { Activates SM-Import Wrapper Components (in DBActions) -For further informations have a look at http://www.scalabium.com -ATTENTION : -BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE +For further informations have a look at http://www.scalabium.com +ATTENTION : +BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE SMIMPORT PACKAGE FROM AUTOMATIC COMPILE NO MANUAL COMPILE } {.$DEFINE USE_3RDPARTY_SMIMPORT} -{ Activates the DevExpress cxEditor-Controls +{ Activates Support for the DevExpress cxEditor-Controls For further informations have a look at http://www.devexpress.com } {.$DEFINE USE_3RDPARTY_DEVEXPRESS_CXEDITOR} -{ Activates the DevExpress cxEditor-Controls +{ Activates Support for the DevExpress cxGrid-Controls For further informations have a look at http://www.devexpress.com } {.$DEFINE USE_3RDPARTY_DEVEXPRESS_CXGRID} @@ -135,18 +135,18 @@ For further informations have a look at http://www.indyproject.org } {.$DEFINE USE_3RDPARTY_INDY10} -{ Activates the ICS-Components (Internet component suite -For further informations have a look at http://www.overbyte.be/ -ATTENTION : -BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE +{ Activates Support for the ICS-Components (Internet component suite +For further informations have a look at http://www.overbyte.be/ +ATTENTION : +BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE ICS* PACKAGE FROM AUTOMATIC COMPILE TO MANUAL COMPILE } {.$DEFINE USE_3RDPARTY_ICS} -{ Activates Direct Oracle Access Components +{ Activates Support for Direct Oracle Access Components For further informations have a look at http://www.allroundautomations.com } {.$DEFINE USE_3RDPARTY_DOA} -{ Activates the CoreLabs VCL Oracle Data Access Components +{ Activates Support for the CoreLabs VCL Oracle Data Access Components For further informations have a look at http://www.crlab.com } {.$DEFINE USE_3RDPARTY_CORELAB_ODAC} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2008-09-09 20:33:05
|
Revision: 11891 http://jvcl.svn.sourceforge.net/jvcl/?rev=11891&view=rev Author: obones Date: 2008-09-09 20:33:00 +0000 (Tue, 09 Sep 2008) Log Message: ----------- Changes required for D2009/C2009 support, merged from the 3.35 branch Modified Paths: -------------- trunk/jvcl/design/JvCsvDataEditor.pas trunk/jvcl/design/JvCsvDataForm.dfm trunk/jvcl/design/JvCsvDataForm.pas trunk/jvcl/design/JvDBGridEditors.pas trunk/jvcl/design/JvDBMemDatasetEditor.pas trunk/jvcl/design/JvDataProviderDesignerForm.dfm trunk/jvcl/design/JvDataProviderItemDesign.pas trunk/jvcl/design/JvFormPropertiesForm.pas trunk/jvcl/design/JvFullColorSpacesEditors.pas trunk/jvcl/design/JvID3v2DefineForm.pas trunk/jvcl/design/JvID3v2EditorForm.pas trunk/jvcl/design/JvMMReg.pas trunk/jvcl/design/JvPluginWizard.pas trunk/jvcl/design/JvSegmentedLEDDisplayMappingForm.pas trunk/jvcl/design/JvSpeedbarForm.pas trunk/jvcl/design/JvValidatorsEditorForm.dfm trunk/jvcl/design/JvValidatorsEditorForm.pas trunk/jvcl/design/JvgCompDescription.pas trunk/jvcl/devtools/InstallerTests/Installer/Configurations/ConfigOptions.pas trunk/jvcl/devtools/PackagesGenerator/CmdLineUtils.pas trunk/jvcl/devtools/PackagesGenerator/ConditionParser.pas trunk/jvcl/devtools/PackagesGenerator/FileUtils.pas trunk/jvcl/devtools/PackagesGenerator/GenerateUtils.pas trunk/jvcl/devtools/bin/pgEdit.xml trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo.dpr trunk/jvcl/examples/JvCSVDataSet/CsvDataSourceDemoFm.dfm trunk/jvcl/examples/JvCSVDataSet/CsvDataSourceDemoFm.pas trunk/jvcl/examples/JvChartDemo/JvChartDemoFm.dfm Added Paths: ----------- trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo_Unicode.dpr trunk/jvcl/examples/JvCSVDataSet/CsvDataSourceUnicodeDemoFm.dfm trunk/jvcl/examples/JvCSVDataSet/CsvDataSourceUnicodeDemoFm.pas trunk/jvcl/examples/JvCSVDataSet/PhoneListUnicode.csv Modified: trunk/jvcl/design/JvCsvDataEditor.pas =================================================================== --- trunk/jvcl/design/JvCsvDataEditor.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvCsvDataEditor.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -81,7 +81,7 @@ Result := inherited GetAttributes + [paDialog]; end; -function DoCsvDefDialog(OldValue: string; ASeparator: Char): string; +function DoCsvDefDialog(OldValue: string; ASeparator: AnsiChar): string; var WindowList: Pointer; begin @@ -110,7 +110,7 @@ S1 := GetValue; if S1 = '' then S1 := Component.GetCsvHeader; - S2 := DoCsvDefDialog(S1, TJvCsvDataSet(Component).Separator); + S2 := DoCsvDefDialog(S1, TJvCsvDataSet(Component).Separator); {AnsiChar} //if S1 <> S2 then begin // on change of csv value. SetValue(S2); Modified: trunk/jvcl/design/JvCsvDataForm.dfm =================================================================== --- trunk/jvcl/design/JvCsvDataForm.dfm 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvCsvDataForm.dfm 2008-09-09 20:33:00 UTC (rev 11891) @@ -1,11 +1,11 @@ object JvCsvDefStrDialog: TJvCsvDefStrDialog Left = 382 Top = 246 + Caption = 'JvCsvDataSet.CSVFieldDef Editor' + ClientHeight = 381 ClientWidth = 434 - ClientHeight = 297 - Caption = 'JvCsvDataSet.CSVFieldDef Editor' Color = clBtnFace - Constraints.MinHeight = 333 + Constraints.MinHeight = 331 Constraints.MinWidth = 442 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -26,11 +26,14 @@ OldCreateOrder = False Position = poScreenCenter OnCreate = FormCreate + DesignSize = ( + 434 + 381) PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel - Left = 24 - Top = 228 + Left = 8 + Top = 313 Width = 66 Height = 13 Anchors = [akLeft, akBottom] @@ -52,7 +55,7 @@ end object SpeedButtonAdd: TSpeedButton Left = 8 - Top = 196 + Top = 262 Width = 101 Height = 22 Anchors = [akLeft, akBottom] @@ -75,7 +78,7 @@ end object SpeedButtonDel: TSpeedButton Left = 336 - Top = 196 + Top = 280 Width = 85 Height = 22 Anchors = [akLeft, akBottom] @@ -84,7 +87,7 @@ end object SpeedButtonMod: TSpeedButton Left = 128 - Top = 196 + Top = 262 Width = 89 Height = 22 Anchors = [akLeft, akBottom] @@ -123,12 +126,12 @@ Left = 228 Top = 4 Width = 2 - Height = 213 + Height = 297 Anchors = [akLeft, akTop, akBottom] end object SpeedButtonMoveFieldUp: TSpeedButton - Left = 240 - Top = 196 + Left = 244 + Top = 260 Width = 23 Height = 22 Anchors = [akLeft, akBottom] @@ -149,8 +152,8 @@ OnClick = SpeedButtonMoveFieldUpClick end object SpeedButtonMoveFieldDown: TSpeedButton - Left = 264 - Top = 196 + Left = 273 + Top = 260 Width = 23 Height = 22 Anchors = [akLeft, akBottom] @@ -172,7 +175,7 @@ end object LabelKey: TLabel Left = 296 - Top = 204 + Top = 288 Width = 40 Height = 21 Anchors = [akLeft, akBottom] @@ -180,7 +183,7 @@ end object EditCsvStr: TEdit Left = 96 - Top = 226 + Top = 310 Width = 321 Height = 31 TabStop = False @@ -192,7 +195,7 @@ end object ButtonOk: TButton Left = 268 - Top = 264 + Top = 348 Width = 75 Height = 25 Anchors = [akLeft, akBottom] @@ -202,7 +205,7 @@ end object ButtonCancel: TButton Left = 352 - Top = 264 + Top = 348 Width = 75 Height = 25 Anchors = [akLeft, akBottom] @@ -215,7 +218,7 @@ Left = 8 Top = 64 Width = 209 - Height = 129 + Height = 184 Anchors = [akLeft, akTop, akBottom] ItemHeight = 13 Items.Strings = ( @@ -227,7 +230,8 @@ 'Hex Timestamp (GMTTIME Hex)' 'Hex LocalTime (LOCALTIME Hex)' 'Date (YYYY/MM/DD)' - 'Time (HH:MM:SS)') + 'Time (HH:MM:SS)' + 'WideString (Encoded as UTF8 in CSV)') TabOrder = 4 OnClick = ListBoxFieldTypesClick end @@ -249,7 +253,7 @@ Left = 240 Top = 24 Width = 181 - Height = 169 + Height = 224 Anchors = [akLeft, akTop, akBottom] ItemHeight = 13 TabOrder = 2 Modified: trunk/jvcl/design/JvCsvDataForm.pas =================================================================== --- trunk/jvcl/design/JvCsvDataForm.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvCsvDataForm.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -1,4 +1,6 @@ {----------------------------------------------------------------------------- + JVCSVDATASET - TIBURON VERSION 3.5 + The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -38,7 +40,7 @@ JvTypes, JvComponent; const - JvCsvAsciiTypeArrayLimit=8; // Array Size constant for TJvCsvColumnFlag to Ascii Character mapping. + JvCsvAsciiTypeArrayLimit=9; // Array Size constant for TJvCsvColumnFlag to Ascii Character mapping. type TJvCsvDefStrDialog = class(TJvForm) @@ -75,10 +77,10 @@ Shift: TShiftState); private FUpdating: Boolean; - FOriginalCsvStr: string; - FSeparator: Char; - FTypeChars: array [0..JvCsvAsciiTypeArrayLimit] of Char; - FFieldTypeCh: Char; + FOriginalCsvStr: String; + FSeparator: AnsiChar; + FTypeChars: array [0..JvCsvAsciiTypeArrayLimit] of AnsiChar; + FFieldTypeCh: AnsiChar; procedure ItemChange; function MakeString: string; // take changes, put back into string format procedure UpdateCsvStr; @@ -87,7 +89,7 @@ procedure SetCsvStr(ACsvStr: string); function GetCsvStr: string; public - property Separator: Char read FSeparator write FSeparator; + property Separator: AnsiChar read FSeparator write FSeparator; property CsvStr: string read GetCsvStr write SetCsvStr; end; @@ -111,7 +113,7 @@ if S = '' then S := ListBoxFields.Items[I] else - S := S + FSeparator + ListBoxFields.Items[I]; + S := S + Char(FSeparator) + ListBoxFields.Items[I]; EditCsvStr.Text := S; end; @@ -131,12 +133,12 @@ LabelFieldLen.Enabled := False; end; -type - TStringArray = array of string; +//type +// TStringArray = array of string; procedure TJvCsvDefStrDialog.ItemChange; var - SubFields: TStringArray; + SubFields: Array of string; I, Count: Integer; SelectedText: string; FieldLength: Integer; @@ -146,7 +148,7 @@ if ListBoxFields.ItemIndex >= 0 then begin SelectedText := ListBoxFields.Items[ListBoxFields.ItemIndex]; - Count := StrSplit(SelectedText, ':', Chr(0), SubFields, 2); // Look for Colon + Count := JvStrSplit(SelectedText, ':', Chr(0), SubFields, 2); // Look for Colon end else begin @@ -157,22 +159,22 @@ try if Count < 2 then begin { no colon! } - { defaults to string, length DEFAULT_CSV_STR_FIELD} + { defaults to string, length JvCsv_DEFAULT_CSV_STR_FIELD} EditFieldName.Text := SelectedText; FFieldTypeCh := '$'; - FieldLength := DEFAULT_CSV_STR_FIELD; + FieldLength := JvCsv_DEFAULT_CSV_STR_FIELD; end else begin - EditFieldName.Text := SubFields[0]; - FFieldTypeCh := SubFields[1][1]; - FieldLength := StrToIntDef(Copy(SubFields[1], 2, Length(SubFields[1])), DEFAULT_CSV_STR_FIELD); + EditFieldName.Text := string(SubFields[0]); + FFieldTypeCh := AnsiChar(SubFields[1][1]); + FieldLength := StrToIntDef(Copy(string(SubFields[1]), 2, Length(SubFields[1])), JvCsv_DEFAULT_CSV_STR_FIELD); end; except { clear it if we have a problem } EditFieldName.Text := ''; FFieldTypeCh := '$'; - FieldLength := DEFAULT_CSV_STR_FIELD; + FieldLength := JvCsv_DEFAULT_CSV_STR_FIELD; end; if FFieldTypeCh = '$' then LengthEnabled(FieldLength) @@ -211,12 +213,12 @@ begin FOriginalCsvStr := ACsvStr; - FieldDefStr := UpperCase(StrStrip(ACsvStr)); + FieldDefStr := UpperCase(JvStrStrip(ACsvStr)); - SetLength(Fields, MAXCOLUMNS); { MAXCOLUMNS is a constant from CsvDataSource.pas } + SetLength(Fields, JvCsv_MAXCOLUMNS); { MAXCOLUMNS is a constant from CsvDataSource.pas } EditCsvStr.Text := ACsvStr; if Length(FieldDefStr) > 0 then - Count := StrSplit(FieldDefStr, FSeparator, Chr(0), Fields, MAXCOLUMNS) + Count := JvStrSplit(FieldDefStr, Char(FSeparator), Char(0), Fields, JvCsv_MAXCOLUMNS) else Count := 0; @@ -225,7 +227,7 @@ ListBoxFields.Items.Clear; if Count > 0 then for I := 0 to Count - 1 do - ListBoxFields.Items.Add(StripQuotes(Fields[I])); + ListBoxFields.Items.Add(StripQuotes(string(Fields[I]))); finally ListBoxFields.ItemIndex := 0; ItemChange; @@ -271,6 +273,7 @@ FTypeChars[6] := '^'; // Hex LocalTime FTypeChars[7] := '/'; // Ascii Date FTypeChars[8] := '*'; + FTypeChars[9] := '~'; // New September 2008 (WideString field to UTF8) { $ = string (ftString) - also used if no character is given. % = whole Integer value (ftInteger) @@ -279,7 +282,7 @@ # = Hex-Ascii Timestamp (A93F38C9) seconds since Jan 1, 1970 GMT (Component Specific) ^ = Hex-Ascii Timestamp (A93F38CP) corrected to local timezone (Component Specific) ! = Boolean Field (0 in csv file=False, not 0 = True, blank = NULL) - + ~ = UTF8 encoded WideString field. } end; @@ -302,22 +305,22 @@ if ListBoxFieldTypes.ItemIndex < 0 then Exit; - S := StrStrip(UpperCase(EditFieldName.Text)); + S := JvStrStrip(UpperCase(EditFieldName.Text)); if S <> EditFieldName.Text then EditFieldName.Text := S; - if not ValidIdentifier(PChar(S)) then + if not JvValidIdentifier(S) then // in JvCsvParse.pas Exit; FFieldTypeCh := FTypeChars[ListBoxFieldTypes.ItemIndex]; if FFieldTypeCh = '$' then begin - FieldLength := StrToIntDef(EditFieldLength.Text, DEFAULT_CSV_STR_FIELD); - if FieldLength <> DEFAULT_CSV_STR_FIELD then + FieldLength := StrToIntDef(EditFieldLength.Text, JvCsv_DEFAULT_CSV_STR_FIELD); + if FieldLength <> JvCsv_DEFAULT_CSV_STR_FIELD then S := S + ':$' + IntToStr(FieldLength); end else - S := S + ':' + FFieldTypeCh; + S := S + ':' + Char(FFieldTypeCh); Result := S; end; @@ -350,7 +353,7 @@ end; // XXX Check Validity and Uniqueness before adding. F := FieldNameOnly(S); - if not ValidIdentifier(PChar(F)) then + if not JvValidIdentifier(F) then // in JvCsvParse.pas begin MessageBox(Self.Handle, PChar(Format(RsFieldNameIsNotAValidIdentifier, [S])), PChar(RsAddFailed), MB_OK or MB_ICONERROR); @@ -395,7 +398,7 @@ end; // XXX Check Validity and Uniqueness before adding. F := FieldNameOnly(S); - if not ValidIdentifier(PChar(F)) then + if not JvValidIdentifier(F) then // in JvCsvParse.pas begin MessageBox(Self.Handle, PChar(Format(RsFieldNameIsNotAValidIdentifier, [S])), PChar(RsUpdateFailed), MB_OK or MB_ICONERROR); @@ -433,7 +436,7 @@ try FUpdating := True; if ListBoxFieldTypes.ItemIndex = 1 then - LengthEnabled(DEFAULT_CSV_STR_FIELD) + LengthEnabled(JvCsv_DEFAULT_CSV_STR_FIELD) else LengthDisabled; ActiveControl := EditFieldName; Modified: trunk/jvcl/design/JvDBGridEditors.pas =================================================================== --- trunk/jvcl/design/JvDBGridEditors.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvDBGridEditors.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -94,7 +94,7 @@ function TJvDBGridControlsProperty.GetValue: string; begin - Result := '(' + GetPropType^.Name + ')'; + Result := '(' + {$IFDEF RTL200_UP}UTF8ToString{$ENDIF RTL200_UP}(GetPropType^.Name) + ')'; end; end. Modified: trunk/jvcl/design/JvDBMemDatasetEditor.pas =================================================================== --- trunk/jvcl/design/JvDBMemDatasetEditor.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvDBMemDatasetEditor.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -59,6 +59,9 @@ uses DsnDBCst, DSDesign, Dialogs, + {$IFNDEF COMPILER12_UP} + JvJCLUtils, + {$ENDIF ~COMPILER12_UP} JvJVCLUtils, JvMemoryDataSet, JvSelectDataSetForm, JvConsts, JvDsgnConsts; //=== { TJvAbstractMemDataSetEditor } ======================================== @@ -109,7 +112,7 @@ begin Temp := Field.FieldName; for I := Length(Temp) downto 1 do - if not (Temp[I] in IdentifierSymbols) then + if not CharInSet(Temp[I], IdentifierSymbols) then System.Delete(Temp, I, 1); if (Temp = '') or not IsValidIdent(Temp) then begin Modified: trunk/jvcl/design/JvDataProviderDesignerForm.dfm =================================================================== --- trunk/jvcl/design/JvDataProviderDesignerForm.dfm 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvDataProviderDesignerForm.dfm 2008-09-09 20:33:00 UTC (rev 11891) @@ -15,14 +15,11 @@ Align = alTop AutoSize = True TabOrder = 0 - ExplicitWidth = 621 inherited spToolbar: TSplitter Width = 621 - ExplicitWidth = 621 end inherited tbrToolbar: TToolBar Width = 621 - ExplicitWidth = 621 end inherited aiToolbar: TActionList inherited aiAddItem: TAction @@ -49,15 +46,10 @@ Height = 222 Align = alClient TabOrder = 1 - ExplicitTop = 48 - ExplicitWidth = 621 - ExplicitHeight = 222 inherited lvProvider: TListView Width = 621 Height = 222 PopupMenu = pmProviderEditor - ExplicitWidth = 621 - ExplicitHeight = 222 end end object pmProviderEditor: TPopupMenu Modified: trunk/jvcl/design/JvDataProviderItemDesign.pas =================================================================== --- trunk/jvcl/design/JvDataProviderItemDesign.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvDataProviderItemDesign.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -292,7 +292,7 @@ function VMTTypeInfoFromClass(const AClass: TClass): PPTypeInfo; var - P: PChar; + P: {$IFDEF COMPILER12_UP}PByte{$ELSE}PChar{$ENDIF COMPILER12_UP}; begin P := Pointer(AClass); Inc(P, vmtTypeInfo); // Now pointing to TypeInfo of the VMT table. @@ -783,6 +783,7 @@ destProp.GetProc := @TBaseItemDsgn.GetFloatProp; destProp.SetProc := @TBaseItemDsgn.SetFloatProp; end; + {$IFDEF UNICODE} tkUString, {$ENDIF} tkString, tkLString: begin destProp.GetProc := @TBaseItemDsgn.GetStrProp; Modified: trunk/jvcl/design/JvFormPropertiesForm.pas =================================================================== --- trunk/jvcl/design/JvFormPropertiesForm.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvFormPropertiesForm.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -382,7 +382,7 @@ try StrList.Sorted := True; for J := 0 to List.Count - 1 do - StrList.Add(List.Items[J]^.Name); + StrList.Add({$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(List.Items[J]^.Name)); ComponentsList.Items.AddObject(C.Name, StrList); except StrList.Free; Modified: trunk/jvcl/design/JvFullColorSpacesEditors.pas =================================================================== --- trunk/jvcl/design/JvFullColorSpacesEditors.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvFullColorSpacesEditors.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -296,9 +296,9 @@ with ColorSpaceManager do if IsColorProperty then - Result := GetPropType^.Name + Result := {$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(GetPropType^.Name) else - Result := Format('%s [%s]', [GetPropType^.Name, ColorSpace[GetColorSpaceID(Value)].ShortName]); + Result := Format('%s [%s]', [{$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(GetPropType^.Name), ColorSpace[GetColorSpaceID(Value)].ShortName]); end; procedure TJvFullColorProperty.GetValues(Proc: TGetStrProc); @@ -634,7 +634,7 @@ begin LTypInfo := AClass.ClassInfo; if LTypInfo <> nil then - Proc(GetTypeData(LTypInfo).UnitName); + Proc({$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(GetTypeData(LTypInfo).UnitName)); end; procedure TJvFullColorSelection.RequiresUnits(Proc: TGetStrProc); Modified: trunk/jvcl/design/JvID3v2DefineForm.pas =================================================================== --- trunk/jvcl/design/JvID3v2DefineForm.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvID3v2DefineForm.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -53,13 +53,13 @@ procedure SetController(const Value: TJvID3Controller); function GetFrameClass: TJvID3FrameClass; function GetFrameID: TJvID3FrameID; - function GetFrameIDStr: string; + function GetFrameIDStr: AnsiString; protected procedure FillFrames(const Strings: TStrings); public property FrameClass: TJvID3FrameClass read GetFrameClass; property FrameID: TJvID3FrameID read GetFrameID; - property FrameIDStr: string read GetFrameIDStr; + property FrameIDStr: AnsiString read GetFrameIDStr; property Frame: TJvID3Frame read FFrame; property Controller: TJvID3Controller read FController write SetController; property Designer: IDesigner read FDesigner write FDesigner; @@ -128,7 +128,7 @@ Result := fiUnknownFrame; end; -function TJvID3DefineDlg.GetFrameIDStr: string; +function TJvID3DefineDlg.GetFrameIDStr: AnsiString; begin Result := ID3_FrameIDToString(FrameID); end; Modified: trunk/jvcl/design/JvID3v2EditorForm.pas =================================================================== --- trunk/jvcl/design/JvID3v2EditorForm.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvID3v2EditorForm.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -139,6 +139,9 @@ uses Dialogs, Math, SysUtils, + {$IFDEF HAS_UNIT_ANSISTRINGS} + AnsiStrings, + {$ENDIF HAS_UNIT_ANSISTRINGS} JvID3v2DefineForm, JvTypes, JvDsgnConsts; @@ -629,14 +632,13 @@ function TJvID3FramesEditor.UniqueName(Component: TComponent): string; var - FrameName: string; + FrameName: AnsiString; begin if Component is TJvID3Frame then FrameName := TJvID3Frame(Component).FrameName else FrameName := ''; - Result := CreateUniqueName(Controller, FrameName, - TJvID3FrameClass(Component.ClassType), Component) + Result := string(CreateUniqueName(Controller, FrameName, TJvID3FrameClass(Component.ClassType), Component)) end; procedure TJvID3FramesEditor.UpdateCaption; @@ -666,7 +668,7 @@ EnableList: Boolean; I: Integer; Frame: TJvID3Frame; - FrameName: string; + FrameName: AnsiString; begin SaveSelection(Selection, ItemIndex, TopIndex, True); try @@ -682,9 +684,9 @@ begin FrameName := Frame.FrameName; if FrameName = '' then - FrameName := Format('<%s>', [Controller.Frames[I].Name]); - FrameName := FrameName + ' - ' + cFrameDescriptions[Frame.FrameID]; - FrameListBox.Items.AddObject(FrameName, Frame); + FrameName := {$IFDEF HAS_UNIT_ANSISTRINGS}AnsiStrings.{$ENDIF HAS_UNIT_ANSISTRINGS}Format('<%s>', [Controller.Frames[I].Name]); + FrameName := FrameName + ' - ' + AnsiString(cFrameDescriptions[Frame.FrameID]); + FrameListBox.Items.AddObject(string(FrameName), Frame); end; end; Modified: trunk/jvcl/design/JvMMReg.pas =================================================================== --- trunk/jvcl/design/JvMMReg.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvMMReg.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -41,7 +41,7 @@ DsgnIntf, {$ENDIF COMPILER6_UP} JvDsgnConfig, - JvId3v1, JvId3v2, JvID3v2EditorForm, JvID3v2Base, JvWavePlayer, + {$IFNDEF COMPILER12_UP}JvId3v1, JvId3v2, JvID3v2EditorForm, JvID3v2Base,{$ENDIF !COMPILER12_UP} JvWavePlayer, JvAVICaptureEditors, JvAVICapture, JvDsgnConsts, JvAni, JvAnimate, JvBmpAnimator, JvPicClip, JvIconList, @@ -68,9 +68,11 @@ RegisterComponents(RsPaletteBarPanel, [TJvGradientHeaderPanel, TJvGradient, TJvWaitingGradient, TJvSpecialProgress, TJvWaitingProgress, TJvColorTrackBar]); RegisterComponents(RsPaletteSliderSplitter, [TJvSlider]); - RegisterComponents(RsPaletteNonVisual, [TJvID3v1, TJvID3v2, TJvWavePlayer]); + RegisterComponents(RsPaletteNonVisual, [{$IFNDEF COMPILER12_UP}TJvID3v1, TJvID3v2, {$ENDIF !COMPILER12_UP}TJvWavePlayer]); + {$IFNDEF COMPILER12_UP} RegisterComponentEditor(TJvID3Controller, TJvID3ControllerEditor); RegisterPropertyEditor(TypeInfo(TJvID3FileInfo), nil, '', TJvID3FileInfoEditor); + {$ENDIF !COMPILER12_UP} RegisterPropertyEditor(TypeInfo(TJvIconList), nil, '', TIconListProperty); RegisterPropertyEditor(TypeInfo(TJvDriverIndex), nil, '', TJvDriverIndexEditor); RegisterPropertyEditor(TypeInfo(TJvVirtualKey), nil, '', TJvVirtualKeyEditor); Modified: trunk/jvcl/design/JvPluginWizard.pas =================================================================== --- trunk/jvcl/design/JvPluginWizard.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvPluginWizard.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -589,6 +589,7 @@ {$ENDIF BCB} {$IFDEF DELPHI} Repository := Installations.DelphiInstallationFromVersion[ + {$IFDEF DELPHI12} 12 {$ENDIF} {$IFDEF DELPHI11} 11 {$ENDIF} {$IFDEF DELPHI10} 10 {$ENDIF} {$IFDEF DELPHI9} 9 {$ENDIF} Modified: trunk/jvcl/design/JvSegmentedLEDDisplayMappingForm.pas =================================================================== --- trunk/jvcl/design/JvSegmentedLEDDisplayMappingForm.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvSegmentedLEDDisplayMappingForm.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -79,6 +79,9 @@ uses Registry, + {$IFNDEF COMPILER12_UP} + JvJCLUtils, + {$ENDIF ~COMPILER12_UP} JvDsgnConsts; {$R *.dfm} @@ -202,7 +205,7 @@ begin if CharSelected then begin - if CurChar in ['!' .. 'z'] then + if CharInSet(CurChar, ['!' .. 'z']) then lblChar.Caption := CurChar + ' (#' + IntToStr(Ord(CurChar)) + ')' else lblChar.Caption := '#' + IntToStr(Ord(CurChar)); Modified: trunk/jvcl/design/JvSpeedbarForm.pas =================================================================== --- trunk/jvcl/design/JvSpeedbarForm.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvSpeedbarForm.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -892,7 +892,7 @@ for I := Candidates.Count - 1 downto 0 do begin PropInfo := Candidates[I]; - if CompareText(PropInfo^.Name, cOnClick) = 0 then + if CompareText({$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(PropInfo^.Name), cOnClick) = 0 then begin Method := GetMethodProp(Btn, PropInfo); MethodName := IJvFormDesigner(Designer).GetMethodName(Method); Modified: trunk/jvcl/design/JvValidatorsEditorForm.dfm =================================================================== --- trunk/jvcl/design/JvValidatorsEditorForm.dfm 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvValidatorsEditorForm.dfm 2008-09-09 20:33:00 UTC (rev 11891) @@ -1,10 +1,10 @@ object frmValidatorsEditor: TfrmValidatorsEditor Left = 289 Top = 205 - Width = 160 - Height = 260 BorderIcons = [biSystemMenu] Caption = 'JvValidator Items Editor' + ClientHeight = 226 + ClientWidth = 152 Color = clBtnFace Constraints.MinHeight = 260 Constraints.MinWidth = 160 @@ -28,7 +28,6 @@ AutoSize = True Caption = 'ToolBar1' EdgeBorders = [ebLeft, ebBottom] - Flat = True Images = il16 TabOrder = 0 object btnNew: TToolButton @@ -122,7 +121,7 @@ Top = 72 Bitmap = { 494C010104000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000003000000001002000000000000030 + 0000000000003600000028000000400000002000000001002000000000000020 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -259,134 +258,6 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000848484008484 8400848484008484840084848400848484008484840084848400848484008484 8400848484008484840084848400848484000000000000000000848484008484 @@ -508,15 +379,11 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000300000000100010000000000800100000000000000000000 + 2800000040000000200000000100010000000000000100000000000000000000 000000000000000000000000FFFFFF0000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000FFFFFFFFFFFFFFFFC000C000FFFFFFFF 80008000FFFFFFFF80008000FFFFFFFF80000000F83FFEFF80000000F83FFC7F 80000000F83FF83F00000000F83FF01F00008000C007E00F80008000E00FC007 Modified: trunk/jvcl/design/JvValidatorsEditorForm.pas =================================================================== --- trunk/jvcl/design/JvValidatorsEditorForm.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvValidatorsEditorForm.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -140,6 +140,11 @@ {$R *.dfm} +const + ValidKinds: TTypeKinds = + [tkInteger, tkChar, tkEnumeration, tkFloat, tkString, tkSet, + tkWChar, tkLString, {$IFDEF UNICODE} tkUString, {$ENDIF} tkWString, tkVariant, tkInt64]; + procedure ShowEditor(Designer: IDesigner; AValidator: TJvValidators); var I: Integer; @@ -548,10 +553,6 @@ end; procedure TJvPropertyValidateProperty.GetValues(Proc: TGetStrProc); -const - ValidKinds: TTypeKinds = - [tkInteger, tkChar, tkEnumeration, tkFloat, tkString, tkSet, - tkWChar, tkLString, tkWString, tkVariant, tkInt64]; var PropList: PPropList; PropInfo: PPropInfo; @@ -578,7 +579,7 @@ begin PropInfo := PropList^[I]; if (PropInfo <> nil) and (PropInfo.PropType^.Kind in ValidKinds) then - Proc(PropInfo.Name); + Proc({$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(PropInfo.Name)); end; finally FreeMem(PropList); @@ -624,10 +625,6 @@ end; procedure TJvPropertyToCompareProperty.GetValues(Proc: TGetStrProc); -const - ValidKinds: TTypeKinds = - [tkInteger, tkChar, tkEnumeration, tkFloat, tkString, tkSet, - tkWChar, tkLString, tkWString, tkVariant, tkInt64]; var PropList: PPropList; PropInfo: PPropInfo; @@ -656,7 +653,7 @@ begin PropInfo := PropList^[I]; if (PropInfo <> nil) and (PropInfo.PropType^.Kind in ValidKinds) then - Proc(PropInfo.Name); + Proc({$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(PropInfo.Name)); end; finally FreeMem(PropList); Modified: trunk/jvcl/design/JvgCompDescription.pas =================================================================== --- trunk/jvcl/design/JvgCompDescription.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/design/JvgCompDescription.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -128,7 +128,7 @@ { Playing with RTTI } TypeInf := Component.ClassInfo; - AName := TypeInf^.Name; + AName := {$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(TypeInf^.Name); TypeData := GetTypeData(TypeInf); FNumProps := TypeData^.PropCount; @@ -142,7 +142,7 @@ begin PropInfos.AddPropInfo(FPropList^[I], Component); - PropName := FPropList^[I]^.Name; + PropName := {$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(FPropList^[I]^.Name); // PropTypeInf := FPropList^[I]^.PropType^; // PropInfo := FPropList^[I]; end; @@ -161,8 +161,8 @@ begin with TJvgPropInform(Add) do begin - Name := PropInfo^.Name; - TypeName := PropInfo^.PropType^.Name; + Name := {$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(PropInfo^.Name); + TypeName := {$IFDEF SUPPORTS_UNICODE}UTF8ToString{$ENDIF SUPPORTS_UNICODE}(PropInfo^.PropType^.Name); TypeKind := PropInfo^.PropType^.Kind; Info := PropInfo; NoteStr := ''; Modified: trunk/jvcl/devtools/InstallerTests/Installer/Configurations/ConfigOptions.pas =================================================================== --- trunk/jvcl/devtools/InstallerTests/Installer/Configurations/ConfigOptions.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/devtools/InstallerTests/Installer/Configurations/ConfigOptions.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -165,6 +165,7 @@ case FInfo.PropType^.Kind of tkInteger, tkChar, tkEnumeration, tkWChar: Result := GetOrdProp(Instance, FInfo); + {$IFDEF UNICODE} tkUString, {$ENDIF UNICODE} tkString, tkLString: Result := StrToInt(GetStrProp(Instance, FInfo)); tkFloat: @@ -182,6 +183,7 @@ case FInfo.PropType^.Kind of tkInteger, tkChar, tkEnumeration, tkWChar: SetOrdProp(Instance, FInfo, Value); + {$IFDEF UNICODE} tkUString, {$ENDIF UNICODE} tkString, tkLString: SetStrProp(Instance, FInfo, IntToStr(Value)); tkFloat: @@ -198,6 +200,7 @@ case FInfo.PropType^.Kind of tkInteger, tkChar, tkEnumeration, tkWChar: Result := GetOrdProp(Instance, FInfo); + {$IFDEF UNICODE} tkUString, {$ENDIF UNICODE} tkString, tkLString: Result := StrToFloat(GetStrProp(Instance, FInfo)); tkFloat: @@ -215,6 +218,7 @@ case FInfo.PropType^.Kind of tkInteger, tkChar, tkEnumeration, tkWChar: SetOrdProp(Instance, FInfo, Trunc(Value)); + {$IFDEF UNICODE} tkUString, {$ENDIF UNICODE} tkString, tkLString: SetStrProp(Instance, FInfo, FloatToStr(Value)); tkFloat: @@ -231,6 +235,7 @@ case FInfo.PropType^.Kind of tkInteger, tkChar, tkEnumeration, tkWChar: Result := IntToStr(GetOrdProp(Instance, FInfo)); + {$IFDEF UNICODE} tkUString, {$ENDIF UNICODE} tkString, tkLString: Result := GetStrProp(Instance, FInfo); tkFloat: @@ -248,6 +253,7 @@ case FInfo.PropType^.Kind of tkInteger, tkChar, tkEnumeration, tkWChar: SetOrdProp(Instance, FInfo, StrToInt(Value)); + {$IFDEF UNICODE} tkUString, {$ENDIF UNICODE} tkString, tkLString: SetStrProp(Instance, FInfo, Value); tkFloat: Modified: trunk/jvcl/devtools/PackagesGenerator/CmdLineUtils.pas =================================================================== --- trunk/jvcl/devtools/PackagesGenerator/CmdLineUtils.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/devtools/PackagesGenerator/CmdLineUtils.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -9,11 +9,7 @@ uses Windows, Classes, SysUtils, GenerateUtils, - {$IFDEF NO_JCL} - UtilsJcl, - {$ELSE} JclStrings, JclFileUtils, - {$ENDIF NO_JCL} FileUtils; procedure Help; Modified: trunk/jvcl/devtools/PackagesGenerator/ConditionParser.pas =================================================================== --- trunk/jvcl/devtools/PackagesGenerator/ConditionParser.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/devtools/PackagesGenerator/ConditionParser.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -100,13 +100,15 @@ FIndex := Idx; // save start index - if Text[Idx] in SymbolOne then + if {$IFDEF UNICODE}(Text[Idx] < #256) and {$ENDIF} + (AnsiChar(Text[Idx]) in SymbolOne) then begin // one char Inc(Idx); end else - if Text[Idx] in SymbolTwo then + if {$IFDEF UNICODE}(Text[Idx] < #256) and {$ENDIF} + (AnsiChar(Text[Idx]) in SymbolTwo) then begin // one or two chars Inc(Idx); @@ -122,7 +124,8 @@ Inc(Idx); while (Idx <= Len) and (Text[Idx] > #32) do begin - if Text[Idx] in (SymbolOne + SymbolTwo) then + if {$IFDEF UNICODE}(Text[Idx] < #256) and {$ENDIF} + (AnsiChar(Text[Idx]) in (SymbolOne + SymbolTwo)) then Break; Inc(Idx); end; Modified: trunk/jvcl/devtools/PackagesGenerator/FileUtils.pas =================================================================== --- trunk/jvcl/devtools/PackagesGenerator/FileUtils.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/devtools/PackagesGenerator/FileUtils.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -19,7 +19,7 @@ // is not verified by the function. // If Origin and Destination are on different partitions, // the function returns Destination -function GetRelativePath(const Origin, Destination : string) : string; +function GetRelativePath(const Origin, Destination: string): string; // returns the given path without any relative instructions inside // for instance, if you pass c:\a\b\..\c\.\d, it returns c:\a\c\d @@ -27,7 +27,7 @@ // relative paths instructions. // If there are more ..\ than paths in front of it, the result // is undefined (most likely an exception will be triggered) -function PathNoInsideRelative(const Path : string) : string; +function PathNoInsideRelative(const Path: string): string; {$IFDEF COMPILER5} // Sets the date and time of the indicated file @@ -43,11 +43,7 @@ {$IFDEF COMPILER6_UP} StrUtils, {$ENDIF COMPILER6_UP} - {$IFDEF NO_JCL} - UtilsJcl, - {$ELSE} JclStrings, JclFileUtils, - {$ENDIF NO_JCL} SysUtils; {$IFDEF COMPILER5} @@ -62,7 +58,7 @@ end; {$ENDIF COMPILER5} -function StrEnsureNoPrefix(const prefix, str : string) : string; +function StrEnsureNoPrefix(const prefix, str: string): string; begin if AnsiStartsStr(prefix, str) then Result := Copy(str, Length(prefix)+1, MaxInt) @@ -70,7 +66,7 @@ Result := str; end; -function StrEnsureNoSuffix(const suffix, str : string) : string; +function StrEnsureNoSuffix(const suffix, str: string): string; begin if AnsiEndsStr(suffix, str) then Result := Copy(str, 1, Length(str)-Length(suffix)) @@ -78,12 +74,12 @@ Result := str; end; -function GetRelativePath(const Origin, Destination : string) : string; +function GetRelativePath(const Origin, Destination: string): string; var - OrigList : TStringList; - DestList : TStringList; - DiffIndex : Integer; - i : Integer; + OrigList: TStringList; + DestList: TStringList; + DiffIndex: Integer; + i: Integer; begin // create a list of paths as separate strings OrigList := TStringList.Create; @@ -140,10 +136,10 @@ end; end; -function PathNoInsideRelative(const Path : string) : string; +function PathNoInsideRelative(const Path: string): string; var - PathList : TStringList; - i : Integer; + PathList: TStringList; + i: Integer; begin PathList := TStringList.Create; try Modified: trunk/jvcl/devtools/PackagesGenerator/GenerateUtils.pas =================================================================== --- trunk/jvcl/devtools/PackagesGenerator/GenerateUtils.pas 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/devtools/PackagesGenerator/GenerateUtils.pas 2008-09-09 20:33:00 UTC (rev 11891) @@ -44,11 +44,11 @@ uses Windows, SysUtils, ShellApi, Contnrs, FileUtils, - {$IFDEF NO_JCL} - UtilsJcl, - {$ELSE} + {$IFNDEF COMPILER12_UP} + JvJCLUtils, + {$ENDIF ~COMPILER12_UP} + JclBase, JclDateTime, JclStrings, JclFileUtils, JclSysUtils, JclLogic, - {$ENDIF NO_JCL} JvSimpleXml, PackageInformation, ConditionParser; @@ -274,7 +274,7 @@ end; end; -procedure StrReplaceLines(Lines: TStrings; const Search, Replace: AnsiString); +procedure StrReplaceLines(Lines: TStrings; const Search, Replace: string); var i: Integer; S: string; @@ -324,7 +324,7 @@ begin if SLen + Count > Length(S) then SetLength(S, SLen + Count + Delta); - Move(Text[i - Count], S[SLen + 1], Count); + Move(Text[i - Count], S[SLen + 1], Count * SizeOf(Char)); Inc(SLen, Count); end; @@ -343,7 +343,7 @@ begin if SLen + Count > Length(S) then SetLength(S, SLen + Count + Delta); - Move(Macros[Index * 2 + 1][1], S[SLen + 1], Count); + Move(Macros[Index * 2 + 1][1], S[SLen + 1], Count * SizeOf(Char)); Inc(SLen, Count); end; Result := True; @@ -362,7 +362,7 @@ Inc(Count); if SLen + Count > Length(S) then SetLength(S, SLen + Count + Delta); - Move(Text[i], S[SLen + 1], Count); + Move(Text[i], S[SLen + 1], Count * SizeOf(Char)); Inc(SLen, Count); Inc(i, Count - 1); end; @@ -863,15 +863,21 @@ end; procedure EnsureProperSeparator(var Name : string; const target : string); +var + TmpName: string; begin // ensure that the path separator stored in the xml file is // replaced by the one for the system we are targeting + TmpName := Name; + // first ensure we only have backslashes - StrReplace(Name, '/', '\', [rfReplaceAll]); + StrReplace(TmpName, '/', '\', [rfReplaceAll]); // and replace all them by the path separator for the target - StrReplace(Name, '\', TargetList[GetNonPersoTarget(target)].PathSep, [rfReplaceAll]); + StrReplace(TmpName, '\', TargetList[GetNonPersoTarget(target)].PathSep, [rfReplaceAll]); + + Name := TmpName; end; procedure ApplyFormName(ContainedFile: TContainedFile; Lines : TStrings; @@ -1611,7 +1617,7 @@ BinaryPercent = 10; var F : TFileStream; - Buffer : array[0..BufferSize] of Char; + Buffer : array[0..BufferSize] of AnsiChar; I, Index : Integer; BinaryCount : Integer; begin @@ -1630,7 +1636,7 @@ begin F := TFileStream.Create(FileName, fmOpenRead); try - F.Read(Buffer, BufferSize+1); + F.Read(Buffer, (BufferSize+1) * SizeOf(AnsiChar)); BinaryCount := 0; for I := 0 to BufferSize do if not (Buffer[I] in [#9, #13, #10, #32..#127]) then @@ -1926,9 +1932,9 @@ else if Length(Name) > 1 then begin I := 1; - while (I < Length(Name)) and not (Name[I] in ['0'..'9']) do + while (I < Length(Name)) and not CharInSet(Name[I], ['0'..'9']) do Inc(I); - if Name[I] in ['0'..'9'] then + if CharInSet(Name[I], ['0'..'9']) then Dec(I); Result := AnsiUpperCase(Copy(Name,1,I)); end @@ -1953,10 +1959,10 @@ else if Length(Name)>1 then begin Start := 2; - while (Start < Length(Name)) and not (Name[Start] in ['0'..'9']) do + while (Start < Length(Name)) and not CharInSet(Name[Start], ['0'..'9']) do Inc(Start); I := Start; - while (I < Length(Name)) and (Name[I] in ['0'..'9']) do + while (I < Length(Name)) and CharInSet(Name[I], ['0'..'9']) do Inc(I); if I < Length(name) then Dec(I); @@ -1975,9 +1981,7 @@ inherited Create(True); if Assigned(Node) then for i := 0 to Node.Items.Count - 1 do - begin Add(TTarget.Create(Node.Items[i])); - end; end; function TTargetList.GetItems(index: integer): TTarget; @@ -2184,9 +2188,12 @@ end; function TClxReplacement.DoReplacement(const Filename: string): string; +var + TmpResult: string; begin - Result := Filename; - StrReplace(Result, Original, Replacement, [rfIgnoreCase]); + TmpResult := Filename; + StrReplace(TmpResult, Original, Replacement, [rfIgnoreCase]); + Result := TmpResult; end; { TClxReplacementList } Modified: trunk/jvcl/devtools/bin/pgEdit.xml =================================================================== --- trunk/jvcl/devtools/bin/pgEdit.xml 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/devtools/bin/pgEdit.xml 2008-09-09 20:33:00 UTC (rev 11891) @@ -69,36 +69,32 @@ <target name="d9" pname="d9p" pdir="d9per"/> <target name="d10" pname="d10p" pdir="d10per"/> <target name="d11"/> + <target name="d12"/> </targets> <aliases> - <alias name="VCL" value="c5,c5s,d5,d5s,c6,c6p,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11"/> + <alias name="VCL" value="c5,c5s,d5,d5s,c6,c6p,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11,d12"/> <alias name="VCLv5" value="c5,c5s,d5,d5s"/> - <alias name="VCLv6up" value="c6,c6p,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11"/> - - <alias name="D" value="d5,d5s,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11"/> + <alias name="VCLv6up" value="c6,c6p,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11,d12"/> + <alias name="D" value="d5,d5s,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11,d12"/> <alias name="Dv5" value="d5,d5s"/> - <alias name="Dv6up" value="d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11"/> - - <alias name="C" value="c5,c5s,c6,c6p,d10,d10p,d11"/> + <alias name="Dv6up" value="d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11,d12"/> + <alias name="C" value="c5,c5s,c6,c6p,d10,d10p,d11,d12"/> <alias name="Cv5" value="c5,c5s"/> - <alias name="Cv6up" value="c6,c6p,d10,d10p,d11"/> - - <alias name="DB" value="c5,d5,c6,d6,d7,d9,d10,d11"/> + <alias name="Cv6up" value="c6,c6p,d10,d10p,d11,d12"/> + <alias name="DB" value="c5,d5,c6,d6,d7,d9,d10,d11,d12"/> <alias name="DBv5" value="c5,d5"/> - <alias name="DBv6up" value="c6,d6,d7,d9,d10,d11"/> - - <alias name="DBVCL" value="c5,d5,c6,d6,d7,d9,d10,d11"/> + <alias name="DBv6up" value="c6,d6,d7,d9,d10,d11,d12"/> + <alias name="DBVCL" value="c5,d5,c6,d6,d7,d9,d10,d11,d12"/> <alias name="DBVCLv5" value="c5,d5"/> - <alias name="DBVCLv6up" value="c6,d6,d7,d9,d10,d11"/> - + <alias name="DBVCLv6up" value="c6,d6,d7,d9,d10,d11,d12"/> <alias name="allv5" value="c5,c5s,d5,d5s"/> - <alias name="allv6up" value="c6,c6p,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11"/> - <alias name="allv7up" value="d7,d7p,d9,d9p,d10,d10p,d11"/> - - <alias name="Windows" value="c5,c5s,c6,c6p,d5,d5s,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11"/> + <alias name="allv6up" value="c6,c6p,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11,d12"/> + <alias name="allv7up" value="d7,d7p,d9,d9p,d10,d10p,d11,d12"/> + <alias name="allv12up" value="d12"/> + <alias name="windows" value="c5,c5s,d5,d5s,c6,c6p,d6,d6p,d7,d7p,d9,d9p,d10,d10p,d11,d12"/> </aliases> </model> - <Model format="%p%n" name="JCL" prefix="Jcl" packages="..\packages" incfile="" nolibsuffixformat="%p%n%e%v0" dotnetprefix="Jedi.Jvcl"> + <Model format="%p%n" name="JCL" prefix="Jcl" packages="..\packages" incfile="" nolibsuffixformat="%p%n%e%v0" dotnetprefix="Jedi.Jcl"> <targets> <target name="c5"/> <target name="c6"/> @@ -108,30 +104,36 @@ <target name="d8" IsBds="1"/> <target name="cs1" IsBds="1"/> <target name="d9" IsBds="1"/> + <target name="d10" IsBds="1"/> + <target name="k3" PathSep="/"/> <target name="d9.net" IsDotNet="1"/> - <target name="d10" IsBds="1"/> <target name="d10.net" IsDotNet="1"/> <target name="d11" IsBds="1"/> <target name="d11.net" IsDotNet="1"/> + <target name="d12" IsBds="1"/> + <target name="d12.net" IsDotNet="1"/> </targets> <aliases> - <alias name="Delphi" value="d5,d6,d7,d9,d10,d11"/> - <alias name="Bcb" value="c5,c6,d10,d11"/> - <alias name="Windows" value="c5,c6,d5,d6,d7,d9,d10,d11"/> - <alias name="WinDev" value="c5,c6,d5,d6,d7,d8,d9,d10,cs1,d11"/> - <alias name="JclDev" value="c5,c6,d5,d6,d7,d8,d9,d10,cs1,d11"/> - <alias name="DelphiDev" value="d5,d6,d7,d8,d9,d10,d11"/> - <alias name="WinLibSuffix" value="c6,d6,d7,d8,d9,d10,cs1,d11"/> - <alias name="allLibSuffix" value="c6,d6,d7,d8,d9,d10,cs1,d11"/> - <alias name="Vcl" value="c6,d6,d7,d9,d10,d11"/> - <alias name="Bds" value="cs1,d8,d9,d10,d11"/> - <alias name="JclDotNet" value="d9.net,d10.net,d11.net"/> + <alias name="Delphi" value="d5,d6,d7,d9,d10,d11,d12"/> + <alias name="Bcb" value="c5,c6,d10,d11,d12"/> + <alias name="Kylix" value="k3"/> + <alias name="Windows" value="c5,c6,d5,d6,d7,d9,d10,d11,d12"/> + <alias name="Linux" value="k3"/> + <alias name="WinDev" value="c5,c6,d5,d6,d7,d8,d9,d10,cs1,d11,d12"/> + <alias name="JclDev" value="c5,c6,d5,d6,d7,d8,d9,d10,k3,cs1,d11,d12"/> + <alias name="DelphiDev" value="d5,d6,d7,d8,d9,d10,d11,d12"/> + <alias name="WinLibSuffix" value="c6,d6,d7,d8,d9,d10,cs1,d11,d12"/> + <alias name="allLibSuffix" value="c6,d6,d7,d8,d9,d10,k3,cs1,d11,d12"/> + <alias name="Clx" value="c6,d6,d7,k3"/> + <alias name="Vcl" value="c6,d6,d7,d9,d10,d11,d12"/> + <alias name="Bds" value="cs1,d8,d9,d10,d11,d12"/> + <alias name="JclDotNet" value="d9.net,d10.net,d11.net,d12.net"/> </aliases> <ProjectProperties> <ProjectProperty name="VersionMajorNumber" value="1"/> - <ProjectProperty name="VersionMinorNumber" value="101"/> + <ProjectProperty name="VersionMinorNumber" value="102"/> <ProjectProperty name="ReleaseNumber" value="0"/> - <ProjectProperty name="BuildNumber" value="2647"/> + <ProjectProperty name="BuildNumber" value="2726"/> </ProjectProperties> </Model> </models> Modified: trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo.dpr =================================================================== --- trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo.dpr 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo.dpr 2008-09-09 20:33:00 UTC (rev 11891) @@ -2,7 +2,9 @@ uses Forms, - CsvDataSourceDemoFm in 'CsvDataSourceDemoFm.pas' {CsvDataSourceForm}; + CsvDataSourceDemoFm in 'CsvDataSourceDemoFm.pas' {CsvDataSourceForm}, + JvCsvData in '..\..\run\JvCsvData.pas', + JvCsvParse in '..\..\run\JvCsvParse.pas'; {$R *.res} Copied: trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo_Unicode.dpr (from rev 11888, branches/JVCL3_35_PREPARATION/examples/JvCSVDataSet/CsvDataDemo_Unicode.dpr) =================================================================== --- trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo_Unicode.dpr (rev 0) +++ trunk/jvcl/examples/JvCSVDataSet/CsvDataDemo_Unicode.dpr 2008-09-09 20:33:00 UTC (rev 11891) @@ -0,0 +1,15 @@ +program CsvDataDemo_Unicode; + +uses + Forms, + CsvDataSourceUnicodeDemoFm in 'CsvDataSourceUnicodeDemoFm.pas' {CsvDataSourceForm}, + JvCsvData in '..\..\run\JvCsvData.pas', + JvCsvParse in '..\..\run\JvCsvParse.pas'; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TCsvDataSourceForm, CsvDataSourceForm); + Application.Run; +end. Modified: trunk/jvcl/examples/JvCSVDataSet/CsvDataSourceDemoFm.dfm =================================================================== --- trunk/jvcl/examples/JvCSVDataSet/CsvDataSourceDemoFm.dfm 2008-09-09 20:29:49 UTC (rev 11890) +++ trunk/jvcl/examples/JvCSVDataSet/CsvDataSourceDemoFm.dfm 2008-09-09 20:33:00 UTC (rev 11891) @@ -1,9 +1,9 @@ object CsvDataSourceForm: TCsvDataSourceForm Left = 179 Top = 121 - Width = 810 - Height = 638 Caption = 'Comma Separated Variable File (TJvCsvDataSet) Demo' + ClientHeight = 604 + ClientWidth = 802 Color = clBtnFace Constraints.MinHeight = 480 Constraints.MinWidth = 800 @@ -15,6 +15,10 @@ OldCreateOrder = False OnClose = FormClose OnCreate = FormCreate + OnShow = FormShow + DesignSize = ( + 802 + 604) PixelsPerInch = 96 TextHeight = 13 object Label2: TLabel @@ -158,7 +162,7 @@ Align = alTop BorderStyle = bsNone Color = clBtnFace - Font.Charset = DEFAULT_CHARSET + Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' @@ -202,39 +206,6 @@ Top = 216 end object JvCsvDataSet1: TJvCsvDataSet - FieldDefs = < - item - Name = 'NAME' - DataType = ftString - Size = 80 - end - item - Name = 'ADDRESS' - DataType = ftString - Size = 80 - end - item - Name = 'ADDRESS2' - DataType = ftString - Size = 80 - end - item - Name = 'TELEPHONE' - DataType = ftString - Size = 80 - end - item - Name = 'AGE' - DataType = ftInteger - end - item - Name = 'LASTPHONECALL' - DataType = ftDateTime - end - item - Name = 'PRIVATENUMBER' - DataType = ftBoolean - end> FileName = 'PhoneList.csv' Changed = False CsvFieldDef = @@ -245,6 +216,8 @@ CaseInsensitive = False AutoBackupCount = 0 StoreDefs = True + AlwaysEnquoteStrings = False + AppendOnly = False Left = 128 Top = 216 object JvCsvDataSet1NAME: ... [truncated message content] |
From: <ob...@us...> - 2008-09-09 20:35:13
|
Revision: 11892 http://jvcl.svn.sourceforge.net/jvcl/?rev=11892&view=rev Author: obones Date: 2008-09-09 20:35:07 +0000 (Tue, 09 Sep 2008) Log Message: ----------- Changes required for D2009/C2009 support, merged from the 3.35 branch Modified Paths: -------------- trunk/jvcl/install/JVCLInstall/Compile.pas trunk/jvcl/install/JVCLInstall/DelphiData.pas trunk/jvcl/install/JVCLInstall/Helpers/CapExec.pas trunk/jvcl/install/JVCLInstall/Helpers/JVCLConfiguration.pas trunk/jvcl/install/JVCLInstall/Helpers/dpp_PascalParser.pas trunk/jvcl/install/JVCLInstall/JVCLInstall.dpr trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj trunk/jvcl/install/JVCLInstall/PackageUtils.pas trunk/jvcl/install/JVCLInstall/Utils.pas trunk/jvcl/install/release/want/WantClasses.pas Added Paths: ----------- trunk/jvcl/lib/d12/ trunk/jvcl/lib/d12/d12.txt trunk/jvcl/lib/d12/debug/ trunk/jvcl/lib/d12/debug/debug.txt Removed Paths: ------------- trunk/jvcl/lib/d12/d12.txt trunk/jvcl/lib/d12/debug/ trunk/jvcl/lib/d12/debug/debug.txt Modified: trunk/jvcl/install/JVCLInstall/Compile.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Compile.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/Compile.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -34,7 +34,7 @@ uses Windows, SysUtils, Classes, CapExec, JVCLData, DelphiData, GenerateUtils, PackageUtils, Intf, PackageInformation, ConditionParser, - JvVCL5Utils, JVCLVer; + JclBase, JvVCL5Utils, JVCLVer; type TProgressKind = ( @@ -173,6 +173,9 @@ implementation uses + {$IFNDEF COMPILER12_UP} + JvJCLUtils, + {$ENDIF ~COMPILER12_UP} CmdLineUtils, JvConsts, Utils, Core, Dcc32FileAgePatch; resourcestring @@ -212,7 +215,7 @@ begin Result := Edition; for i := 2 to Length(Result) do - if not (Result[i] in ['0'..'9']) then + if not CharInSet(Result[i], ['0'..'9']) then begin Result := Copy(Result, 1, i - 1); Exit; Modified: trunk/jvcl/install/JVCLInstall/DelphiData.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/DelphiData.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/DelphiData.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -35,7 +35,7 @@ Windows, SysUtils, Classes, Contnrs, Registry; const - BDSVersions: array[1..5] of record + BDSVersions: array[1..6] of record Name: string; VersionStr: string; Version: Integer; @@ -47,7 +47,8 @@ (Name: 'Delphi'; VersionStr: '8'; Version: 8; CIV: '71'; ProjectDirResId1: 64460; Supported: False), (Name: 'Delphi'; VersionStr: '2005'; Version: 9; CIV: '90'; ProjectDirResId1: 64431; Supported: True), (Name: 'Borland Developer Studio'; VersionStr: '2006'; Version: 10; CIV: '100'; Supported: True), - (Name: 'CodeGear RAD Studio'; VersionStr: '2007'; Version: 11; CIV: '100'; Supported: True) + (Name: 'CodeGear RAD Studio'; VersionStr: '2007'; Version: 11; CIV: '100'; Supported: True), + (Name: 'CodeGear RAD Studio'; VersionStr: '2009'; Version: 12; CIV: '120'; Supported: True) ); type @@ -72,7 +73,7 @@ TCompileTargetList = class(TObjectList) private function GetItems(Index: Integer): TCompileTarget; - procedure LoadTargets(const SubKey, HKCUSubKey: string); + procedure LoadTargets(const RootKey, SubKey, HKCUSubKey: string); function IsBDSSupported(const IDEVersionStr: string): Boolean; public constructor Create; @@ -270,7 +271,7 @@ function AnsiStartsText(const SubStr, Text: string): Boolean; function ExcludeTrailingPathDelimiter(const Path: string): string; function GetEnvironmentVariable(const Name: string): string; -{$ENDIF COMPIELR5} +{$ENDIF COMPILER5} implementation @@ -278,9 +279,12 @@ {$IFDEF COMPILER6_UP} StrUtils, {$ENDIF COMPILER6_UP} + {$IFNDEF COMPILER12_UP} + JvJCLUtils, + {$ENDIF ~COMPILER12_UP} CmdLineUtils, Utils, JvConsts, - JclSysInfo, JclSimpleXml, JclBorlandTools; + JclBase, JclSysInfo, JclSimpleXml, JclBorlandTools; function DequoteStr(const S: string): string; begin @@ -308,10 +312,11 @@ SetLength(Result, 8 * 1024); SetLength(Result, Windows.GetEnvironmentVariable(PChar(Name), PChar(Result), Length(Result))); end; -{$ENDIF COMPIELR5} +{$ENDIF COMPILER5} const KeyBorland = '\SOFTWARE\Borland\'; // do not localize + KeyCodeGear = '\SOFTWARE\CodeGear\'; // do not localize function SubStr(const Text: string; StartIndex, EndIndex: Integer): string; begin @@ -334,7 +339,7 @@ Break; F := P; - while not (P[0] in [#0, ';']) do + while (P[0] <> #0) and (P[0] <> ';') do Inc(P); SetString(S, F, P - F); List.Add(ExcludeTrailingPathDelimiter(Trim(DequoteStr(Trim(S))))); @@ -416,11 +421,14 @@ CmdOptions.RegistryKeyBDS := 'BDS'; // do not localize if not CmdOptions.IgnoreDelphi then - LoadTargets('Delphi', CmdOptions.RegistryKeyDelphi); // do not localize + LoadTargets(KeyBorland, 'Delphi', CmdOptions.RegistryKeyDelphi); // do not localize if not CmdOptions.IgnoreBCB then - LoadTargets('C++Builder', CmdOptions.RegistryKeyBCB); // do not localize + LoadTargets(KeyBorland, 'C++Builder', CmdOptions.RegistryKeyBCB); // do not localize if not CmdOptions.IgnoreDelphi then - LoadTargets('BDS', CmdOptions.RegistryKeyBDS); // do not localize + begin + LoadTargets(KeyBorland, 'BDS', CmdOptions.RegistryKeyBDS); // do not localize + LoadTargets(KeyCodeGear, 'BDS', CmdOptions.RegistryKeyBDS); // do not localize + end; end; function TCompileTargetList.GetItems(Index: Integer): TCompileTarget; @@ -428,36 +436,40 @@ Result := TCompileTarget(inherited Items[Index]); end; -procedure TCompileTargetList.LoadTargets(const SubKey, HKCUSubKey: string); +procedure TCompileTargetList.LoadTargets(const RootKey, SubKey, HKCUSubKey: string); var Reg, HKCUReg: TRegistry; List: TStrings; - i: Integer; + I: Integer; Target: TCompileTarget; + KeyName: string; begin Reg := TRegistry.Create; HKCUReg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; HKCUReg.RootKey := HKEY_CURRENT_USER; - if Reg.OpenKeyReadOnly(KeyBorland + SubKey) then + if Reg.OpenKeyReadOnly(RootKey + SubKey) then begin List := TStringList.Create; try Reg.GetKeyNames(List); - for i := 0 to List.Count - 1 do - if List[i][1] in ['1'..'9'] then // only version numbers (not "BDS\DBExpress") - if (SubKey <> 'BDS') or IsBDSSupported(List[i]) then // do not localize + for I := 0 to List.Count - 1 do + begin + KeyName := List[I]; + if (KeyName <> '') and CharInSet(KeyName[1], ['1'..'9']) then // only version numbers (not "BDS\DBExpress") + if (SubKey <> 'BDS') or IsBDSSupported(KeyName) then // do not localize begin - if HKCUReg.KeyExists(KeyBorland + HKCUSubKey + '\' + List[i]) then + if HKCUReg.KeyExists(RootKey + HKCUSubKey + '\' + KeyName) then begin - Target := TCompileTarget.Create(SubKey, List[i], HKCUSubKey); + Target := TCompileTarget.Create(SubKey, KeyName, HKCUSubKey); if Target.IsValid then // only valid targets are allowed Add(Target) else Target.Free; end; end; + end; finally List.Free; end; @@ -496,8 +508,16 @@ else GetBDSVersion(FName, FVersion, FVersionStr); - FHKLMRegistryKey := KeyBorland + IDEName + '\' + IDEVersionStr; - FRegistryKey := KeyBorland + ARegSubKey + '\' + IDEVersionStr; + if IsBDS and (IDEVersion >= 6) then + begin + FHKLMRegistryKey := KeyCodeGear + IDEName + '\' + IDEVersionStr; + FRegistryKey := KeyCodeGear + ARegSubKey + '\' + IDEVersionStr; + end + else + begin + FHKLMRegistryKey := KeyBorland + IDEName + '\' + IDEVersionStr; + FRegistryKey := KeyBorland + ARegSubKey + '\' + IDEVersionStr; + end; FOrgEnvVars := TStringList.Create; FEnvVars := TStringList.Create; @@ -1298,7 +1318,13 @@ function TCompileTarget.GetEnvOptionsFileName: string; // Delphi 2007 begin - Result := Format('%s\Borland\BDS\%d.0\EnvOptions.proj', [ExcludeTrailingPathDelimiter(GetAppdataFolder), IDEVersion]); + if IsBDS and (IDEVersion >= 6) then + Result := Format('%s\CodeGear\BDS\%d.0\EnvOptions.proj', [ExcludeTrailingPathDelimiter(GetAppdataFolder), IDEVersion]) + else + if IsBDS and (IDEVersion = 5) then + Result := Format('%s\Borland\BDS\%d.0\EnvOptions.proj', [ExcludeTrailingPathDelimiter(GetAppdataFolder), IDEVersion]) + else + Result := ''; end; function TCompileTarget.ReadCommonProjectsDir: string; Modified: trunk/jvcl/install/JVCLInstall/Helpers/CapExec.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Helpers/CapExec.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/Helpers/CapExec.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -53,10 +53,11 @@ SetLength(Result, Windows.GetEnvironmentVariable(PChar(Name), PChar(Result), Length(Result))); end; -function Oem2Ansi(const Text: string): string; +function Oem2Ansi(const Text: AnsiString): AnsiString; begin - Result := Text; - OemToCharBuff(PChar(Result), PChar(Result), Length(Result)); + SetLength(Result, Length(Text)); + if not OemToCharBuffA(PAnsiChar(Text), PAnsiChar(Result), Length(Text)) then + Result := Text; end; function CaptureExecute(const App, Args, Dir: string; CaptureLine: TCaptureLine; @@ -65,11 +66,11 @@ var Aborted: Boolean; - procedure ProcessInput(hRead: THandle; var Line: string; CaptureLine: TCaptureLine); + procedure ProcessInput(hRead: THandle; var Line: AnsiString; CaptureLine: TCaptureLine); var BytesInPipe, n: Cardinal; - S: string; - i: Integer; + S: AnsiString; + I: Integer; Found: Boolean; begin BytesInPipe := 0; @@ -83,20 +84,20 @@ Line := Line + S; repeat Found := False; - for i := 1 to Length(Line) do - if Line[i] in [#10, #13] then + for I := 1 to Length(Line) do + if (Line[I] = #10) or (Line[I] = #13) then begin if Assigned(CaptureLine) then - CaptureLine(Oem2Ansi(Copy(Line, 1, i - 1)), Aborted); - if (Line[i] = #13) and (Line[i + 1] = #10) then + CaptureLine(string(Oem2Ansi(Copy(Line, 1, I - 1))), Aborted); + if (Line[I] = #13) and (Line[I + 1] = #10) then begin - if (i + 2 <= Length(Line)) and (Line[i + 2] = #13) then - Delete(Line, 1, i + 2) + if (I + 2 <= Length(Line)) and (Line[I + 2] = #13) then + Delete(Line, 1, I + 2) else - Delete(Line, 1, i + 1); + Delete(Line, 1, I + 1); end else - Delete(Line, 1, i); + Delete(Line, 1, I); Found := True; Break; end; @@ -111,8 +112,8 @@ hRead, hWrite: THandle; hAbortRead, hAbortWrite: THandle; ReadStatusPipe, WriteStatusPipe: THandle; - Line: string; - StatusLine: string; + Line: AnsiString; + StatusLine: AnsiString; OrgEnvPath: string; begin Result := -2; @@ -172,11 +173,11 @@ end; ProcessInput(hRead, Line, CaptureLine); if (Line <> '') and Assigned(CaptureLine) then - CaptureLine(Line, Aborted); + CaptureLine(string(Line), Aborted); if ReadStatusPipe <> 0 then ProcessInput(ReadStatusPipe, StatusLine, CaptureStatusLine); if (StatusLine <> '') and Assigned(CaptureStatusLine) then - CaptureStatusLine(StatusLine, Aborted); + CaptureStatusLine(string(StatusLine), Aborted); if Aborted then begin if CtrlCAbort then Modified: trunk/jvcl/install/JVCLInstall/Helpers/JVCLConfiguration.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Helpers/JVCLConfiguration.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/Helpers/JVCLConfiguration.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -37,6 +37,7 @@ {$ELSE} JvVCL5Utils, {$ENDIF COMPILER6_UP} + JclBase, Utils; type @@ -85,7 +86,7 @@ procedure Parse; procedure LoadFromFile(const AFilename: string); override; - procedure LoadFromStream(Stream: TStream); override; + procedure LoadFromStream(Stream: TStream{$IFDEF COMPILER12_UP}; Encoding: TEncoding{$ENDIF COMPILER12_UP}); override; procedure SaveToFile(const FileName: String); override; property ItemCount: Integer read GetItemCount; @@ -97,6 +98,11 @@ implementation +{$IFNDEF COMPILER12_UP} +uses + JvJCLUtils; +{$ENDIF ~COMPILER12_UP} + function RemoveCommentBrackets(const Comment: string): string; var Len: Integer; @@ -120,7 +126,7 @@ if AnsiStartsText(Directive, S) then begin Result := (Length(S) >= Length(Directive)) or - (S[Length(Directive) + 1] in [#1..#32, '}', '*']); + CharInSet(S[Length(Directive) + 1], [#1..#32, '}', '*']); end; // if StrLIComp(PChar(S), PChar(Directive), Length(Directive)) = 0 then // Result := S[Length(Directive) + 1] in [#0..#32, '}', '*'];} @@ -230,10 +236,10 @@ Result := TJVCLConfigItem(FItems[Index]); end; -procedure TJVCLConfig.LoadFromStream(Stream: TStream); +procedure TJVCLConfig.LoadFromStream(Stream: TStream{$IFDEF COMPILER12_UP}; Encoding: TEncoding{$ENDIF COMPILER12_UP}); begin FFilename := ''; - inherited LoadFromStream(Stream); + inherited LoadFromStream(Stream{$IFDEF COMPILER12_UP}, Encoding{$ENDIF COMPILER12_UP}); Parse; end; Modified: trunk/jvcl/install/JVCLInstall/Helpers/dpp_PascalParser.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Helpers/dpp_PascalParser.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/Helpers/dpp_PascalParser.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -129,7 +129,7 @@ PText := Pointer(FText); P := PText + FIndex - 1; // go to next token and skip white chars - while P[0] in WhiteChars do + while (P[0] >= #1) and (P[0] <= #32) {in WhiteChars} do begin if P[0] = #10 then Inc(FLineNum); @@ -230,7 +230,8 @@ begin // comment "// ..." -> find comment end Inc(P, 2); - while not (P[0] in [#0, #10, #13]) do + while not ({$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in [#0, #10, #13])) do Inc(P); Result.Kind := tkComment; if P[0] <> #0 then @@ -241,15 +242,18 @@ Inc(IndexAdd); {do not parse the #10 again} end; end - else if P[0] in IdentFirstChars then + else if {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in IdentFirstChars) then begin // identifier Inc(P); - while P[0] in IdentChars do + while {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in IdentChars) do Inc(P); Result.Kind := tkIdent; end - else if P[0] in NumberChars then + else if {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in NumberChars) then begin // number Inc(P); @@ -289,39 +293,46 @@ else Result.ExKind := tekInt; end - else if (P[0] = '$') and (P[1] in HexNumberChars) then + else if (P[0] = '$') and + ({$IFDEF UNICODE}(P[1] < #256) and {$ENDIF} (AnsiChar(P[1]) in HexNumberChars)) then begin // hex number Inc(P, 2); - while P[0] in HexNumberChars do + while {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in HexNumberChars) do Inc(P); Result.Kind := tkNumber; Result.ExKind := tekHex; end - else if (P[0] = '#') and ((P[1] = '$') or (P[1] in NumberChars)) then + else if (P[0] = '#') and + ((P[1] = '$') or ({$IFDEF UNICODE}(P[1] < #256) and {$ENDIF} (AnsiChar(P[1]) in NumberChars))) then begin // char Inc(P, 2); if P[-1] = '$' then begin - while P[0] in HexNumberChars do + while {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in HexNumberChars) do Inc(P); end else begin - while P[0] in NumberChars do + while {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in NumberChars) do Inc(P); end; Result.Kind := tkString; end - else if P[0] in OneSymbolChars then + else if {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in OneSymbolChars) then begin Inc(P); Result.Kind := tkSymbol; end else begin - while P[0] in SymbolChars do + while {$IFDEF UNICODE}(P[0] < #256) and {$ENDIF} + (AnsiChar(P[0]) in SymbolChars) do Inc(P); Result.Kind := tkSymbol; end; Modified: trunk/jvcl/install/JVCLInstall/JVCLInstall.dpr =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLInstall.dpr 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/JVCLInstall.dpr 2008-09-09 20:35:07 UTC (rev 11892) @@ -29,8 +29,6 @@ {$I jvcl.inc} uses - //FastMM4, - //ExceptionDlg in 'Debug\ExceptionDlg.pas', JvGnugettext, Forms, Main in 'Main.pas' {FormMain}, @@ -53,7 +51,6 @@ FileUtils in '..\..\devtools\PackagesGenerator\FileUtils.pas', GenerateUtils in '..\..\devtools\PackagesGenerator\GenerateUtils.pas', ConditionParser in '..\..\devtools\PackagesGenerator\ConditionParser.pas', - UtilsJcl in '..\..\devtools\PackagesGenerator\UtilsJcl.pas', PackageInformation in '..\..\devtools\common\PackageInformation.pas', Utils in 'Utils.pas', Compile in 'Compile.pas', Modified: trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj 2008-09-09 20:35:07 UTC (rev 11892) @@ -1,117 +1,179 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectGuid>{b9adeaf6-4ca3-49a2-bc27-b57e9973052c}</ProjectGuid> - <MainSource>JVCLInstall.dpr</MainSource> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <Version>7.0</Version> - <DCC_DebugInformation>False</DCC_DebugInformation> - <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> - <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_MapFile>3</DCC_MapFile> - <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> - <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> - <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> - <DCC_HppOutput>..\..\dcu</DCC_HppOutput> - <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;RELEASE</DCC_Define> - <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> - <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> - <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <Version>7.0</Version> - <DCC_MapFile>3</DCC_MapFile> - <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> - <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> - <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> - <DCC_HppOutput>..\..\dcu</DCC_HppOutput> - <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;DEBUG</DCC_Define> - <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> - <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> - <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> - <DCC_UnitSearchPath>..\..\common;..\..\run;..\..\Resources</DCC_UnitSearchPath> - <DCC_ResourcePath>..\..\common;..\..\run;..\..\Resources</DCC_ResourcePath> - <DCC_ObjPath>..\..\common;..\..\run;..\..\Resources</DCC_ObjPath> - <DCC_IncludePath>..\..\common;..\..\run;..\..\Resources</DCC_IncludePath> - </PropertyGroup> - <ProjectExtensions> - <Borland.Personality>Delphi.Personality</Borland.Personality> - <Borland.ProjectType /> - <BorlandProject> -<BorlandProject><Delphi.Personality><Parameters><Parameters Name="RunParams">--ignore-ide</Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">False</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1031</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">JVCLInstall.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> - </ProjectExtensions> - <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> - <ItemGroup> - <DelphiCompile Include="JVCLInstall.dpr"> - <MainSource>MainSource</MainSource> - </DelphiCompile> - <DCCReference Include="..\..\devtools\common\PackageInformation.pas" /> - <DCCReference Include="..\..\devtools\PackagesGenerator\ConditionParser.pas" /> - <DCCReference Include="..\..\devtools\PackagesGenerator\FileUtils.pas" /> - <DCCReference Include="..\..\devtools\PackagesGenerator\GenerateUtils.pas" /> - <DCCReference Include="..\..\devtools\PackagesGenerator\UtilsJcl.pas" /> - <DCCReference Include="CmdLineUtils.pas" /> - <DCCReference Include="Compile.pas" /> - <DCCReference Include="Core.pas" /> - <DCCReference Include="Dcc32FileAgePatch.pas" /> - <DCCReference Include="DelphiData.pas" /> - <DCCReference Include="Frames\FrmConfigPage.pas"> - <Form>FrameConfigPage</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmDirEditBrowse.pas"> - <Form>FrameDirEditBrowse</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmInstall.pas"> - <Form>FrameInstall</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmPackageSelection.pas"> - <Form>FramePackageSelection</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmUninstall.pas"> - <Form>FrameUninstall</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="FrmCompile.pas"> - <Form>FormCompile</Form> - </DCCReference> - <DCCReference Include="FrmCompileMessages.pas"> - <Form>FormCompileMessages</Form> - </DCCReference> - <DCCReference Include="Helpers\AHCompBrowseFolderDlg.pas" /> - <DCCReference Include="Helpers\CapExec.pas" /> - <DCCReference Include="Helpers\dpp_PascalParser.pas" /> - <DCCReference Include="Helpers\HtHint.pas" /> - <DCCReference Include="Helpers\JVCLConfiguration.pas" /> - <DCCReference Include="Helpers\MainConfig.pas"> - <Form>FormJvclIncConfig</Form> - </DCCReference> - <DCCReference Include="InstallerConsts.pas" /> - <DCCReference Include="Intf.pas" /> - <DCCReference Include="JCLData.pas" /> - <DCCReference Include="JediRegInfo.pas" /> - <DCCReference Include="JVCL3Install.pas" /> - <DCCReference Include="JVCLData.pas" /> - <DCCReference Include="Main.pas"> - <Form>FormMain</Form> - </DCCReference> - <DCCReference Include="MissingPropertyFix.pas" /> - <DCCReference Include="PackageUtils.pas" /> - <DCCReference Include="PageBuilder.pas" /> - <DCCReference Include="Pages\PgConfig.pas" /> - <DCCReference Include="Pages\PgIDESelection.pas" /> - <DCCReference Include="Pages\PgInstall.pas" /> - <DCCReference Include="Pages\PgPackageSelection.pas" /> - <DCCReference Include="Pages\PgSummary.pas" /> - <DCCReference Include="Pages\PgUninstall.pas" /> - <DCCReference Include="RegConfig.pas" /> - <DCCReference Include="Utils.pas" /> - </ItemGroup> -</Project> \ No newline at end of file + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{b9adeaf6-4ca3-49a2-bc27-b57e9973052c}</ProjectGuid> + <MainSource>JVCLInstall.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_Release)'!=''"> + <Cfg_Release>true</Cfg_Release> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_Debug)'!=''"> + <Cfg_Debug>true</Cfg_Debug> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>JVCLInstall.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_Release)'!=''"> + <DCC_HppOutput>..\..\dcu</DCC_HppOutput> + <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> + <Version>7.0</Version> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_MapFile>3</DCC_MapFile> + <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> + <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> + <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;RELEASE;$(DCC_Define)</DCC_Define> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_Debug)'!=''"> + <DCC_HppOutput>..\..\dcu</DCC_HppOutput> + <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> + <Version>7.0</Version> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_MapFile>3</DCC_MapFile> + <DCC_ObjPath>..\..\common;..\..\run;..\..\Resources;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> + <DCC_ResourcePath>..\..\common;..\..\run;..\..\Resources;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_UnitSearchPath>..\..\common;..\..\run;..\..\Resources;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> + <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;DEBUG;$(DCC_Define)</DCC_Define> + <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> + <DCC_IncludePath>..\..\common;..\..\run;..\..\Resources;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="JVCLInstall.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Main.pas"> + <Form>FormMain</Form> + </DCCReference> + <DCCReference Include="Core.pas"/> + <DCCReference Include="JVCL3Install.pas"/> + <DCCReference Include="PageBuilder.pas"/> + <DCCReference Include="DelphiData.pas"/> + <DCCReference Include="JCLData.pas"/> + <DCCReference Include="JVCLData.pas"/> + <DCCReference Include="Helpers\AHCompBrowseFolderDlg.pas"/> + <DCCReference Include="Pages\PgIDESelection.pas"/> + <DCCReference Include="Pages\PgConfig.pas"/> + <DCCReference Include="Frames\FrmConfigPage.pas"> + <Form>FrameConfigPage</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Helpers\dpp_PascalParser.pas"/> + <DCCReference Include="Helpers\JVCLConfiguration.pas"/> + <DCCReference Include="Frames\FrmDirEditBrowse.pas"> + <Form>FrameDirEditBrowse</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Frames\FrmUninstall.pas"> + <Form>FrameUninstall</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Pages\PgSummary.pas"/> + <DCCReference Include="Frames\FrmPackageSelection.pas"> + <Form>FramePackageSelection</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="..\..\devtools\PackagesGenerator\FileUtils.pas"/> + <DCCReference Include="..\..\devtools\PackagesGenerator\GenerateUtils.pas"/> + <DCCReference Include="..\..\devtools\PackagesGenerator\ConditionParser.pas"/> + <DCCReference Include="..\..\devtools\PackagesGenerator\UtilsJcl.pas"/> + <DCCReference Include="..\..\devtools\common\PackageInformation.pas"/> + <DCCReference Include="Utils.pas"/> + <DCCReference Include="Compile.pas"/> + <DCCReference Include="Intf.pas"/> + <DCCReference Include="PackageUtils.pas"/> + <DCCReference Include="Helpers\CapExec.pas"/> + <DCCReference Include="Pages\PgPackageSelection.pas"/> + <DCCReference Include="Helpers\HtHint.pas"/> + <DCCReference Include="MissingPropertyFix.pas"/> + <DCCReference Include="Frames\FrmInstall.pas"> + <Form>FrameInstall</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Pages\PgInstall.pas"/> + <DCCReference Include="Pages\PgUninstall.pas"/> + <DCCReference Include="Helpers\MainConfig.pas"> + <Form>FormJvclIncConfig</Form> + </DCCReference> + <DCCReference Include="CmdLineUtils.pas"/> + <DCCReference Include="InstallerConsts.pas"/> + <DCCReference Include="FrmCompile.pas"> + <Form>FormCompile</Form> + </DCCReference> + <DCCReference Include="FrmCompileMessages.pas"> + <Form>FormCompileMessages</Form> + </DCCReference> + <DCCReference Include="JediRegInfo.pas"/> + <DCCReference Include="RegConfig.pas"/> + <DCCReference Include="Dcc32FileAgePatch.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_Release</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_Debug</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" Condition="Exists('$(MSBuildBinPath)\Borland.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality</Borland.Personality> + <Borland.ProjectType/> + <BorlandProject><BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="RunParams">--ignore-ide</Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1031</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">JVCLInstall.dpr</Source> + </Source> + </Delphi.Personality> +</BorlandProject> +</BorlandProject> + </ProjectExtensions> + </Project> Modified: trunk/jvcl/install/JVCLInstall/PackageUtils.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/PackageUtils.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/PackageUtils.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -32,6 +32,7 @@ uses SysUtils, Classes, Contnrs, + JclBase, JvSimpleXml, Utils, DelphiData, Intf, GenerateUtils, PackageInformation; @@ -134,6 +135,12 @@ implementation +{$IFNDEF COMPILER12_UP} +uses + JvJCLUtils; +{$ENDIF ~COMPILER12_UP} + + function BplNameToGenericName(const BplName: string): string; var I, Len : Integer; @@ -144,7 +151,7 @@ // Remove numbers from the end of the package name Len := Length(Result); I := Len-1; - while (I > 0) and (Result[I] in ['0'..'9']) do + while (I > 0) and CharInSet(Result[I], ['0'..'9']) do Dec(I); Delete(Result, I+1, Len-I-1); Modified: trunk/jvcl/install/JVCLInstall/Utils.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Utils.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/JVCLInstall/Utils.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -209,6 +209,15 @@ Result := (Attr <> $FFFFFFFF) and (Attr and FILE_ATTRIBUTE_DIRECTORY <> 0); end; +{$IFDEF COMPILER11_UP} +function FileAgeEx(const FileName: string): Integer; +begin + {$WARNINGS OFF} // FileAge; deprecated + Result := SysUtils.FileAge(Filename); + {$WARNINGS ON} +end; + +{$ELSE} function GetFileAttributesExPreload(lpFileName: PChar; fInfoLevelId: TGetFileExInfoLevels; lpFileInformation: Pointer): BOOL; stdcall; forward; @@ -240,7 +249,11 @@ function GetFileAttributesExPreload(lpFileName: PChar; fInfoLevelId: TGetFileExInfoLevels; lpFileInformation: Pointer): BOOL; stdcall; begin + {$IFDEF UNICODE} + GetFileAttributesExFunc := GetProcAddress(GetModuleHandle(kernel32), 'GetFileAttributesExW'); + {$ELSE} GetFileAttributesExFunc := GetProcAddress(GetModuleHandle(kernel32), 'GetFileAttributesExA'); + {$ENDIF UNICODE} if not Assigned(GetFileAttributesExFunc) then GetFileAttributesExFunc := GetFileAttributesExEmulated; Result := GetFileAttributesExFunc(lpFileName, fInfoLevelId, lpFileInformation); @@ -263,6 +276,7 @@ end; Result := -1; end; +{$ENDIF COMPILER11_UP} function Path(const APath: string): string; var Modified: trunk/jvcl/install/release/want/WantClasses.pas =================================================================== --- trunk/jvcl/install/release/want/WantClasses.pas 2008-09-09 20:33:00 UTC (rev 11891) +++ trunk/jvcl/install/release/want/WantClasses.pas 2008-09-09 20:35:07 UTC (rev 11892) @@ -60,14 +60,10 @@ const AntBuildFileName = 'build.xml'; - SupportedPropertyTypes = [ - tkInteger, - tkEnumeration, - tkString, - tkLString, - tkWString, - tkClass]; + tkStrings = [tkString, tkLString, {$IFDEF UNICODE} tkUString, {$ENDIF} tkWString]; + SupportedPropertyTypes = [tkInteger, tkEnumeration, tkClass] + tkStrings; + LabeledMsgFormat = '%14s %s'; type @@ -1045,7 +1041,7 @@ and (Kind in SupportedPropertyTypes) then begin - if Kind in [tkString, tkLString, tkWString] then + if Kind in tkStrings then Result := GetStrProp(Self, PropInfo) else if Kind in [tkInteger] then Result := IntToStr(GetOrdProp(Self, PropInfo)) @@ -1095,7 +1091,7 @@ begin with PropInfo^, PropType^^ do begin - if Kind in [tkString, tkLString, tkWString] then + if Kind in tkStrings then begin if (Name = 'TPath') then Value := ToRelativePath(Value); @@ -1503,7 +1499,7 @@ aName := Copy(aName,2,MaxInt); aValue := PropInfo^.PropType^.Name; case PropInfo^.PropType^.Kind of - tkString, tkLString,tkWString:; // do nothing + tkString, tkLString, {$IFDEF UNICODE} tkUString, {$ENDIF} tkWString: ; // do nothing tkInteger: begin TypeData := GetTypeData(PropInfo^.PropType^); Deleted: trunk/jvcl/lib/d12/d12.txt =================================================================== --- branches/JVCL3_35_PREPARATION/lib/d12/d12.txt 2008-09-09 16:46:35 UTC (rev 11888) +++ trunk/jvcl/lib/d12/d12.txt 2008-09-09 20:35:07 UTC (rev 11892) @@ -1 +0,0 @@ -This directory is intended as a common place for Delphi 2008 DCU/DCUIL files. \ No newline at end of file Copied: trunk/jvcl/lib/d12/d12.txt (from rev 11888, branches/JVCL3_35_PREPARATION/lib/d12/d12.txt) =================================================================== --- trunk/jvcl/lib/d12/d12.txt (rev 0) +++ trunk/jvcl/lib/d12/d12.txt 2008-09-09 20:35:07 UTC (rev 11892) @@ -0,0 +1 @@ +This directory is intended as a common place for Delphi 2008 DCU/DCUIL files. \ No newline at end of file Deleted: trunk/jvcl/lib/d12/debug/debug.txt =================================================================== --- branches/JVCL3_35_PREPARATION/lib/d12/debug/debug.txt 2008-09-09 16:46:35 UTC (rev 11888) +++ trunk/jvcl/lib/d12/debug/debug.txt 2008-09-09 20:35:07 UTC (rev 11892) @@ -1 +0,0 @@ -This directory is intended as a common place for Debug DCU files. \ No newline at end of file Copied: trunk/jvcl/lib/d12/debug/debug.txt (from rev 11888, branches/JVCL3_35_PREPARATION/lib/d12/debug/debug.txt) =================================================================== --- trunk/jvcl/lib/d12/debug/debug.txt (rev 0) +++ trunk/jvcl/lib/d12/debug/debug.txt 2008-09-09 20:35:07 UTC (rev 11892) @@ -0,0 +1 @@ +This directory is intended as a common place for Debug DCU files. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cyc...@us...> - 2008-09-21 07:01:07
|
Revision: 11909 http://jvcl.svn.sourceforge.net/jvcl/?rev=11909&view=rev Author: cycocrew Date: 2008-09-21 07:00:59 +0000 (Sun, 21 Sep 2008) Log Message: ----------- Minor changes so JVCLMegademo can compile + removal of warnings Modified Paths: -------------- trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.dfm trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.pas trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/JclParseUses.pas trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.dfm trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.pas trunk/jvcl/examples/JvTrayIcon/MainFrm.dfm trunk/jvcl/examples/JvTrayIcon/MainFrm.pas trunk/jvcl/run/JvInspDB.pas trunk/jvcl/run/JvPageSetupTitled.pas Modified: trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.dfm =================================================================== --- trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.dfm 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.dfm 2008-09-21 07:00:59 UTC (rev 11909) @@ -1,31 +1,34 @@ object JvDBImageDemoMainFrm: TJvDBImageDemoMainFrm Left = 192 Top = 107 - Width = 716 - Height = 388 Caption = 'JvDBImage Demo' + ClientHeight = 345 + ClientWidth = 698 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText - Font.Height = -11 + Font.Height = -14 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 + DesignSize = ( + 698 + 345) + PixelsPerInch = 120 + TextHeight = 17 object DBGrid1: TJvDBGrid - Left = 8 - Top = 8 - Width = 478 - Height = 315 + Left = 10 + Top = 10 + Width = 626 + Height = 412 Anchors = [akLeft, akTop, akBottom] DataSource = DataSource1 Options = [dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgCancelOnExit, dgMultiSelect] TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText - TitleFont.Height = -11 + TitleFont.Height = -14 TitleFont.Name = 'Tahoma' TitleFont.Style = [] MultiSelect = True @@ -35,109 +38,110 @@ SelectColumnsDialogStrings.OK = '&OK' SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' EditControls = <> - RowsHeight = 17 - TitleRowHeight = 17 + RowsHeight = 21 + TitleRowHeight = 21 Columns = < item Expanded = False FieldName = 'Filename' - Width = 381 + Width = 502 Visible = True end item Expanded = False FieldName = 'FileType' - Width = 80 + Width = 106 Visible = True end> end object btnAdd: TButton - Left = 616 - Top = 328 - Width = 75 - Height = 25 + Left = 806 + Top = 429 + Width = 98 + Height = 33 Anchors = [akRight, akBottom] Caption = 'Add...' TabOrder = 1 OnClick = btnAddClick end object btnClear: TButton - Left = 488 - Top = 328 - Width = 115 - Height = 25 + Left = 638 + Top = 429 + Width = 151 + Height = 33 Anchors = [akRight, akBottom] Caption = 'Clear DB' TabOrder = 2 OnClick = btnClearClick end object chkTransparent: TCheckBox - Left = 16 - Top = 336 - Width = 80 - Height = 17 + Left = 21 + Top = 439 + Width = 105 + Height = 23 Anchors = [akLeft, akBottom] Caption = '&Transparent' TabOrder = 3 OnClick = chkTransparentClick end object chkStretch: TCheckBox - Left = 99 - Top = 336 - Width = 56 - Height = 17 + Left = 129 + Top = 439 + Width = 74 + Height = 23 Anchors = [akLeft, akBottom] Caption = '&Stretch' TabOrder = 4 OnClick = chkStretchClick end object chkProportional: TCheckBox - Left = 160 - Top = 336 - Width = 80 - Height = 17 + Left = 209 + Top = 439 + Width = 105 + Height = 23 Anchors = [akLeft, akBottom] Caption = '&Proportional' TabOrder = 5 OnClick = chkProportionalClick end object chkAutoDisplay: TCheckBox - Left = 247 - Top = 336 - Width = 87 - Height = 17 + Left = 323 + Top = 439 + Width = 114 + Height = 23 Anchors = [akLeft, akBottom] Caption = '&AutoDisplay' TabOrder = 6 OnClick = chkAutoDisplayClick end object chkAutoSize: TCheckBox - Left = 345 - Top = 336 - Width = 87 - Height = 17 + Left = 451 + Top = 439 + Width = 114 + Height = 23 Anchors = [akLeft, akBottom] Caption = 'AutoSi&ze' TabOrder = 7 OnClick = chkAutoSizeClick end object ScrollBox1: TScrollBox - Left = 496 - Top = 8 - Width = 203 - Height = 313 + Left = 649 + Top = 10 + Width = 265 + Height = 410 Anchors = [akLeft, akTop, akRight, akBottom] BorderStyle = bsNone TabOrder = 8 object JvDBImage1: TJvDBImage Left = 0 Top = 0 - Width = 203 - Height = 313 + Width = 265 + Height = 410 Align = alClient DataField = 'Image' DataSource = DataSource1 TabOrder = 0 + ExplicitHeight = 409 end end object DataSource1: TDataSource Modified: trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.pas =================================================================== --- trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.pas 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/examples/JvDBImage/JvDBImageDemoMainForm.pas 2008-09-21 07:00:59 UTC (rev 11909) @@ -33,7 +33,7 @@ uses Windows, Messages, SysUtils, {$IFDEF COMPILER6_UP}Variants, {$ENDIF} Classes, Graphics, Controls, Forms, Dialogs, JvDBImage, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBClient, - jpeg, JvGIF, JvPCX, JvAni, ExtDlgs, StdCtrls, JvExDBGrids, JvDBGrid; + jpeg, JvGIF, JvPCX, JvAni, ExtDlgs, StdCtrls, JvExDBGrids, JvDBGrid, JvJVCLUtils; type TJvDBImageDemoMainFrm = class(TForm) Modified: trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/JclParseUses.pas =================================================================== --- trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/JclParseUses.pas 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/JclParseUses.pas 2008-09-21 07:00:59 UTC (rev 11909) @@ -31,7 +31,7 @@ interface uses - Classes, SysUtils; + Classes, SysUtils, Windows; type EUsesListError = class(Exception); Modified: trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.dfm =================================================================== --- trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.dfm 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.dfm 2008-09-21 07:00:59 UTC (rev 11909) @@ -1,26 +1,25 @@ object JvNavPaneDemoMainFrm: TJvNavPaneDemoMainFrm Left = 235 Top = 113 - AutoScroll = False Caption = 'JvNavigationPane Demo' - ClientHeight = 434 - ClientWidth = 510 + ClientHeight = 568 + ClientWidth = 667 Color = clBtnFace DockSite = True Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText - Font.Height = -11 + Font.Height = -14 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 + PixelsPerInch = 120 + TextHeight = 17 object JvOutlookSplitter1: TJvOutlookSplitter Left = 0 Top = 0 - Width = 7 - Height = 434 + Width = 9 + Height = 568 Cursor = crSizeWE Align = alLeft ColorFrom = 7703937 @@ -107,7 +106,7 @@ Left = 84 Bitmap = { 494C010106000900040018001400FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000600000003C0000000100200000000000005A + 000000000000360000002800000060000000280000000100200000000000003C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -120,246 +119,6 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000084AD C60039637300395A7B0039637300395A7B00395A730039637B00396373003963 7B003963730039637B0039637B00395A730039637B0039637300395A7B003963 @@ -829,37 +588,30 @@ 00000000000000000000000000000000000000000000849CA500849CA500849C A5008C9CA5006B7B8C0000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 - 28000000600000003C0000000100010000000000D00200000000000000000000 - 000000000000000000000000FFFFFF0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - FFFFFFFFFFFF000000000000E00003800001000000000000E000038000010000 - 00000000E00003800001000000000000E00003800001000000000000E0000380 + 2800000060000000280000000100010000000000E00100000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFFFFFF000000000000E0000380 0001000000000000E00003800001000000000000E00003800001000000000000 E00003800001000000000000E00003800001000000000000E000038000010000 00000000E00003800001000000000000E00003800001000000000000E0000380 0001000000000000E00003800001000000000000E00003800001000000000000 - E00003800003000000000000E00003800FFF000000000000E00003C01FFF0000 - 00000000E00003E03FFF000000000000E00003FFFFFFFFFFFFFFFFFFC0000300 - 0003FFFFFFC0000FC00003000003C00000C00007C00003000003C00000C00007 - C00003000003C00000C00007C00003000003C00000C00007C00003000003C000 + E00003800001000000000000E00003800001000000000000E000038000010000 + 00000000E00003800001000000000000E00003800003000000000000E0000380 + 0FFF000000000000E00003C01FFF000000000000E00003E03FFF000000000000 + E00003FFFFFFFFFFFFFFFFFFC00003000003FFFFFFC0000FC00003000003C000 00C00007C00003000003C00000C00007C00003000003C00000C00007C0000300 0003C00000C00007C00003000003C00000C00007C00003000003C00000C00007 - C00007000003C00000C00007C00007000003C00000C00007E0000F000003C000 - 00C00007F0001F000003C00000C00007F8007F000003C00000C00007FE00FF00 - 0003C00000C00007FF01FF555557C00000E0000FFFC3FFAAAAABFFFFFFFF83FF - 00000000000000000000000000000000000000000000} + C00003000003C00000C00007C00003000003C00000C00007C00003000003C000 + 00C00007C00003000003C00000C00007C00007000003C00000C00007C0000700 + 0003C00000C00007E0000F000003C00000C00007F0001F000003C00000C00007 + F8007F000003C00000C00007FE00FF000003C00000C00007FF01FF555557C000 + 00E0000FFFC3FFAAAAABFFFFFFFF83FF00000000000000000000000000000000 + 000000000000} end object SmallImages: TImageList Left = 32 Bitmap = { 494C010106000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000003000000001002000000000000030 + 0000000000003600000028000000400000002000000001002000000000000020 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -868,134 +620,6 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000008CADC6005A738C00637B 8C005A7B8C00637B8C00637B8C005A636B00525A63005A636B0052636300525A 6B00526363005263630052636B00000000000000000000000000000000000000 @@ -1245,12 +869,8 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000084ADC6008C9CA500849CAD0000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000300000000100010000000000800100000000000000000000 - 000000000000000000000000FFFFFF0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000FFFFFFFF000000008001FFFF00000000 + 2800000040000000200000000100010000000000000100000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFF000000008001FFFF00000000 8001FFFF00000000800100010000000080010001000000008001000100000000 8001000100000000800100010000000080010001000000008001000100000000 800100010000000080010001000000008001000300000000800101FF00000000 @@ -1273,79 +893,7 @@ Top = 65532 Bitmap = { 494C01010600090004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 000000000000360000002800000030000000240000000100200000000000001B - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003600000028000000300000001800000001002000000000000012 0000000000000000000000000000000000000000000000000000C6C6C6008484 8400000000000000000000000000000000000000000084848400000000000000 00000000000000000000C6C6C600848484000000000000000000000000000000 @@ -1491,11 +1039,8 @@ 00000000000084848400C6C6C600848484008484840084848400000000000000 0000000000000000000000000000000000000000000084848400C6C6C6008484 840084848400848484000000000000000000424D3E000000000000003E000000 - 2800000030000000240000000100010000000000200100000000000000000000 - 000000000000000000000000FFFFFF0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000C03C010000000000F9FF800000000000 + 2800000030000000180000000100010000000000C00000000000000000000000 + 000000000000000000000000FFFFFF00C03C010000000000F9FF800000000000 E07E000000000000C03C00000000000080180000000000008018000000000000 0000000000000000A05A050000000000E07E070000000000E07E070000000000 E07E070000000000F0FF0F0000000000FFFF9CE00E000000000000F01F000000 Modified: trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.pas =================================================================== --- trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.pas 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/examples/JvNavigationPane/JvNavPaneDemoMainForm.pas 2008-09-21 07:00:59 UTC (rev 11909) @@ -7,7 +7,7 @@ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, JvOutlookBar, ComCtrls, CheckLst, JvComponent, JvNavigationPane, ImgList, Menus, JvPageList, JclWin32, JvExControls, ExtCtrls, - JvExExtCtrls, ExtDlgs; + JvExExtCtrls, ExtDlgs, Types, JvComponentBase; type TJvNavPaneDemoMainFrm = class(TForm) @@ -60,6 +60,7 @@ JvNavPaneDemoMainFrm: TJvNavPaneDemoMainFrm; implementation + uses CommCtrl; Modified: trunk/jvcl/examples/JvTrayIcon/MainFrm.dfm =================================================================== --- trunk/jvcl/examples/JvTrayIcon/MainFrm.dfm 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/examples/JvTrayIcon/MainFrm.dfm 2008-09-21 07:00:59 UTC (rev 11909) @@ -17,7 +17,10 @@ Position = poDesktopCenter Scaled = False OnShow = FormShow - PixelsPerInch = 96 + DesignSize = ( + 402 + 420) + PixelsPerInch = 120 TextHeight = 13 object GroupBox1: TGroupBox Left = 8 @@ -27,6 +30,9 @@ Anchors = [akLeft, akTop, akRight] Caption = ' Tray Icon Options ' TabOrder = 0 + DesignSize = ( + 385 + 361) object Label1: TLabel Left = 16 Top = 56 @@ -284,7 +290,7 @@ Top = 32 end object popTrayIcon: TPopupMenu - Left = 320 + Left = 312 Top = 32 object mnuShowHide: TMenuItem Caption = 'Show / Hide' @@ -294,8 +300,8 @@ object RestoreTimer: TTimer Interval = 15000 OnTimer = RestoreTimerTimer - Left = 174 - Top = 156 + Left = 350 + Top = 28 end object ImageList1: TImageList Left = 224 Modified: trunk/jvcl/examples/JvTrayIcon/MainFrm.pas =================================================================== --- trunk/jvcl/examples/JvTrayIcon/MainFrm.pas 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/examples/JvTrayIcon/MainFrm.pas 2008-09-21 07:00:59 UTC (rev 11909) @@ -31,7 +31,7 @@ uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, JvComponent, JvTrayIcon, ExtCtrls, - JvExControls, JvDockControlForm, ImgList; + JvExControls, JvDockControlForm, ImgList, JvComponentBase; type TfrmMain = class(TForm) Modified: trunk/jvcl/run/JvInspDB.pas =================================================================== --- trunk/jvcl/run/JvInspDB.pas 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/run/JvInspDB.pas 2008-09-21 07:00:59 UTC (rev 11909) @@ -35,7 +35,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} SysUtils, Classes, DB, TypInfo, DBCtrls, - JvInspector; + JvInspector, Windows; type TJvInspectorDBData = class(TJvCustomInspectorData) Modified: trunk/jvcl/run/JvPageSetupTitled.pas =================================================================== --- trunk/jvcl/run/JvPageSetupTitled.pas 2008-09-19 16:55:55 UTC (rev 11908) +++ trunk/jvcl/run/JvPageSetupTitled.pas 2008-09-21 07:00:59 UTC (rev 11909) @@ -33,7 +33,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} Classes, Messages, - JvPageSetup; + JvPageSetup, Types; type TJvPageSetupTitledDialog = class(TJvPageSetupDialog) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2008-09-21 13:54:33
|
Revision: 11912 http://jvcl.svn.sourceforge.net/jvcl/?rev=11912&view=rev Author: obones Date: 2008-09-21 13:54:26 +0000 (Sun, 21 Sep 2008) Log Message: ----------- Mantis 4466: StrToFloatDef renamed to StrToFloatDefIgnoreInvalidCharacters Modified Paths: -------------- trunk/jvcl/examples/JvValidateEdit/MainFrm.pas trunk/jvcl/run/JvAppDBStorage.pas trunk/jvcl/run/JvChart.pas trunk/jvcl/run/JvJCLUtils.pas trunk/jvcl/run/JvStringGrid.pas trunk/jvcl/run/JvValidateEdit.pas trunk/jvcl/run/JvXmlDatabase.pas Modified: trunk/jvcl/examples/JvValidateEdit/MainFrm.pas =================================================================== --- trunk/jvcl/examples/JvValidateEdit/MainFrm.pas 2008-09-21 13:32:06 UTC (rev 11911) +++ trunk/jvcl/examples/JvValidateEdit/MainFrm.pas 2008-09-21 13:54:26 UTC (rev 11912) @@ -160,13 +160,13 @@ procedure TfrmValidateEditDemo.chkHasMaxValueClick(Sender: TObject); begin - JvValidateEdit.MaxValue := StrToFloatDef(edMaxValue.Text, 0); + JvValidateEdit.MaxValue := StrToFloatDefIgnoreInvalidCharacters(edMaxValue.Text, 0); JvValidateEdit.HasMaxValue := chkHasMaxValue.Checked; end; procedure TfrmValidateEditDemo.chkHasMinValueClick(Sender: TObject); begin - JvValidateEdit.MinValue := StrToFloatDef(edMinValue.Text, 0); + JvValidateEdit.MinValue := StrToFloatDefIgnoreInvalidCharacters(edMinValue.Text, 0); JvValidateEdit.HasMinValue := chkHasMinValue.Checked; end; @@ -180,9 +180,9 @@ JvValidateEdit.AsCurrency := StrToCurrDef(edSetTo.Text, 0); 1: if chkAsVariant.Checked then - JvValidateEdit.Value := StrToFloatDef(edSetTo.Text, 0) + JvValidateEdit.Value := StrToFloatDefIgnoreInvalidCharacters(edSetTo.Text, 0) else - JvValidateEdit.AsFloat := StrToFloatDef(edSetTo.Text, 0); + JvValidateEdit.AsFloat := StrToFloatDefIgnoreInvalidCharacters(edSetTo.Text, 0); 2: if chkAsVariant.Checked then JvValidateEdit.Value := StrToIntDef(edSetTo.Text, 0) @@ -219,13 +219,13 @@ procedure TfrmValidateEditDemo.edCPMaxValueExit(Sender: TObject); begin - JvValidateEdit.CriticalPoints.MaxValue := StrToFloatDef(edCPMaxValue.Text, 0); + JvValidateEdit.CriticalPoints.MaxValue := StrToFloatDefIgnoreInvalidCharacters(edCPMaxValue.Text, 0); edCPMaxValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MaxValue); end; procedure TfrmValidateEditDemo.edCPMinValueExit(Sender: TObject); begin - JvValidateEdit.CriticalPoints.MinValue := StrToFloatDef(edCPMinValue.Text, 0); + JvValidateEdit.CriticalPoints.MinValue := StrToFloatDefIgnoreInvalidCharacters(edCPMinValue.Text, 0); edCPMinValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MinValue); end; @@ -248,12 +248,12 @@ procedure TfrmValidateEditDemo.edMaxValueExit(Sender: TObject); begin - JvValidateEdit.MaxValue := StrToFloatDef(edMaxValue.Text, 0); + JvValidateEdit.MaxValue := StrToFloatDefIgnoreInvalidCharacters(edMaxValue.Text, 0); end; procedure TfrmValidateEditDemo.edMinValueExit(Sender: TObject); begin - JvValidateEdit.MinValue := StrToFloatDef(edMinValue.Text, 0); + JvValidateEdit.MinValue := StrToFloatDefIgnoreInvalidCharacters(edMinValue.Text, 0); end; procedure TfrmValidateEditDemo.JvValidateEditCustomValidate( Modified: trunk/jvcl/run/JvAppDBStorage.pas =================================================================== --- trunk/jvcl/run/JvAppDBStorage.pas 2008-09-21 13:32:06 UTC (rev 11911) +++ trunk/jvcl/run/JvAppDBStorage.pas 2008-09-21 13:54:26 UTC (rev 11912) @@ -212,7 +212,7 @@ function TJvCustomAppDBStorage.DoReadFloat(const Path: string; Default: Extended): Extended; begin - Result := StrToFloatDef(DoReadString(Path, ''), Default); + Result := StrToFloatDefIgnoreInvalidCharacters(DoReadString(Path, ''), Default); end; function TJvCustomAppDBStorage.DoReadInteger(const Path: string; Modified: trunk/jvcl/run/JvChart.pas =================================================================== --- trunk/jvcl/run/JvChart.pas 2008-09-21 13:32:06 UTC (rev 11911) +++ trunk/jvcl/run/JvChart.pas 2008-09-21 13:54:26 UTC (rev 11912) @@ -4012,7 +4012,7 @@ begin StrString := FloatToStr(Options.PrimaryYAxis.YMax); if InputQuery(RsGraphScale, Format(RsYAxisScales, [FloatToStr(Options.PrimaryYAxis.YMax)]), StrString) then - Options.PrimaryYAxis.YMax := StrToFloatDef(StrString, Options.PrimaryYAxis.YMax) + Options.PrimaryYAxis.YMax := StrToFloatDefIgnoreInvalidCharacters(StrString, Options.PrimaryYAxis.YMax) else Exit; Modified: trunk/jvcl/run/JvJCLUtils.pas =================================================================== --- trunk/jvcl/run/JvJCLUtils.pas 2008-09-21 13:32:06 UTC (rev 11911) +++ trunk/jvcl/run/JvJCLUtils.pas 2008-09-21 13:54:26 UTC (rev 11912) @@ -878,11 +878,12 @@ { there is a STrToIntDef provided by Delphi, but no "safe" versions of StrToFloat or StrToCurr } -// Note: before using StrToFloatDef, please be aware that it will ignore +// Note: before using StrToFloatDefIgnoreInvalidCharacters, please be aware that it will ignore // any character that is not a valid character for a float, which is different -// from what the one in Delphi 6 up is doing. This has been documented in Mantis -// issue# 2935: http://homepages.borland.com/jedi/issuetracker/view.php?id=2935 -function StrToFloatDef(const Str: string; Def: Extended): Extended; +// from what StrToFloatDef in Delphi 6 up is doing. This has been documented in Mantis +// issue# 2935: http://homepages.codegear.com/jedi/issuetracker/view.php?id=2935 +// and in Mantis 4466: http://homepages.codegear.com/jedi/issuetracker/view.php?id=4466 +function StrToFloatDefIgnoreInvalidCharacters(const Str: string; Def: Extended): Extended; function StrToCurrDef(const Str: string; Def: Currency): Currency; function IntToExtended(I: Integer): Extended; @@ -1524,7 +1525,7 @@ function StrToFloatUSDef(const Text: string; Default: Extended): Extended; begin - Result := StrToFloatDef(USToLocalFloatStr(Text), Default); + Result := StrToFloatDefIgnoreInvalidCharacters(USToLocalFloatStr(Text), Default); end; function VarIsInt(Value: Variant): Boolean; @@ -7880,7 +7881,7 @@ // any character that is not a valid character for a float, which is different // from what the one in Delphi 6 up is doing. This has been documented in Mantis // issue# 2935: http://homepages.borland.com/jedi/issuetracker/view.php?id=2935 -function StrToFloatDef(const Str: string; Def: Extended): Extended; +function StrToFloatDefIgnoreInvalidCharacters(const Str: string; Def: Extended): Extended; var LStr: TJclStringBuilder; {$IFDEF CLR} Modified: trunk/jvcl/run/JvStringGrid.pas =================================================================== --- trunk/jvcl/run/JvStringGrid.pas 2008-09-21 13:32:06 UTC (rev 11911) +++ trunk/jvcl/run/JvStringGrid.pas 2008-09-21 13:54:26 UTC (rev 11912) @@ -574,10 +574,10 @@ end; stNumeric: begin - TmpF := StrToFloatDef(St, 0); - while StrToFloatDef(Cells[Column, I], 0) < TmpF do + TmpF := StrToFloatDefIgnoreInvalidCharacters(St, 0); + while StrToFloatDefIgnoreInvalidCharacters(Cells[Column, I], 0) < TmpF do Inc(I); - while StrToFloatDef(Cells[Column, J], 0) > TmpF do + while StrToFloatDefIgnoreInvalidCharacters(Cells[Column, J], 0) > TmpF do Dec(J); end; stDate: Modified: trunk/jvcl/run/JvValidateEdit.pas =================================================================== --- trunk/jvcl/run/JvValidateEdit.pas 2008-09-21 13:32:06 UTC (rev 11911) +++ trunk/jvcl/run/JvValidateEdit.pas 2008-09-21 13:54:26 UTC (rev 11912) @@ -660,7 +660,7 @@ else if (OldFormat in [dfCurrency, dfFloat, dfFloatGeneral, dfDecimal, dfPercent]) and (NewValue in [dfBinary, dfHex, dfOctal]) then - SetAsFloat(StrToFloatDef(FEditText, 0)) + SetAsFloat(StrToFloatDefIgnoreInvalidCharacters(FEditText, 0)) else if (OldFormat = dfHex) and (NewValue in [dfBinary, dfCurrency, dfFloat, dfFloatGeneral, dfDecimal, dfInteger, dfOctal, dfPercent, dfScientific, dfYear]) then @@ -777,7 +777,7 @@ Result := Cur; end; else - Result := StrToFloatDef(FEditText, 0); + Result := StrToFloatDefIgnoreInvalidCharacters(FEditText, 0); end; end; @@ -823,7 +823,7 @@ Result := Cur; end; dfFloat, dfFloatGeneral, dfDecimal, dfPercent, dfScientific: - Result := StrToFloatDef(FEditText, 0); + Result := StrToFloatDefIgnoreInvalidCharacters(FEditText, 0); dfInteger, dfYear: Result := StrToIntDef(FEditText, 0); dfHex: @@ -1191,7 +1191,7 @@ bInExp: Boolean; begin if Pos('E', UpperCase(SciString)) = 0 then - Result := StrToFloatDef(SciString, 0) + Result := StrToFloatDefIgnoreInvalidCharacters(SciString, 0) else begin sMantissa := ''; @@ -1209,7 +1209,7 @@ sMantissa := sMantissa + SciString[I]; end; end; - Result := StrToFloatDef(sMantissa, 0) * Power(10, StrToFloatDef(sExponent, 0)); + Result := StrToFloatDefIgnoreInvalidCharacters(sMantissa, 0) * Power(10, StrToFloatDefIgnoreInvalidCharacters(sExponent, 0)); end; end; Modified: trunk/jvcl/run/JvXmlDatabase.pas =================================================================== --- trunk/jvcl/run/JvXmlDatabase.pas 2008-09-21 13:32:06 UTC (rev 11911) +++ trunk/jvcl/run/JvXmlDatabase.pas 2008-09-21 13:54:26 UTC (rev 11912) @@ -917,8 +917,8 @@ Result := StrToIntDef(LStr1, 0) - StrToIntDef(LStr2, 0); ocFloat: begin - LFloat1 := StrToFloatDef(LStr1, 0); - LFloat2 := StrToFloatDef(LStr2, 0); + LFloat1 := StrToFloatDefIgnoreInvalidCharacters(LStr1, 0); + LFloat2 := StrToFloatDefIgnoreInvalidCharacters(LStr2, 0); if LFloat1 > LFloat2 then Result := 1 else @@ -1346,13 +1346,13 @@ LValue2 := AElement.Properties.Value(SecondValue, ParseValue(SecondValue)); case SetOperator of soAdd: - LValue := FloatToStr(StrToFloatDef(LValue,0) + StrToFloatDef(LValue2,0)); + LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) + StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); soMultiply: - LValue := FloatToStr(StrToFloatDef(LValue,0) * StrToFloatDef(LValue2,0)); + LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) * StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); soDivide: - LValue := FloatToStr(StrToFloatDef(LValue,0) / StrToFloatDef(LValue2,0)); + LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) / StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); soSubstract: - LValue := FloatToStr(StrToFloatDef(LValue,0) - StrToFloatDef(LValue2,0)); + LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) - StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cyc...@us...> - 2008-10-05 22:38:10
|
Revision: 11943 http://jvcl.svn.sourceforge.net/jvcl/?rev=11943&view=rev Author: cycocrew Date: 2008-10-05 22:38:04 +0000 (Sun, 05 Oct 2008) Log Message: ----------- Sync'up jedi.inc from JCL Cosmetic changes Modified Paths: -------------- trunk/jvcl/common/jedi.inc trunk/jvcl/design/JvPluginWizard.pas Modified: trunk/jvcl/common/jedi.inc =================================================================== --- trunk/jvcl/common/jedi.inc 2008-10-05 22:29:29 UTC (rev 11942) +++ trunk/jvcl/common/jedi.inc 2008-10-05 22:38:04 UTC (rev 11943) @@ -30,7 +30,7 @@ { This file defines various generic compiler directives used in different libraries, e.g. in the } { JEDI Code Library (JCL) and JEDI Visual Component Library Library (JVCL). The directives in } { this file are of generic nature and consist mostly of mappings from the VERXXX directives } -{ defined by Delphi, C++ Builder and FPC to friendly names such as DELPHI5 and } +{ defined by Delphi, C++Builder and FPC to friendly names such as DELPHI5 and } { SUPPORTS_WIDESTRING. These friendly names are subsequently used in the libraries to test for } { compiler versions and/or whether the compiler supports certain features (such as widestrings or } { 64 bit integers. The libraries provide an additional, library specific, include file. For the } @@ -39,7 +39,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -51,18 +51,18 @@ This file defines two directives to indicate which development environment the library is being compiled with. Currently this can either be Delphi, Kylix, - C++ Builder or FPC. + C++Builder or FPC. Directive Description ------------------------------------------------------------------------------ DELPHI Defined if compiled with Delphi KYLIX Defined if compiled with Kylix DELPHICOMPILER Defined if compiled with Delphi or Kylix/Delphi - BCB Defined if compiled with C++ Builder - CPPBUILDER Defined if compiled with C++ Builder (alias for BCB) - BCBCOMPILER Defined if compiled with C++ Builder or Kylix/C++ - DELPHILANGUAGE Defined if compiled with Delphi, Kylix or C++ Builder - BORLAND Defined if compiled with Delphi, Kylix or C++ Builder + BCB Defined if compiled with C++Builder + CPPBUILDER Defined if compiled with C++Builder (alias for BCB) + BCBCOMPILER Defined if compiled with C++Builder or Kylix/C++ + DELPHILANGUAGE Defined if compiled with Delphi, Kylix or C++Builder + BORLAND Defined if compiled with Delphi, Kylix or C++Builder FPC Defined if compiled with FPC - Platform Directives @@ -131,11 +131,11 @@ DELPHI8 Defined when compiling with Delphi 8 DELPHI2005 Defined when compiling with Delphi 2005 DELPHI9 Alias for DELPHI2005 - DELPHI10 Defined when compiling with Delphi Personality of BDS 4.0 + DELPHI10 Defined when compiling with Delphi 2006 DELPHI2006 Alias for DELPHI10 DELPHI11 Defined when compiling with Delphi 2007 for Win32 DELPHI2007 Alias for DELPHI11 - DELPHI12 Defined when compiling with Delphi for Win32 2009 + DELPHI12 Defined when compiling with Delphi 2009 for Win32 DELPHI2009 Alias for DELPHI12 DELPHI1_UP Defined when compiling with Delphi 1 or higher DELPHI2_UP Defined when compiling with Delphi 2 or higher @@ -147,11 +147,11 @@ DELPHI8_UP Defined when compiling with Delphi 8 or higher DELPHI2005_UP Defined when compiling with Delphi 2005 or higher DELPHI9_UP Alias for DELPHI2005_UP - DELPHI10_UP Defined when compiling with Delphi Personality of BDS 4.0 or higher + DELPHI10_UP Defined when compiling with Delphi 2006 or higher DELPHI2006_UP Alias for DELPHI10_UP DELPHI11_UP Defined when compiling with Delphi 2007 for Win32 or higher DELPHI2007_UP Alias for DELPHI11_UP - DELPHI12_UP Defined when compiling with Delphi for Win32 2009 or higher + DELPHI12_UP Defined when compiling with Delphi 2009 for Win32 or higher DELPHI2009_UP Alias for DELPHI12_UP @@ -196,35 +196,35 @@ DELPHICOMPILER7_UP Defined when compiling with Delphi 7 or higher DELPHICOMPILER8_UP Defined when compiling with Delphi 8 or higher DELPHICOMPILER9_UP Defined when compiling with Delphi 2005 - DELPHICOMPILER10_UP Defined when compiling with Delphi Personality of BDS 4.0 or higher + DELPHICOMPILER10_UP Defined when compiling with Delphi 2006 or higher DELPHICOMPILER11_UP Defined when compiling with Delphi 2007 for Win32 or higher - DELPHICOMPILER12_UP Defined when compiling with Delphi Personality of BDS 6.0 or higher + DELPHICOMPILER12_UP Defined when compiling with Delphi 2009 for Win32 or higher -- C++ Builder Versions +- C++Builder Versions The following directives are direct mappings from the VERXXX directives to a friendly name of the associated compiler. These directives are only defined if - the compiler is C++ Builder (ie BCB is defined). + the compiler is C++Builder (ie BCB is defined). Directive Description ------------------------------------------------------------------------------ - BCB1 Defined when compiling with C++ Builder 1 - BCB3 Defined when compiling with C++ Builder 3 - BCB4 Defined when compiling with C++ Builder 4 - BCB5 Defined when compiling with C++ Builder 5 - BCB6 Defined when compiling with C++ Builder 6 - BCB10 Defined when compiling with C++ Builder Personality of BDS 4.0 (also known as C++Builder 2006) - BCB11 Defined when compiling with C++ Builder Personality of RAD Studio 2007 (also known as C++Builder 2007) - BCB12 Defined when compiling with C++ Builder Personality of RAD Studio 2009 (also known as C++Builder 2009) - BCB1_UP Defined when compiling with C++ Builder 1 or higher - BCB3_UP Defined when compiling with C++ Builder 3 or higher - BCB4_UP Defined when compiling with C++ Builder 4 or higher - BCB5_UP Defined when compiling with C++ Builder 5 or higher - BCB6_UP Defined when compiling with C++ Builder 6 or higher - BCB10_UP Defined when compiling with C++ Builder Personality of BDS 4.0 or higher - BCB11_UP Defined when compiling with C++ Builder Personality of RAD Studio 2007 or higher - BCB12_UP Defined when compiling with C++ Builder Personality of RAD Studio 2009 or higher + BCB1 Defined when compiling with C++Builder 1 + BCB3 Defined when compiling with C++Builder 3 + BCB4 Defined when compiling with C++Builder 4 + BCB5 Defined when compiling with C++Builder 5 + BCB6 Defined when compiling with C++Builder 6 + BCB10 Defined when compiling with C++Builder Personality of BDS 4.0 (also known as C++Builder 2006) + BCB11 Defined when compiling with C++Builder Personality of RAD Studio 2007 (also known as C++Builder 2007) + BCB12 Defined when compiling with C++Builder Personality of RAD Studio 2009 (also known as C++Builder 2009) + BCB1_UP Defined when compiling with C++Builder 1 or higher + BCB3_UP Defined when compiling with C++Builder 3 or higher + BCB4_UP Defined when compiling with C++Builder 4 or higher + BCB5_UP Defined when compiling with C++Builder 5 or higher + BCB6_UP Defined when compiling with C++Builder 6 or higher + BCB10_UP Defined when compiling with C++Builder Personality of BDS 4.0 or higher + BCB11_UP Defined when compiling with C++Builder Personality of RAD Studio 2007 or higher + BCB12_UP Defined when compiling with C++Builder Personality of RAD Studio 2009 or higher - CodeGear RAD Studio / Borland Developer Studio Versions @@ -238,7 +238,7 @@ Directive Description ------------------------------------------------------------------------------ - BDS Defined when compiling with a Borland Developer Studio version's dcc32.exe + BDS Defined when compiling with BDS version of dcc32.exe BDS2 Defined when compiling with BDS 2.0 (Delphi 8) BDS3 Defined when compiling with BDS 3.0 (Delphi 2005) BDS4 Defined when compiling with BDS 4.0 (Borland Developer Studio 2006) @@ -256,36 +256,36 @@ friendly name of the associated compiler. Unlike the DELPHI_X and BCB_X directives, these directives are indepedent of the development environment. That is, they are defined regardless of whether compilation takes place using - Delphi or C++ Builder. + Delphi or C++Builder. Directive Description ------------------------------------------------------------------------------ COMPILER1 Defined when compiling with Delphi 1 - COMPILER2 Defined when compiling with Delphi 2 or C++ Builder 1 + COMPILER2 Defined when compiling with Delphi 2 or C++Builder 1 COMPILER3 Defined when compiling with Delphi 3 - COMPILER35 Defined when compiling with C++ Builder 3 - COMPILER4 Defined when compiling with Delphi 4 or C++ Builder 4 - COMPILER5 Defined when compiling with Delphi 5 or C++ Builder 5 - COMPILER6 Defined when compiling with Delphi 6 or C++ Builder 6 + COMPILER35 Defined when compiling with C++Builder 3 + COMPILER4 Defined when compiling with Delphi 4 or C++Builder 4 + COMPILER5 Defined when compiling with Delphi 5 or C++Builder 5 + COMPILER6 Defined when compiling with Delphi 6 or C++Builder 6 COMPILER7 Defined when compiling with Delphi 7 COMPILER8 Defined when compiling with Delphi 8 COMPILER9 Defined when compiling with Delphi 9 - COMPILER10 Defined when compiling with Delphi or C++ Builder Personalities of BDS 4.0 - COMPILER11 Defined when compiling with Delphi 2007 for Win32 - COMPILER12 Defined when compiling with Delphi or C++ Builder Personalities of BDS 6.0 + COMPILER10 Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 + COMPILER11 Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 + COMPILER12 Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 COMPILER1_UP Defined when compiling with Delphi 1 or higher - COMPILER2_UP Defined when compiling with Delphi 2 or C++ Builder 1 or higher + COMPILER2_UP Defined when compiling with Delphi 2 or C++Builder 1 or higher COMPILER3_UP Defined when compiling with Delphi 3 or higher - COMPILER35_UP Defined when compiling with C++ Builder 3 or higher - COMPILER4_UP Defined when compiling with Delphi 4 or C++ Builder 4 or higher - COMPILER5_UP Defined when compiling with Delphi 5 or C++ Builder 5 or higher - COMPILER6_UP Defined when compiling with Delphi 6 or C++ Builder 6 or higher + COMPILER35_UP Defined when compiling with C++Builder 3 or higher + COMPILER4_UP Defined when compiling with Delphi 4 or C++Builder 4 or higher + COMPILER5_UP Defined when compiling with Delphi 5 or C++Builder 5 or higher + COMPILER6_UP Defined when compiling with Delphi 6 or C++Builder 6 or higher COMPILER7_UP Defined when compiling with Delphi 7 COMPILER8_UP Defined when compiling with Delphi 8 COMPILER9_UP Defined when compiling with Delphi Personalities of BDS 3.0 - COMPILER10_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 4.0 or higher - COMPILER11_UP Defined when compiling with Delphi 2007 for Win32 or higher - COMPILER12_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 6.0 or higher + COMPILER10_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher + COMPILER11_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher + COMPILER12_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher - RTL Versions @@ -293,7 +293,7 @@ Use e.g. following to determine the exact RTL version since version 14.0: {$IFDEF CONDITIONALEXPRESSIONS} {$IF Declared(RTLVersion) and (RTLVersion >= 14.2)} - // code for Delphi 6.02 or higher, Kylix 2 or higher, C++ Builder 6 or higher + // code for Delphi 6.02 or higher, Kylix 2 or higher, C++Builder 6 or higher ... {$IFEND} {$ENDIF} @@ -302,20 +302,20 @@ ------------------------------------------------------------------------------ RTL80_UP Defined when compiling with Delphi 1 or higher RTL90_UP Defined when compiling with Delphi 2 or higher - RTL93_UP Defined when compiling with C++ Builder 1 or higher + RTL93_UP Defined when compiling with C++Builder 1 or higher RTL100_UP Defined when compiling with Delphi 3 or higher - RTL110_UP Defined when compiling with C++ Builder 3 or higher + RTL110_UP Defined when compiling with C++Builder 3 or higher RTL120_UP Defined when compiling with Delphi 4 or higher - RTL125_UP Defined when compiling with C++ Builder 4 or higher - RTL130_UP Defined when compiling with Delphi 5 or C++ Builder 5 or higher - RTL140_UP Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++ Builder 6 or higher + RTL125_UP Defined when compiling with C++Builder 4 or higher + RTL130_UP Defined when compiling with Delphi 5 or C++Builder 5 or higher + RTL140_UP Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++Builder 6 or higher RTL150_UP Defined when compiling with Delphi 7 or higher RTL160_UP Defined when compiling with Delphi 8 or higher RTL170_UP Defined when compiling with Delphi Personalities of BDS 3.0 or higher - RTL180_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 4.0 or higher - RTL185_UP Defined when compiling with Delphi 2007 for Win32 or higher - RTL190_UP Defined when compiling with Delphi.NET of BDS 5.0 or later - RTL200_UP Defined when compiling with Delphi or C++ Builder Personalities of BDS 6.0 or later + RTL180_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher + RTL185_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher + RTL190_UP Defined when compiling with Delphi.NET of BDS 5.0 or higher + RTL200_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher - CLR Versions @@ -389,7 +389,7 @@ SUPPORTS_UNSAFE_WARNINGS Compiler supports unsafe warnings (D7) SUPPORTS_WEAKPACKAGEUNIT Compiler supports the WEAKPACKAGEUNIT directive SUPPORTS_COMPILETIME_MESSAGES Compiler supports the MESSAGE directive - SUPPORTS_PACKAGES Compiler supports Packages + SUPPORTS_PACKAGES Compiler supports Packages HAS_UNIT_LIBC Unit Libc exists (Kylix, FPC on Linux/x86) HAS_UNIT_RTLCONSTS Unit RTLConsts exists (D6+/BCB6+/FPC) HAS_UNIT_TYPES Unit Types exists (D6+/BCB6+/FPC) @@ -398,6 +398,7 @@ HAS_UNIT_DATEUTILS Unit DateUtils exists (D6+/BCB6+/FPC) HAS_UNIT_CONTNRS Unit contnrs exists (D6+/BCB6+/FPC) HAS_UNIT_ANSISTRINGS Unit AnsiStrings exists (D12+) + HAS_UNIT_PNGIMAGE Unit PngImage exists (D12+) XPLATFORM_RTL The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) SUPPORTS_UNICODE string type is aliased to an unicode string (WideString or UnicodeString) (DX.net, D12+) SUPPORTS_UNICODE_STRING Compiler supports UnicodeString (D12+) @@ -1088,8 +1089,7 @@ {$ENDIF COMPILER11_UP} {$IFDEF COMPILER12_UP} - {.$DEFINE SUPPORTS_GENERICS} - {$DEFINE HAS_UNIT_ANSISTRINGS} + {$DEFINE SUPPORTS_GENERICS} {$IFNDEF CLR} {$DEFINE SUPPORTS_UNICODE} {$DEFINE SUPPORTS_UNICODE_STRING} @@ -1112,6 +1112,11 @@ {$DEFINE HAS_UNIT_CONTNRS} {$ENDIF RTL130_UP} +{$IFDEF RTL200_UP} + {$DEFINE HAS_UNIT_ANSISTRINGS} + {$DEFINE HAS_UNIT_PNGIMAGE} +{$ENDIF RTL200_UP} + {------------------------------------------------------------------------------} { Cross-platform related defines } {------------------------------------------------------------------------------} Modified: trunk/jvcl/design/JvPluginWizard.pas =================================================================== --- trunk/jvcl/design/JvPluginWizard.pas 2008-10-05 22:29:29 UTC (rev 11942) +++ trunk/jvcl/design/JvPluginWizard.pas 2008-10-05 22:38:04 UTC (rev 11943) @@ -954,7 +954,7 @@ begin if PlugType = ptDLL then begin - // I have no idea why we have to do this for the newer Borland/Codegear IDEs, but it is not required + // I have no idea why we have to do this for the newer Borland/CodeGear IDEs, but it is not required // for older versions (such as BCB5/6), since they create their own project source file for DLLs {$IFDEF COMPILER10_UP} DllModuleCreator := TJvPluginDLLModuleCreator.Create; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wp...@us...> - 2008-10-07 14:07:40
|
Revision: 11946 http://jvcl.svn.sourceforge.net/jvcl/?rev=11946&view=rev Author: wpostma Date: 2008-10-07 14:04:58 +0000 (Tue, 07 Oct 2008) Log Message: ----------- Mantis 0004491: TJvCsvDataSet has some issues with exporting/importing floating point values. FIXED. Also, changes to APIs in JvJCLUtils.pas: Removed StrToFloatUS, StrToFloatUSDef, and USToLocalFloatStr (JvJCLUtils). Renamed and extended functionality of StrToFloatDefIgnoreInvalidCharacters, which is now called JvSafeStrToFloatDef. This required fixes throughout the Examples folder as well, and a few other components were touched (JvValidateEdit,JvXmlDatabase,JvStringGrid,JvChart). Modified Paths: -------------- trunk/jvcl/examples/JvValidateEdit/MainFrm.dfm trunk/jvcl/examples/JvValidateEdit/MainFrm.pas trunk/jvcl/run/JvAppDBStorage.pas trunk/jvcl/run/JvChart.pas trunk/jvcl/run/JvCsvData.pas trunk/jvcl/run/JvJCLUtils.pas trunk/jvcl/run/JvStringGrid.pas trunk/jvcl/run/JvValidateEdit.pas trunk/jvcl/run/JvXmlDatabase.pas Modified: trunk/jvcl/examples/JvValidateEdit/MainFrm.dfm =================================================================== --- trunk/jvcl/examples/JvValidateEdit/MainFrm.dfm 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/examples/JvValidateEdit/MainFrm.dfm 2008-10-07 14:04:58 UTC (rev 11946) @@ -75,7 +75,7 @@ Width = 193 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 0 OnChange = cbDisplayFormatChange OnKeyPress = cbDisplayFormatKeyPress @@ -362,7 +362,7 @@ Width = 89 Height = 21 Style = csDropDownList - ItemHeight = 13 + ItemHeight = 0 TabOrder = 4 OnChange = cbCPCheckPointsChange end Modified: trunk/jvcl/examples/JvValidateEdit/MainFrm.pas =================================================================== --- trunk/jvcl/examples/JvValidateEdit/MainFrm.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/examples/JvValidateEdit/MainFrm.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -160,13 +160,14 @@ procedure TfrmValidateEditDemo.chkHasMaxValueClick(Sender: TObject); begin - JvValidateEdit.MaxValue := StrToFloatDefIgnoreInvalidCharacters(edMaxValue.Text, 0); + // NOTE: StrToFloatDefIgnoreInvalidCharacters now called JvSafeStrToFloatDef: + JvValidateEdit.MaxValue := JvSafeStrToFloatDef(edMaxValue.Text, 0); JvValidateEdit.HasMaxValue := chkHasMaxValue.Checked; end; procedure TfrmValidateEditDemo.chkHasMinValueClick(Sender: TObject); begin - JvValidateEdit.MinValue := StrToFloatDefIgnoreInvalidCharacters(edMinValue.Text, 0); + JvValidateEdit.MinValue := JvSafeStrToFloatDef(edMinValue.Text, 0); JvValidateEdit.HasMinValue := chkHasMinValue.Checked; end; @@ -180,9 +181,9 @@ JvValidateEdit.AsCurrency := StrToCurrDef(edSetTo.Text, 0); 1: if chkAsVariant.Checked then - JvValidateEdit.Value := StrToFloatDefIgnoreInvalidCharacters(edSetTo.Text, 0) + JvValidateEdit.Value := JvSafeStrToFloatDef(edSetTo.Text, 0) else - JvValidateEdit.AsFloat := StrToFloatDefIgnoreInvalidCharacters(edSetTo.Text, 0); + JvValidateEdit.AsFloat := JvSafeStrToFloatDef(edSetTo.Text, 0); 2: if chkAsVariant.Checked then JvValidateEdit.Value := StrToIntDef(edSetTo.Text, 0) @@ -219,13 +220,13 @@ procedure TfrmValidateEditDemo.edCPMaxValueExit(Sender: TObject); begin - JvValidateEdit.CriticalPoints.MaxValue := StrToFloatDefIgnoreInvalidCharacters(edCPMaxValue.Text, 0); + JvValidateEdit.CriticalPoints.MaxValue := JvSafeStrToFloatDef(edCPMaxValue.Text, 0); edCPMaxValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MaxValue); end; procedure TfrmValidateEditDemo.edCPMinValueExit(Sender: TObject); begin - JvValidateEdit.CriticalPoints.MinValue := StrToFloatDefIgnoreInvalidCharacters(edCPMinValue.Text, 0); + JvValidateEdit.CriticalPoints.MinValue := JvSafeStrToFloatDef(edCPMinValue.Text, 0); edCPMinValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MinValue); end; @@ -248,12 +249,12 @@ procedure TfrmValidateEditDemo.edMaxValueExit(Sender: TObject); begin - JvValidateEdit.MaxValue := StrToFloatDefIgnoreInvalidCharacters(edMaxValue.Text, 0); + JvValidateEdit.MaxValue := JvSafeStrToFloatDef(edMaxValue.Text, 0); end; procedure TfrmValidateEditDemo.edMinValueExit(Sender: TObject); begin - JvValidateEdit.MinValue := StrToFloatDefIgnoreInvalidCharacters(edMinValue.Text, 0); + JvValidateEdit.MinValue := JvSafeStrToFloatDef(edMinValue.Text, 0); end; procedure TfrmValidateEditDemo.JvValidateEditCustomValidate( Modified: trunk/jvcl/run/JvAppDBStorage.pas =================================================================== --- trunk/jvcl/run/JvAppDBStorage.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/run/JvAppDBStorage.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -212,7 +212,8 @@ function TJvCustomAppDBStorage.DoReadFloat(const Path: string; Default: Extended): Extended; begin - Result := StrToFloatDefIgnoreInvalidCharacters(DoReadString(Path, ''), Default); + // NOTE: StrToFloatDefIgnoreInvalidCharacters now called JvSafeStrToFloatDef: + Result := JvSafeStrToFloatDef(DoReadString(Path, ''), Default); end; function TJvCustomAppDBStorage.DoReadInteger(const Path: string; Modified: trunk/jvcl/run/JvChart.pas =================================================================== --- trunk/jvcl/run/JvChart.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/run/JvChart.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -4011,8 +4011,11 @@ StrString: string; begin StrString := FloatToStr(Options.PrimaryYAxis.YMax); + + // NOTE: StrToFloatDefIgnoreInvalidCharacters now called JvSafeStrToFloatDef: + if InputQuery(RsGraphScale, Format(RsYAxisScales, [FloatToStr(Options.PrimaryYAxis.YMax)]), StrString) then - Options.PrimaryYAxis.YMax := StrToFloatDefIgnoreInvalidCharacters(StrString, Options.PrimaryYAxis.YMax) + Options.PrimaryYAxis.YMax := JvSafeStrToFloatDef(StrString, Options.PrimaryYAxis.YMax) else Exit; Modified: trunk/jvcl/run/JvCsvData.pas =================================================================== --- trunk/jvcl/run/JvCsvData.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/run/JvCsvData.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -148,6 +148,7 @@ {$IFNDEF NO_UNICODE} JclBase, // now BOM constants are in JclBase formerly in JclUnicode {$endif} + JvJCLUtils, // some constants needed. SysUtils, DB; @@ -207,6 +208,7 @@ JvCsvStreamReadChunkSize = 8192; // 8k chunk reads. + type EJvCsvDataSetError = class(EDatabaseError); // Subclass DB.EDatabaseError so we can work nicely with existing Delphi apps. @@ -328,18 +330,30 @@ FMarginSize : Integer; // How much margin space after the calculated fields? FSeparator:AnsiChar; + FDecimalSeparator:AnsiChar; { NOTE: DEFAULT value for historical backwards compatibilty reasons is the USA default of '.' } function GetUserTag(Index: Integer): Integer; procedure SetUserTag(Index, Value: Integer); function GetUserData(Index: Integer): Pointer; procedure SetUserData(Index: Integer; Value: Pointer); - + function GetRowAllocSize:Integer; function RecordSize:Word; procedure InternalInitRecord(Buffer:TJvRecordBuffer {was PChar}); + private + function GetDecimalSeparator: AnsiChar; + procedure SetDecimalSeparator(const Value: AnsiChar); + protected + + { note these are not intended to be used outside this unit, so they are protected. + access these throught the CsvDataSet class public or published properties only. } + property DecimalSeparator : AnsiChar read GetDecimalSeparator write SetDecimalSeparator default USDecimalSeparator; + property Separator : AnsiChar read FSeparator write FSeparator; + published + public constructor Create; @@ -366,7 +380,6 @@ { these properties should ONLY be set before any actual rows have been allocated. } property TextBufferSize : Integer read FTextBufferSize write FTextBufferSize; // How big is TJvCsvRow.Text effectively? property MarginSize : Integer read FMarginSize write FMarginSize; // How much margin space after the calculated fields? (typically 2 bytes) - property Separator : AnsiChar read FSeparator write FSeparator; end; @@ -439,12 +452,12 @@ TJvCustomCsvDataSet = class(TDataSet) private - //FSeparator: AnsiChar; !!!Now in FData!!! FOpenFileName: string; // This is the Fully Qualified path and filename expanded from the FTableName property when InternalOpen was last called. FValidateHeaderRow: Boolean; FExtendedHeaderInfo: Boolean; FCreatePaths: Boolean; - //procedure SetHasHeaderRow(const Value: Boolean); // When saving, create subdirectories/paths if it doesn't exist? + FFormatSettings:TFormatSettings; + procedure SetSeparator(const Value: AnsiChar); procedure InternalQuickSort(SortList: PPointerList; L, R: Integer; SortColumns: TArrayOfPCsvColumn; ACount: Integer; SortAscending: Array of Boolean); @@ -460,6 +473,11 @@ procedure SetTextBufferSize(const Value: Integer); function GetBackslashCrLf: Boolean; procedure SetBackslashCrLf(const Value: Boolean); + function GetDecimalSeparator: AnsiChar; + procedure SetDecimalSeparator(const Value: AnsiChar); + + function _CsvFloatToStr(fvalue:Double):String; + protected // (rom) inacceptable names. Probably most of this should be private. FTempBuffer: TJvRecordBuffer { was PChar}; // Allocated on first access to field variable data only! @@ -519,6 +537,8 @@ // Helps to keep some other thing in sync with the contents of a changing CSV file. FAlwaysEnquoteStrings:Boolean; // Always put double quotes around strings (for some CSV file reading software this is required.) + FAlwaysEnquoteFloats:Boolean; // Always put double quotes around floating point values (useful when DecimalSeparator==CsvSeparator) + FUseSystemDecimalSeparator:Boolean; // Default is false which always uses US mode. FAppendOnly:Boolean; // If true, we don't load the entire content of the CSV from disk, only the last row, and every time we append and write, we only maintain the last row in memory (saves a lot of RAM.) procedure SetActive(Value: Boolean); override; @@ -625,6 +645,7 @@ function _Dequote(const StrVal: AnsiString): AnsiString; virtual; // removes quotes property Separator: AnsiChar read GetSeparator write SetSeparator default ','; + property DecimalSeparator:AnsiChar read GetDecimalSeparator write SetDecimalSeparator default ' '; // space means system default. public constructor Create(AOwner: TComponent); override; @@ -820,6 +841,10 @@ property SavesChanges: Boolean read FSavesChanges write FSavesChanges default True; property AlwaysEnquoteStrings:Boolean read FAlwaysEnquoteStrings write FAlwaysEnquoteStrings; // Always put double quotes around strings (for some CSV file reading software this is required.) + property AlwaysEnquoteFloats:Boolean read FAlwaysEnquoteFloats write FAlwaysEnquoteFloats; // Always put double quotes around floating point values (useful when DecimalSeparator==CsvSeparator) + property UseSystemDecimalSeparator:Boolean read FUseSystemDecimalSeparator write FUseSystemDecimalSeparator default false; // Default is false which always uses US mode. Must be false by default because of existing code assuming this behaviour. + + property AppendOnly:Boolean read FAppendOnly write FAppendOnly; // If true, we don't load the entire content of the CSV from disk, only the last row, and every time we append and write, we only maintain the last row in memory (saves a lot of RAM.) @@ -834,6 +859,7 @@ property TableName; property UserData; property UserTag; + property DecimalSeparator; published property FieldDefs; property Active; @@ -880,6 +906,8 @@ property EnquoteBackslash; property HeaderRow; property AlwaysEnquoteStrings; + property AlwaysEnquoteFloats; + property UseSystemDecimalSeparator; property AppendOnly; end; @@ -956,7 +984,6 @@ Controls, Forms, JvVCL5Utils, JvJVCLUtils, - JvJCLUtils, JvCsvParse, JvConsts, JvResources, @@ -989,6 +1016,20 @@ raise EJvCsvDataSetError.CreateResFmt(@RsECsvErrFormat2, [TableName, Msg, Code]); end; + +function JvCsvStrToFloatDef(strvalue:String;defvalue:Double;aseparator:Char):Double; +begin + { does not raise exceptions} + result := JvSafeStrToFloatDef(strvalue,defvalue,aseparator); // // JvJCLUtils +end; + +function JvCsvStrToFloat(strvalue:String;aseparator:Char):Double; +begin + { raises EConvertError exception } + result := JvSafeStrToFloat(strvalue,aseparator); // // JvJCLUtils +end; + + { Trim TRAILING CrLf but not leading, or middle, or spaces } function JvTrimAnsiStringCrLf(s:AnsiString):AnsiString; var @@ -1272,6 +1313,9 @@ inherited Create(AOwner); FData := TJvCsvRows.Create; + GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,FFormatSettings); { this is updated later, to modify to have custom DecimalSeparator } + + Separator := ','; // set After creating FData! FCreatePaths := True; // Creates subdirectories automatically when saving. @@ -1335,6 +1379,14 @@ result := FData.Separator; end; +function TJvCustomCsvDataSet._CsvFloatToStr(fvalue:Double):String; +begin + { raises exception EJvConvertError (same as EConvertError) } + FFormatSettings.DecimalSeparator := GetDecimalSeparator; + result := FloatToStr( fvalue, FFormatSettings ); +end; + + function TJvCustomCsvDataSet.GetTextBufferSize: Integer; begin Assert(Assigned(FData)); @@ -1408,6 +1460,9 @@ begin inherited; FFileDirty := False; + if FUseSystemDecimalSeparator then begin + FData.DecimalSeparator := SysUtils.DecimalSeparator; + end; end; procedure TJvCustomCsvDataSet.SetAllUserData(Data: Pointer); @@ -1689,7 +1744,7 @@ sFieldValue := _Dequote(sFieldValue); // remove quotes. //sFieldValue := UpperCase(sFieldValue); // pointless on numerics try - FieldValue := StrToFloat( String(sFieldValue)); // remember, this baby throws EConvertError on exception! + FieldValue := JvCsvStrToFloat( String(sFieldValue), GetSeparator); // remember, this baby throws EConvertError on exception! // if { FieldValue [ = <> > < ] numValue } then.... if JvCsvNumCondition(FieldValue, compareOperator, numValue) then // hide row if not same prefix @@ -1869,6 +1924,11 @@ end; end; +procedure TJvCustomCsvDataSet.SetDecimalSeparator(const Value: AnsiChar); +begin + FData.DecimalSeparator := Value; +end; + procedure TJvCustomCsvDataSet.SetEnquoteBackslash(const Value: Boolean); begin Assert(Assigned(FData)); @@ -1984,13 +2044,13 @@ TempString := GetCsvRowItem(RowPtr, PhysicalLocation); - // Strip quotes first! - if Field.DataType = ftString then + // Strip quotes first (Both floating point and String fields can get enquoted on us) + if Field.DataType in [ftString,ftFloat] then begin L := Length(TempString); if L >= 2 then if (TempString[1] = '"') and (TempString[L] = '"') then - TempString := _Dequote(TempString); // quoted string! + TempString := _Dequote(TempString); // quoted string or floating point value. end; try @@ -2000,7 +2060,11 @@ ftInteger: Result := StrToInt( String(TempString) ); ftFloat: - Result := StrToFloatUS( String(TempString) ); + { Default CLASSIC behaviour of this component is to encode outgoing data in US + format regardless of system regional settings. This has become more flexible now, + but we still default at designtime-defaults to using a DOT. } + Result := JvCsvStrToFloat( String(TempString), GetSeparator ); + ftBoolean: if StrToIntDef(String(TempString), 0) <> 0 then Result := True @@ -2523,9 +2587,21 @@ end; ftInteger: + begin NewVal := AnsiString(IntToStr(PInteger(Buffer)^)); + + end; + + ftFloat: - NewVal := AnsiString(FloatToStr(PDouble(Buffer)^)); + begin + NewVal := AnsiString(_CsvFloatToStr(PDouble(Buffer)^)); + + if (( AlwaysEnquoteFloats) or ( Separator=GetDecimalSeparator ) ) then + NewVal := _Enquote(NewVal); // puts whole string in quotes, escapes embedded commas and quote characters! + + end; + ftBoolean: NewVal := AnsiString(IntToStr(Ord(PWordBool(Buffer)^))); // bugfix May 26, 2003 - WP // There are two ways of handling date and time: @@ -2900,7 +2976,7 @@ PInteger(Buffer)^ := StrToInt(String(TempString)); // Standard Double-precision Float conversion: ftFloat: - PDouble(Buffer)^ := StrToFloatUS(String(TempString)); + PDouble(Buffer)^ := JvCsvStrToFloat(String(TempString),GetSeparator); // was StrToFloatUS ftBoolean: if TempString = '' then PInteger(Buffer)^ := 0 @@ -3978,8 +4054,8 @@ case Column^.FFlag of jcsvNumeric: begin - NumLeft := StrToFloatUSDef( String(StrLeft), -99999.9); - NumRight := StrToFloatUSDef( String(StrRight), -99999.9); + NumLeft := JvCsvStrToFloatDef( String(StrLeft), -99999.9, GetSeparator); + NumRight := JvCsvStrToFloatDef( String(StrRight), -99999.9, GetSeparator); Diff := NumLeft - NumRight; if Diff < -0.02 then Result := -1 @@ -4212,6 +4288,7 @@ FUserTag[Index] := Value; end; + function TJvCsvRows.GetUserData(Index: Integer): Pointer; begin if (Index < 0) or (Index >= FUserLength) then @@ -4338,6 +4415,11 @@ +procedure TJvCsvRows.SetDecimalSeparator(const Value: AnsiChar); +begin + FDecimalSeparator := Value; +end; + function TJvCsvRows.GetARowItem(const RowIndex, ColumnIndex: Integer): AnsiString; begin Result := GetCsvRowItem(GetRowPtr(RowIndex), ColumnIndex); @@ -4345,6 +4427,12 @@ + +function TJvCsvRows.GetDecimalSeparator: AnsiChar; +begin + result := FDecimalSeparator +end; + procedure TJvCsvRows.Clear; var I: Integer; @@ -4358,6 +4446,12 @@ begin FTextBufferSize := JvCsvDefaultTextBufferSize; FMarginSize := JvCsvDefaultMarginSize; + + { DecimalSeparator: + This 'US' constant value is important for backwards compatibility. + DO NOT CHANGE this default, it would break people's code. + } + FDecimalSeparator := USDecimalSeparator; end; { Call this one first, then AssignFromStrings on subsequent updates only.} @@ -4766,6 +4860,13 @@ end; +function TJvCustomCsvDataSet.GetDecimalSeparator: AnsiChar; +begin + + result := FData.DecimalSeparator; + +end; + { PROCEDURES: } // convert CSV Row buffer to a single-byte AnsiString Modified: trunk/jvcl/run/JvJCLUtils.pas =================================================================== --- trunk/jvcl/run/JvJCLUtils.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/run/JvJCLUtils.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -73,12 +73,16 @@ {$ENDIF UNIX} // Note: the else is on purpose, VCL is not defined for a console application NullHandle = 0; + USDecimalSeparator = '.'; +type + EJvConvertError = Class(EConvertError); { subclass EConvertError raised by some non-Def versions of floating point conversion routine } {$IFDEF UNIX} -type TFileTime = Integer; {$ENDIF UNIX} + + function SendRectMessage(Handle: THandle; Msg: Integer; wParam: WPARAM; var R: TRect): Integer; function SendStructMessage(Handle: THandle; Msg: Integer; wParam: WPARAM; var Data): Integer; {$IFDEF CLR} @@ -134,11 +138,16 @@ CenturyOffset: Byte = 60; NullDate: TDateTime = {-693594} 0; -function USToLocalFloatStr(const Text: string): string; -function StrToFloatUS(const Text: string): Extended; -// StrToFloatUS uses US '.' as decimal seperator and ',' as thousand separator -function StrToFloatUSDef(const Text: string; Default: Extended): Extended; +//------------------------------------------------------------------------------------ +// This 'USA' hack functionality is made useless by the JvSafeStrToFloatDef routine: +//------------------------------------------------------------------------------------ + //function USToLocalFloatStr(const Text: string): string; // deprecated. + //function StrToFloatUS(const Text: string): Extended; + // StrToFloatUS uses US '.' as decimal seperator and ',' as thousand separator + //function StrToFloatUSDef(const Text: string; Default: Extended): Extended; + + function VarIsInt(Value: Variant): Boolean; // VarIsInt returns VarIsOrdinal-[varBoolean] @@ -878,12 +887,17 @@ { there is a STrToIntDef provided by Delphi, but no "safe" versions of StrToFloat or StrToCurr } -// Note: before using StrToFloatDefIgnoreInvalidCharacters, please be aware that it will ignore +// Note: before using JvSafeStrToFloatDef, please be aware that it will ignore // any character that is not a valid character for a float, which is different // from what StrToFloatDef in Delphi 6 up is doing. This has been documented in Mantis // issue# 2935: http://homepages.codegear.com/jedi/issuetracker/view.php?id=2935 // and in Mantis 4466: http://homepages.codegear.com/jedi/issuetracker/view.php?id=4466 -function StrToFloatDefIgnoreInvalidCharacters(const Str: string; Def: Extended): Extended; + +function JvSafeStrToFloatDef(const Str: string; Def: Extended;aDecimalSeparator:Char = ' '): Extended; {NOTE: default value of Space is a magic wildcard} + +function JvSafeStrToFloat(const Str: string; aDecimalSeparator:Char = ' '): Extended; {NOTE: default value of Space is a magic wildcard} + + function StrToCurrDef(const Str: string; Def: Currency): Currency; function IntToExtended(I: Integer): Extended; @@ -1486,8 +1500,10 @@ end; +// DEPRECATED: // StrToFloatUS uses US '.' as decimal separator and ',' as thousand separator - +// [the right way to do this would have been to set up a TFormatSettings record] +(* function USToLocalFloatStr(const Text: string): string; var I: Integer; @@ -1512,8 +1528,11 @@ end; {$ENDIF CLR} end; -end; +end;*) + +// DEPRECATED: +(* function StrToFloatUS(const Text: string): Extended; begin try @@ -1522,11 +1541,15 @@ Result := StrToFloat(Text); // try it with local settings end; end; +*) +// DEPRECATED: +(* function StrToFloatUSDef(const Text: string; Default: Extended): Extended; begin - Result := StrToFloatDefIgnoreInvalidCharacters(USToLocalFloatStr(Text), Default); + Result := JvSafeStrToFloatDef(USToLocalFloatStr(Text), Default); end; +*) function VarIsInt(Value: Variant): Boolean; begin @@ -7885,11 +7908,49 @@ end; end; -// Note: before using StrToFloatDef, please be aware that it will ignore -// any character that is not a valid character for a float, which is different -// from what the one in Delphi 6 up is doing. This has been documented in Mantis -// issue# 2935: http://homepages.borland.com/jedi/issuetracker/view.php?id=2935 -function StrToFloatDefIgnoreInvalidCharacters(const Str: string; Def: Extended): Extended; +{ JvTryStrToFloat: + This is identical to SysUtils.TryStrToFloat, except that it actually has a real try block + which catches the access violations that can happen inside the assembler code of + TextToFloat. In .NET this routine is not needed, just call TryStrToFloat. } +function JvTryStrToFloat(const S: string; out Value: Extended): Boolean; overload; +begin + try + Result := TextToFloat(PChar(S), Value, fvExtended); + except + Result := false; + end; +end; + +{ JvTryStrToFloat: (OVERLOAD:FormatSettings) + This is identical to SysUtils.TryStrToFloat, except that on Win32 it actually + has a real try block which catches the access violations that can happen inside the assembler code of + TextToFloat. In .NET this routine is not needed, just call TryStrToFloat. } +function JvTryStrToFloat(const S: string; out Value: Extended;const FormatSettings: TFormatSettings): Boolean; overload; +begin + try + Result := TextToFloat(PChar(S), Value, fvExtended); + except + Result := false; + end; +end; + + +{ JvStrConvertErrorFmt used from JvSafeStrToFloat } +procedure JvStrConvertErrorFmt(ResString: PResStringRec; const Args: array of const); local; +begin + raise EJvConvertError.CreateResFmt(ResString, Args); { will be also caught if you catch E:EConvertERror } +end; + + +{ _JvSafeStrToFloat: [PRIVATE INTERNAL FUNCTION] + + [ not to be called outside this unit, see below for public api ] + + This is a refactored version of the internal guts of the former routine + StrToFloatDefIgnoreInvalidCharacters with some improvements made to decimal + separator handling. +} +function _JvSafeStrToFloat(const Str: string; aDecimalSeparator:Char; var outValue:Extended): Boolean; var LStr: TJclStringBuilder; {$IFDEF CLR} @@ -7898,19 +7959,42 @@ {$ENDIF CLR} I: Integer; CharSet: TSysCharSet; + FormatSettings:TFormatSettings; begin - if Str = '' then - Result := Def - else - begin - LStr := TJclStringBuilder.Create(Length(Str)); - try - CharSet := ['0'..'9', '-', '+', 'e', 'E', AnsiChar(DecimalSeparator{$IFDEF CLR}[1]{$ENDIF})]; + Result := false; + if Str = '' then exit; { hows this for a nice optimization? WPostma. } + + { Locale Handling logic October 2008 supercedes former StrToFloatUS functionality. } + GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,FormatSettings); + if aDecimalSeparator=' ' then begin {magic mode} + aDecimalSeparator := FormatSettings.DecimalSeparator; { default case! use system defaults! } + end else begin + FormatSettings.DecimalSeparator := aDecimalSeparator; { custom format specified! } + end; + + { Cross-codepage safety feature: Handed '1.2', a string without a comma, + but which is obviously a floating point number, convert it properly also. + This functionality is important for JvCsvDataSet and may be important in other + places. } + if (Pos(USDecimalSeparator,Str)>0 ) and (Pos(aDecimalSeparator,Str)=0) then begin + aDecimalSeparator := USDecimalSeparator; { automatically works when US decimal values are encountered } + FormatSettings.DecimalSeparator := aDecimalSeparator; { custom format specified! } + end; + + + + + LStr := TJclStringBuilder.Create(Length(Str)); + try + CharSet := ['0'..'9', '-', '+', 'e', 'E', AnsiChar(aDecimalSeparator{$IFDEF CLR}[1]{$ENDIF})]; + //if (aDecimalSeparator<>USDecimalSeparator) then + // CharSet := CharSet + [USDecimalSeparator]; { we allow US Decimal separators, even when it's not the regional setting, we just grandfather it in as valid } + for I := 1 to Length(Str) do if CharInSet(Str[I], CharSet) then LStr.Append(Str[I]); - Result := Def; + if LStr.Length > 0 then try { the string '-' fails StrToFloat, but it can be interpreted as 0 } @@ -7919,26 +8003,61 @@ { a string that ends in a '.' such as '12.' fails StrToFloat, but as far as I am concerned, it may as well be interpreted as 12.0 } - if LStr[LStr.Length - 1] = DecimalSeparator{$IFDEF CLR}[1]{$ENDIF} then + if LStr[LStr.Length - 1] = aDecimalSeparator{$IFDEF CLR}[1]{$ENDIF} then LStr.Append('0'); {$IFDEF CLR} - b := TryStrToFloat(LStr.ToString(), d); - Result := d; + b := TryStrToFloat(LStr.ToString(), d,); + outValue := d; if not b then {$ELSE} - if not TextToFloat(PChar(LStr.ToString), Result, fvExtended) then + if not TextToFloat( PChar(LStr.ToString), outValue, fvExtended, FormatSettings) then {$ENDIF CLR} - Result := Def; + result := false + else + result := true; { success! } + except - Result := Def; + result := false; + exit; end; - finally + finally LStr.Free; - end; - end; + end; end; +// JvSafeStrToFloatDef: +// +// Note: before using StrToFloatDef, please be aware that it will ignore +// any character that is not a valid character for a float, which is different +// from what the one in Delphi 6 up is doing. This has been documented in Mantis +// issue# 2935: http://homepages.borland.com/jedi/issuetracker/view.php?id=2935 +// +// This function was extended by WPostma, to allow specification of custom decimal +// separators. This was required by JvCsvDataSet and may be required elsewhere in the +// VCL wherever custom (fixed) non-current-region-settings floating point value +// encoding must be supported. We renamed this from StrToFloatDefIgnoreInvalidCharacters +// to JvSafeStrToFloatDef because it has multiple "floating point runtime exception safety" +// enhancements. +function JvSafeStrToFloatDef(const Str: string; Def: Extended;aDecimalSeparator:Char): Extended; +begin + { one handy dandy api expects a Default value returned instead } + if (not _JvSafeStrToFloat(Str,aDecimalSeparator,result)) then + result := Def; { failed, use default } +end; + + +// New routine, same as JvSafeStrToFloatDef but it will raise a conversion exception, +// for cases when you actually want to handle an EConvertError yourself and where +// there is no convenient or possible float value for your case. +function JvSafeStrToFloat(const Str: string; aDecimalSeparator:Char): Extended; +begin + { the other handy dandy api style expects us to raise an EConvertError. } + if (not _JvSafeStrToFloat(Str,aDecimalSeparator,result)) then + JvStrConvertErrorFmt(@SInvalidFloat, [Str]); {failed, raise exception } +end; + + function IntToExtended(I: Integer): Extended; begin Result := I; Modified: trunk/jvcl/run/JvStringGrid.pas =================================================================== --- trunk/jvcl/run/JvStringGrid.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/run/JvStringGrid.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -574,10 +574,10 @@ end; stNumeric: begin - TmpF := StrToFloatDefIgnoreInvalidCharacters(St, 0); - while StrToFloatDefIgnoreInvalidCharacters(Cells[Column, I], 0) < TmpF do + TmpF := JvSafeStrToFloatDef(St, 0); // formerly StrToFloatDefIgnoreInvalidCharacters + while JvSafeStrToFloatDef(Cells[Column, I], 0) < TmpF do Inc(I); - while StrToFloatDefIgnoreInvalidCharacters(Cells[Column, J], 0) > TmpF do + while JvSafeStrToFloatDef(Cells[Column, J], 0) > TmpF do Dec(J); end; stDate: Modified: trunk/jvcl/run/JvValidateEdit.pas =================================================================== --- trunk/jvcl/run/JvValidateEdit.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/run/JvValidateEdit.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -660,7 +660,7 @@ else if (OldFormat in [dfCurrency, dfFloat, dfFloatGeneral, dfDecimal, dfPercent]) and (NewValue in [dfBinary, dfHex, dfOctal]) then - SetAsFloat(StrToFloatDefIgnoreInvalidCharacters(FEditText, 0)) + SetAsFloat(JvSafeStrToFloatDef(FEditText, 0)) else if (OldFormat = dfHex) and (NewValue in [dfBinary, dfCurrency, dfFloat, dfFloatGeneral, dfDecimal, dfInteger, dfOctal, dfPercent, dfScientific, dfYear]) then @@ -777,7 +777,7 @@ Result := Cur; end; else - Result := StrToFloatDefIgnoreInvalidCharacters(FEditText, 0); + Result := JvSafeStrToFloatDef(FEditText, 0); end; end; @@ -823,7 +823,7 @@ Result := Cur; end; dfFloat, dfFloatGeneral, dfDecimal, dfPercent, dfScientific: - Result := StrToFloatDefIgnoreInvalidCharacters(FEditText, 0); + Result := JvSafeStrToFloatDef(FEditText, 0); dfInteger, dfYear: Result := StrToIntDef(FEditText, 0); dfHex: @@ -1191,7 +1191,7 @@ bInExp: Boolean; begin if Pos('E', UpperCase(SciString)) = 0 then - Result := StrToFloatDefIgnoreInvalidCharacters(SciString, 0) + Result := JvSafeStrToFloatDef(SciString, 0) else begin sMantissa := ''; @@ -1209,7 +1209,8 @@ sMantissa := sMantissa + SciString[I]; end; end; - Result := StrToFloatDefIgnoreInvalidCharacters(sMantissa, 0) * Power(10, StrToFloatDefIgnoreInvalidCharacters(sExponent, 0)); + // NOTE: StrToFloatDefIgnoreInvalidCharacters now called JvSafeStrToFloatDef: + Result := JvSafeStrToFloatDef(sMantissa, 0) * Power(10, JvSafeStrToFloatDef(sExponent, 0)); end; end; Modified: trunk/jvcl/run/JvXmlDatabase.pas =================================================================== --- trunk/jvcl/run/JvXmlDatabase.pas 2008-10-07 07:07:09 UTC (rev 11945) +++ trunk/jvcl/run/JvXmlDatabase.pas 2008-10-07 14:04:58 UTC (rev 11946) @@ -917,8 +917,9 @@ Result := StrToIntDef(LStr1, 0) - StrToIntDef(LStr2, 0); ocFloat: begin - LFloat1 := StrToFloatDefIgnoreInvalidCharacters(LStr1, 0); - LFloat2 := StrToFloatDefIgnoreInvalidCharacters(LStr2, 0); + // NOTE: StrToFloatDefIgnoreInvalidCharacters now called JvSafeStrToFloatDef: + LFloat1 := JvSafeStrToFloatDef(LStr1, 0); + LFloat2 := JvSafeStrToFloatDef(LStr2, 0); if LFloat1 > LFloat2 then Result := 1 else @@ -1344,15 +1345,17 @@ LValue2 := SecondValue else LValue2 := AElement.Properties.Value(SecondValue, ParseValue(SecondValue)); + + // NOTE: StrToFloatDefIgnoreInvalidCharacters now called JvSafeStrToFloatDef: case SetOperator of soAdd: - LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) + StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); + LValue := FloatToStr(JvSafeStrToFloatDef(LValue,0) + JvSafeStrToFloatDef(LValue2,0)); soMultiply: - LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) * StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); + LValue := FloatToStr(JvSafeStrToFloatDef(LValue,0) * JvSafeStrToFloatDef(LValue2,0)); soDivide: - LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) / StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); + LValue := FloatToStr(JvSafeStrToFloatDef(LValue,0) / JvSafeStrToFloatDef(LValue2,0)); soSubstract: - LValue := FloatToStr(StrToFloatDefIgnoreInvalidCharacters(LValue,0) - StrToFloatDefIgnoreInvalidCharacters(LValue2,0)); + LValue := FloatToStr(JvSafeStrToFloatDef(LValue,0) - JvSafeStrToFloatDef(LValue2,0)); end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wp...@us...> - 2008-10-07 15:21:07
|
Revision: 11947 http://jvcl.svn.sourceforge.net/jvcl/?rev=11947&view=rev Author: wpostma Date: 2008-10-07 15:19:06 +0000 (Tue, 07 Oct 2008) Log Message: ----------- Previous checkin broken Delphi2009 compile on JvCsvData.pas. Fixed. Oops. Still one RTTI warning W1005. Modified Paths: -------------- trunk/jvcl/run/JvCsvData.pas Property Changed: ---------------- trunk/jvcl/lib/d12/ Property changes on: trunk/jvcl/lib/d12 ___________________________________________________________________ Added: svn:ignore + *.dcu Modified: trunk/jvcl/run/JvCsvData.pas =================================================================== --- trunk/jvcl/run/JvCsvData.pas 2008-10-07 14:04:58 UTC (rev 11946) +++ trunk/jvcl/run/JvCsvData.pas 2008-10-07 15:19:06 UTC (rev 11947) @@ -1017,16 +1017,24 @@ end; -function JvCsvStrToFloatDef(strvalue:String;defvalue:Double;aseparator:Char):Double; +function JvCsvStrToFloatDef(strvalue:String;defvalue:Double;aseparator:AnsiChar):Double; begin { does not raise exceptions} - result := JvSafeStrToFloatDef(strvalue,defvalue,aseparator); // // JvJCLUtils + result := JvSafeStrToFloatDef(strvalue,defvalue, + {$IFDEF COMPILER12_UP}Char({$endif} + aseparator + {$IFDEF COMPILER12_UP}){$endif} + ); // // JvJCLUtils end; -function JvCsvStrToFloat(strvalue:String;aseparator:Char):Double; +function JvCsvStrToFloat(strvalue:String;aseparator:AnsiChar):Double; begin { raises EConvertError exception } - result := JvSafeStrToFloat(strvalue,aseparator); // // JvJCLUtils + result := JvSafeStrToFloat(strvalue, + {$IFDEF COMPILER12_UP}Char({$endif} + aseparator + {$IFDEF COMPILER12_UP}){$endif} + ); // // JvJCLUtils end; @@ -1382,7 +1390,7 @@ function TJvCustomCsvDataSet._CsvFloatToStr(fvalue:Double):String; begin { raises exception EJvConvertError (same as EConvertError) } - FFormatSettings.DecimalSeparator := GetDecimalSeparator; + FFormatSettings.DecimalSeparator := {$IFDEF COMPILER12_UP}Char({$endif}GetDecimalSeparator {$IFDEF COMPILER12_UP}){$endif}; result := FloatToStr( fvalue, FFormatSettings ); end; @@ -1461,7 +1469,7 @@ inherited; FFileDirty := False; if FUseSystemDecimalSeparator then begin - FData.DecimalSeparator := SysUtils.DecimalSeparator; + FData.DecimalSeparator := {$IFDEF COMPILER12_UP}AnsiChar({$endif}SysUtils.DecimalSeparator{$IFDEF COMPILER12_UP}){$endif}; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-10-07 17:11:35
|
Revision: 11950 http://jvcl.svn.sourceforge.net/jvcl/?rev=11950&view=rev Author: ahuser Date: 2008-10-07 17:11:29 +0000 (Tue, 07 Oct 2008) Log Message: ----------- Fixed Mantis #4506: procedure BoundsChanged of TJvEx???? missing message WM_MOVE Modified Paths: -------------- trunk/jvcl/devtools/JvExVCL/src/JvExControls.macros trunk/jvcl/run/JvExButtons.pas trunk/jvcl/run/JvExCheckLst.pas trunk/jvcl/run/JvExComCtrls.pas trunk/jvcl/run/JvExControls.pas trunk/jvcl/run/JvExDBGrids.pas trunk/jvcl/run/JvExExtCtrls.pas trunk/jvcl/run/JvExForms.pas trunk/jvcl/run/JvExGrids.pas trunk/jvcl/run/JvExMask.pas trunk/jvcl/run/JvExStdCtrls.pas Modified: trunk/jvcl/devtools/JvExVCL/src/JvExControls.macros =================================================================== --- trunk/jvcl/devtools/JvExVCL/src/JvExControls.macros 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/devtools/JvExVCL/src/JvExControls.macros 2008-10-07 17:11:29 UTC (rev 11950) @@ -477,7 +477,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExButtons.pas =================================================================== --- trunk/jvcl/run/JvExButtons.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExButtons.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -669,7 +669,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExCheckLst.pas =================================================================== --- trunk/jvcl/run/JvExCheckLst.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExCheckLst.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -422,7 +422,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExComCtrls.pas =================================================================== --- trunk/jvcl/run/JvExComCtrls.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExComCtrls.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -2350,7 +2350,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2691,7 +2691,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3032,7 +3032,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3373,7 +3373,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3716,7 +3716,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4057,7 +4057,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4398,7 +4398,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4739,7 +4739,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5080,7 +5080,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5421,7 +5421,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5762,7 +5762,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6103,7 +6103,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6444,7 +6444,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6785,7 +6785,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -7126,7 +7126,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -7467,7 +7467,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -7808,7 +7808,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -8149,7 +8149,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -8490,7 +8490,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -8831,7 +8831,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -9172,7 +9172,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -9513,7 +9513,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -9854,7 +9854,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -10195,7 +10195,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -10536,7 +10536,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -10877,7 +10877,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -11218,7 +11218,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExControls.pas =================================================================== --- trunk/jvcl/run/JvExControls.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExControls.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -65,7 +65,6 @@ dcWantMessage = dcWantAllKeys; type - { IJvExControl is used for the identification of an JvExXxx control. } IJvExControl = interface ['{8E6579C3-D683-4562-AFAB-D23C8526E386}'] @@ -734,8 +733,6 @@ {$ENDIF COMPILER5} -//============================================================================ - constructor TJvExControl.Create(AOwner: TComponent); begin inherited Create(AOwner); @@ -1223,7 +1220,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -1763,7 +1760,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2104,7 +2101,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExDBGrids.pas =================================================================== --- trunk/jvcl/run/JvExDBGrids.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExDBGrids.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -494,7 +494,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -835,7 +835,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExExtCtrls.pas =================================================================== --- trunk/jvcl/run/JvExExtCtrls.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExExtCtrls.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -2392,7 +2392,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2733,7 +2733,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3074,7 +3074,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3415,7 +3415,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3756,7 +3756,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4097,7 +4097,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4438,7 +4438,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4779,7 +4779,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5120,7 +5120,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5662,7 +5662,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6003,7 +6003,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6344,7 +6344,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6685,7 +6685,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExForms.pas =================================================================== --- trunk/jvcl/run/JvExForms.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExForms.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -949,7 +949,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -1290,7 +1290,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -1631,7 +1631,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -1972,7 +1972,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2313,7 +2313,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2654,7 +2654,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3019,7 +3019,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3384,7 +3384,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExGrids.pas =================================================================== --- trunk/jvcl/run/JvExGrids.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExGrids.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -809,7 +809,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -1150,7 +1150,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -1493,7 +1493,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -1834,7 +1834,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2177,7 +2177,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2525,7 +2525,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExMask.pas =================================================================== --- trunk/jvcl/run/JvExMask.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExMask.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -523,7 +523,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -905,7 +905,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; Modified: trunk/jvcl/run/JvExStdCtrls.pas =================================================================== --- trunk/jvcl/run/JvExStdCtrls.pas 2008-10-07 17:07:07 UTC (rev 11949) +++ trunk/jvcl/run/JvExStdCtrls.pas 2008-10-07 17:11:29 UTC (rev 11950) @@ -1542,7 +1542,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2291,7 +2291,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -2663,7 +2663,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3030,7 +3030,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3372,7 +3372,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -3713,7 +3713,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4054,7 +4054,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4395,7 +4395,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -4736,7 +4736,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5077,7 +5077,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5418,7 +5418,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -5759,7 +5759,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6100,7 +6100,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6441,7 +6441,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; @@ -6782,7 +6782,7 @@ FocusSet(THandle(Msg.WParam)); WM_KILLFOCUS: FocusKilled(THandle(Msg.WParam)); - WM_SIZE: + WM_SIZE, WM_MOVE: begin inherited WndProc(Msg); BoundsChanged; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rem...@us...> - 2008-10-08 19:44:54
|
Revision: 11954 http://jvcl.svn.sourceforge.net/jvcl/?rev=11954&view=rev Author: remkobonte Date: 2008-10-08 19:44:29 +0000 (Wed, 08 Oct 2008) Log Message: ----------- * TJvID3StringPair changed into WideString * Merged duplicate AnsiString and WideString properties into single WideString property. (Mantis #4483) Modified Paths: -------------- trunk/jvcl/design/JvID3v2EditorForm.pas trunk/jvcl/examples/JvID3v1/JvID3v1MainFormU.pas trunk/jvcl/examples/JvID3v2/JvID3v2EditFormU.pas trunk/jvcl/run/JvID3v2Base.pas trunk/jvcl/run/JvId3v1.pas trunk/jvcl/run/JvId3v2.pas trunk/jvcl/run/JvId3v2Types.pas Modified: trunk/jvcl/design/JvID3v2EditorForm.pas =================================================================== --- trunk/jvcl/design/JvID3v2EditorForm.pas 2008-10-07 18:04:58 UTC (rev 11953) +++ trunk/jvcl/design/JvID3v2EditorForm.pas 2008-10-08 19:44:29 UTC (rev 11954) @@ -638,7 +638,7 @@ FrameName := TJvID3Frame(Component).FrameName else FrameName := ''; - Result := string(CreateUniqueName(Controller, FrameName, TJvID3FrameClass(Component.ClassType), Component)) + Result := CreateUniqueName(Controller, FrameName, TJvID3FrameClass(Component.ClassType), Component) end; procedure TJvID3FramesEditor.UpdateCaption; @@ -668,7 +668,7 @@ EnableList: Boolean; I: Integer; Frame: TJvID3Frame; - FrameName: AnsiString; + FrameName: string; begin SaveSelection(Selection, ItemIndex, TopIndex, True); try @@ -682,11 +682,11 @@ Frame := Controller.Frames[I]; if not (csDestroying in Frame.ComponentState) then begin - FrameName := Frame.FrameName; + FrameName := string(Frame.FrameName); if FrameName = '' then - FrameName := {$IFDEF HAS_UNIT_ANSISTRINGS}AnsiStrings.{$ENDIF HAS_UNIT_ANSISTRINGS}Format('<%s>', [Controller.Frames[I].Name]); - FrameName := FrameName + ' - ' + AnsiString(cFrameDescriptions[Frame.FrameID]); - FrameListBox.Items.AddObject(string(FrameName), Frame); + FrameName := Format('<%s>', [Controller.Frames[I].Name]); + FrameName := FrameName + ' - ' + cFrameDescriptions[Frame.FrameID]; + FrameListBox.Items.AddObject(FrameName, Frame); end; end; Modified: trunk/jvcl/examples/JvID3v1/JvID3v1MainFormU.pas =================================================================== --- trunk/jvcl/examples/JvID3v1/JvID3v1MainFormU.pas 2008-10-07 18:04:58 UTC (rev 11953) +++ trunk/jvcl/examples/JvID3v1/JvID3v1MainFormU.pas 2008-10-08 19:44:29 UTC (rev 11954) @@ -126,12 +126,12 @@ JvBalloonHint1.ActivateHint(JvFilenameEdit1, 'First select a mp3 file', ikError, 'Error', 5000) else begin - JvId3v11.SongName := edtTitle.Text; - JvId3v11.Artist := edtArtist.Text; - JvId3v11.Album := edtAlbum.Text; - JvId3v11.Year := edtYear.Text; + JvId3v11.SongName := AnsiString(edtTitle.Text); + JvId3v11.Artist := AnsiString(edtArtist.Text); + JvId3v11.Album := AnsiString(edtAlbum.Text); + JvId3v11.Year := AnsiString(edtYear.Text); JvId3v11.GenreAsString := cmbGenre.Text; - JvId3v11.Comment := edtComment.Text; + JvId3v11.Comment := AnsiString(edtComment.Text); JvId3v11.AlbumTrack := sedTrack.AsInteger; if JvId3v11.Commit then @@ -224,11 +224,11 @@ procedure TJvID3v1MainForm.UpdateCtrls; begin - edtTitle.Text := JvId3v11.SongName; - edtAlbum.Text := JvId3v11.Album; - edtArtist.Text := JvId3v11.Artist; - edtYear.Text := JvId3v11.Year; - edtComment.Text := JvId3v11.Comment; + edtTitle.Text := string(JvId3v11.SongName); + edtAlbum.Text := string(JvId3v11.Album); + edtArtist.Text := string(JvId3v11.Artist); + edtYear.Text := string(JvId3v11.Year); + edtComment.Text := string(JvId3v11.Comment); sedTrack.AsInteger := JvId3v11.AlbumTrack; cmbGenre.ItemIndex := cmbGenre.Items.IndexOfObject(TObject(JvId3v11.Genre)); end; Modified: trunk/jvcl/examples/JvID3v2/JvID3v2EditFormU.pas =================================================================== --- trunk/jvcl/examples/JvID3v2/JvID3v2EditFormU.pas 2008-10-07 18:04:58 UTC (rev 11953) +++ trunk/jvcl/examples/JvID3v2/JvID3v2EditFormU.pas 2008-10-08 19:44:29 UTC (rev 11954) @@ -137,7 +137,11 @@ uses ExtDlgs, - JvID3v2Types; + JvID3v2Types + {$IFNDEF COMPILER12_UP} + , JclUnicode + {$ENDIF !COMPILER12_UP} + ; {$R *.dfm} @@ -274,7 +278,7 @@ while SubItems.Count < 3 do SubItems.Add(''); SubItems[0] := CPictureTypeStr[PictureType]; //Type - SubItems[1] := MIMEType; //Format + SubItems[1] := string(MIMEType); //Format SubItems[2] := IntToStr(DataSize); //Size Data := Frame; end; @@ -374,7 +378,7 @@ procedure TJvID3v2EditForm.CtrlsToTag; - procedure SetFirstOfList(Strings: TStrings; const S: string); + procedure SetFirstOfList(Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}; const S: string); begin if Strings.Count > 0 then Strings[0] := S @@ -401,7 +405,7 @@ SetFirstOfList(JvID3v21.Texts.OrigArtist, edtOrigArtist.Text); JvID3v21.Texts.Copyright := edtCopyright.Text; { Note that WinAmp doesn't care about other properties than URL of TJvID3URLUserFrame } - TJvID3URLUserFrame.FindOrCreate(JvID3v21, 0).URL := edtURL.Text; + TJvID3URLUserFrame.FindOrCreate(JvID3v21, 0).URL := AnsiString(edtURL.Text); JvID3v21.Texts.EncodedBy := edtEncodedBy.Text; { Lyrics } @@ -423,7 +427,7 @@ procedure TJvID3v2EditForm.TagToCtrls; - function GetFirstOfList(Strings: TStrings): string; + function GetFirstOfList(Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}): string; begin if Strings.Count > 0 then Result := Strings[0] @@ -457,13 +461,13 @@ edtOrigArtist.Text := GetFirstOfList(JvID3v21.Texts.OrigArtist); edtCopyright.Text := JvID3v21.Texts.Copyright; { Note that WinAmp doesn't care about other properties than URL of TJvID3URLUserFrame } - edtURL.Text := TJvID3URLUserFrame.FindOrCreate(JvID3v21, 0).URL; + edtURL.Text := string(TJvID3URLUserFrame.FindOrCreate(JvID3v21, 0).URL); edtEncodedBy.Text := JvID3v21.Texts.EncodedBy; { Lyrics } with TJvID3ContentFrame.FindOrCreate(JvID3v21, fiUnsyncedLyrics) do begin - cmbLanguage.ItemIndex := cmbLanguage.Items.IndexOf(ISO_639_2CodeToName(Language)); + cmbLanguage.ItemIndex := cmbLanguage.Items.IndexOf(string(ISO_639_2CodeToName(Language))); memLyrics.Lines.Text := Text; edtDescription.Text := Description; end; @@ -505,7 +509,7 @@ with cmbPictureType do PictureType := TJvID3PictureType(Items.Objects[ItemIndex]); Description := edtPictureName.Text; - MIMEType := ExtToMIMEType(ExtractFileExt(FileName)); + MIMEType := AnsiString(ExtToMIMEType(ExtractFileExt(FileName))); LoadFromFile(FileName); lsvPictures.Items.BeginUpdate; @@ -604,7 +608,7 @@ with JvID3v21.Frames[I] do begin ListItem := lsvAllFrames.Items.Add; - ListItem.Caption := FrameName; + ListItem.Caption := string(FrameName); if ClassType <> TJvID3SkipFrame then ListItem.SubItems.Add('Yes') else Modified: trunk/jvcl/run/JvID3v2Base.pas =================================================================== --- trunk/jvcl/run/JvID3v2Base.pas 2008-10-07 18:04:58 UTC (rev 11953) +++ trunk/jvcl/run/JvID3v2Base.pas 2008-10-08 19:44:29 UTC (rev 11954) @@ -38,7 +38,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} Classes, SysUtils, - JclStringConversions, JclUnicode, + JclUnicode, JvComponentBase, JvID3v2Types, JvID3v1; const @@ -128,8 +128,8 @@ function ReadLanguage(var Language: AnsiString): Longint; function ReadNumber(var AValue: Cardinal): Longint; function ReadEnc(var AEncoding: TJvID3Encoding): Longint; - function ReadStringEnc(var S: TJvID3StringPair): Longint; - function ReadUserString(var S1, S2: TJvID3StringPair): Longint; + function ReadStringEnc(var S: WideString): Longint; + function ReadUserString(var S1, S2: WideString): Longint; { Only for v2.2 } function ReadFixedNumber3(var AValue: Cardinal): Longint; { Only for v2.3 } @@ -147,8 +147,8 @@ function WriteNumber(AValue: Cardinal): Longint; function WriteEnc: Longint; function WritePadding(const Count: Longint): Longint; - function WriteStringEnc(const S: TJvID3StringPair): Longint; - function WriteUserString(const S1, S2: TJvID3StringPair): Longint; + function WriteStringEnc(const S: WideString): Longint; + function WriteUserString(const S1, S2: WideString): Longint; function WriteTerminatorEnc: Longint; { Only for v2.2 } function WriteFixedNumber3(AValue: Cardinal): Longint; @@ -298,6 +298,8 @@ { Checks whether Frame has the same unique identifier as this frame } function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; virtual; + function MustWriteAsUTF: Boolean; virtual; + function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; virtual; abstract; procedure UpdateFrameSize; @@ -380,7 +382,7 @@ TJvID3BinaryFrame = class(TJvID3Frame) private - FData: PAnsiChar; + FData: PByte; FDataSize: Cardinal; protected procedure ReadData(ASize: Cardinal); virtual; @@ -434,23 +436,18 @@ TJvID3DoubleListFrame = class(TJvID3Frame) private - FList: TStringList; - FListW: TWideStringList; - function GetNameA(Index: Integer): string; - function GetNameW(Index: Integer): string; - function GetValueA(Index: Integer): string; - function GetValueW(Index: Integer): string; - function GetList: TStrings; - function GetListW: TWideStrings; - procedure SetList(const Value: TStrings); - procedure SetListW(const Value: TWideStrings); + FList: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}; procedure ListChanged(Sender: TObject); + procedure SetList(Value: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}); + function GetNames(const Index: Integer): WideString; + function GetValues(const Index: Integer): WideString; protected procedure ReadFrame; override; procedure WriteFrame; override; function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; procedure ChangeToVersion(const ANewVersion: TJvID3Version); override; function SupportsVersion(const AVersion: TJvID3Version): Boolean; override; @@ -468,13 +465,10 @@ procedure AfterConstruction; override; procedure BeforeDestruction; override; - property Names[Index: Integer]: string read GetNameA; - property NamesW[Index: Integer]: string read GetNameW; - property Values[Index: Integer]: string read GetValueA; - property ValuesW[Index: Integer]: string read GetValueW; + property Names[const Index: Integer]: WideString read GetNames; + property Values[const Index: Integer]: WideString read GetValues; published - property List: TStrings read GetList write SetList; - property ListW: TWideStrings read GetListW write SetListW; + property List: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP} read FList write SetList; end; { COMM - fiComment - Comments @@ -491,19 +485,18 @@ TJvID3ContentFrame = class(TJvID3Frame) private FLanguage: AnsiString; - FText: TJvID3StringPair; - FDescription: TJvID3StringPair; - procedure SetText(const Value: AnsiString); - procedure SetTextW(const Value: WideString); + FText: WideString; + FDescription: WideString; + procedure SetDescription(const Value: WideString); procedure SetLanguage(const Value: AnsiString); - procedure SetDescription(const Value: AnsiString); - procedure SetDescriptionW(const Value: WideString); + procedure SetText(const Value: WideString); protected procedure ReadFrame; override; procedure WriteFrame; override; function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; public @@ -517,10 +510,8 @@ class function FindOrCreate(AController: TJvID3Controller; const AFrameID: TJvID3FrameID): TJvID3ContentFrame; published property Language: AnsiString read FLanguage write SetLanguage; - property Description: AnsiString read FDescription.SA write SetDescription; - property DescriptionW: WideString read FDescription.SW write SetDescriptionW; - property Text: AnsiString read FText.SA write SetText; - property TextW: WideString read FText.SW write SetTextW; + property Description: WideString read FDescription write SetDescription; + property Text: WideString read FText write SetText; end; { GEOB - fiGeneralObject - General encapsulated object @@ -531,13 +522,11 @@ TJvID3GeneralObjFrame = class(TJvID3BinaryFrame) private - FContentDescription: TJvID3StringPair; + FContentDescription: WideString; FMIMEType: AnsiString; - FFileName: TJvID3StringPair; - procedure SetContentDescription(const Value: AnsiString); - procedure SetContentDescriptionW(const Value: WideString); - procedure SetFileName(const Value: AnsiString); - procedure SetFileNameW(const Value: WideString); + FFileName: WideString; + procedure SetContentDescription(const Value: WideString); + procedure SetFileName(const Value: WideString); procedure SetMIMEType(const Value: AnsiString); protected procedure ReadFrame; override; @@ -545,6 +534,7 @@ function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; public @@ -555,20 +545,13 @@ procedure Clear; override; class function Find(AController: TJvID3Controller): TJvID3GeneralObjFrame; overload; - class function Find(AController: TJvID3Controller; const AContentDescription: AnsiString): TJvID3GeneralObjFrame; - overload; - class function FindW(AController: TJvID3Controller; const AContentDescription: WideString): TJvID3GeneralObjFrame; + class function Find(AController: TJvID3Controller; const AContentDescription: WideString): TJvID3GeneralObjFrame; overload; class function FindOrCreate(AController: TJvID3Controller): TJvID3GeneralObjFrame; overload; - class function FindOrCreate(AController: TJvID3Controller; const AContentDescription: AnsiString): - TJvID3GeneralObjFrame; overload; - class function FindOrCreateW(AController: TJvID3Controller; const AContentDescription: WideString): - TJvID3GeneralObjFrame; + class function FindOrCreate(AController: TJvID3Controller; const AContentDescription: WideString): TJvID3GeneralObjFrame; overload; published property MIMEType: AnsiString read FMIMEType write SetMIMEType; - property FileName: AnsiString read FFileName.SA write SetFileName; - property FileNameW: WideString read FFileName.SW write SetFileNameW; - property ContentDescription: AnsiString read FContentDescription.SA write SetContentDescription; - property ContentDescriptionW: WideString read FContentDescription.SW write SetContentDescriptionW; + property FileName: WideString read FFileName write SetFileName; + property ContentDescription: WideString read FContentDescription write SetContentDescription; end; { POPM - fiPopularimeter - Popularimeter @@ -660,6 +643,7 @@ function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; public class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; @@ -683,17 +667,17 @@ TJvID3TermsOfUseFrame = class(TJvID3Frame) private - FText: TJvID3StringPair; + FText: WideString; FLanguage: AnsiString; procedure SetLanguage(const Value: AnsiString); - procedure SetText(const Value: AnsiString); - procedure SetTextW(const Value: WideString); + procedure SetText(const Value: WideString); protected procedure ReadFrame; override; procedure WriteFrame; override; function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; function SupportsVersion(const AVersion: TJvID3Version): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; @@ -708,8 +692,7 @@ class function FindOrCreate(AController: TJvID3Controller): TJvID3TermsOfUseFrame; published property Language: AnsiString read FLanguage write SetLanguage; - property Text: AnsiString read FText.SA write SetText; - property TextW: WideString read FText.SW write SetTextW; + property Text: WideString read FText write SetText; end; { OWNE - fiOwnership - Ownership frame @@ -720,18 +703,18 @@ TJvID3OwnershipFrame = class(TJvID3Frame) private FPricePayed: AnsiString; - FSeller: TJvID3StringPair; + FSeller: WideString; FDateOfPurch: TDateTime; procedure SetDateOfPurch(const Value: TDateTime); procedure SetPricePayed(const Value: AnsiString); - procedure SetSeller(const Value: AnsiString); - procedure SetSellerW(const Value: WideString); + procedure SetSeller(const Value: WideString); protected procedure ReadFrame; override; procedure WriteFrame; override; function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; function SupportsVersion(const AVersion: TJvID3Version): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; @@ -747,8 +730,7 @@ published property PricePayed: AnsiString read FPricePayed write SetPricePayed; property DateOfPurch: TDateTime read FDateOfPurch write SetDateOfPurch; - property Seller: AnsiString read FSeller.SA write SetSeller; - property SellerW: WideString read FSeller.SW write SetSellerW; + property Seller: WideString read FSeller write SetSeller; end; { APIC - fiPicture - Attached picture @@ -766,10 +748,9 @@ private FMIMEType: AnsiString; FPictureType: TJvID3PictureType; - FDescription: TJvID3StringPair; + FDescription: WideString; FURL: AnsiString; - procedure SetDescription(const Value: AnsiString); - procedure SetDescriptionW(const Value: WideString); + procedure SetDescription(const Value: WideString); procedure SetMIMEType(const Value: AnsiString); procedure SetURL(const Value: AnsiString); function GetHasOnlyURL: Boolean; @@ -779,6 +760,7 @@ function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; @@ -801,22 +783,22 @@ published property MIMEType: AnsiString read FMIMEType write SetMIMEType; property PictureType: TJvID3PictureType read FPictureType write FPictureType; - property Description: AnsiString read FDescription.SA write SetDescription; - property DescriptionW: WideString read FDescription.SW write SetDescriptionW; + property Description: WideString read FDescription write SetDescription; { Only used when MIMEType = '-->' } property URL: AnsiString read FURL write SetURL; end; TJvID3CustomTextFrame = class(TJvID3Frame) protected - procedure GetText(var AText: TJvID3StringPair); virtual; abstract; - procedure NewText(const ANewText: TJvID3StringPair); virtual; abstract; + function GetText: WideString; virtual; abstract; + procedure SetText(const ANewText: WideString); virtual; abstract; procedure ReadFrame; override; procedure WriteFrame; override; function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; function SupportsVersion(const AVersion: TJvID3Version): Boolean; override; function SameUniqueIDAs(const Frame: TJvID3Frame): Boolean; override; @@ -825,24 +807,21 @@ procedure Assign(Source: TPersistent); override; procedure Clear; override; + + property Text: WideString read GetText write SetText; end; TJvID3SimpleListFrame = class(TJvID3CustomTextFrame) private - FList: TStringList; - FListW: TWideStringList; - function GetList: TStrings; - function GetListW: TWideStrings; - procedure SetList(const Value: TStrings); - procedure SetListW(const Value: TWideStrings); - function GetSeparator: AnsiChar; - function GetSeparatorW: WideChar; + FList: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}; + procedure SetList(Value: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}); + function GetSeparator: WideChar; function GetFixedStringLength: Integer; procedure ListChanged(Sender: TObject); function GetIsNullSeparator: Boolean; protected - procedure GetText(var AText: TJvID3StringPair); override; - procedure NewText(const ANewText: TJvID3StringPair); override; + function GetText: WideString; override; + procedure SetText(const ANewText: WideString); override; procedure ReadFrame; override; procedure WriteFrame; override; @@ -857,21 +836,19 @@ procedure BeforeDestruction; override; property FixedStringLength: Integer read GetFixedStringLength; - property Separator: AnsiChar read GetSeparator; - property SeparatorW: WideChar read GetSeparatorW; + property Separator: WideChar read GetSeparator; property IsNullSeparator: Boolean read GetIsNullSeparator; published - property List: TStrings read GetList write SetList; - property ListW: TWideStrings read GetListW write SetListW; + property List: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP} read FList write SetList; end; TJvID3NumberFrame = class(TJvID3CustomTextFrame) private FValue: Cardinal; - procedure SetValue(const Value: Cardinal); + procedure SetValue(const AValue: Cardinal); protected - procedure GetText(var AText: TJvID3StringPair); override; - procedure NewText(const ANewText: TJvID3StringPair); override; + function GetText: WideString; override; + procedure SetText(const ANewText: WideString); override; procedure ChangeToVersion(const ANewVersion: TJvID3Version); override; function GetIsEmpty: Boolean; override; public @@ -885,10 +862,10 @@ TJvID3TimestampFrame = class(TJvID3CustomTextFrame) private FValue: TDateTime; - procedure SetValue(const Value: TDateTime); + procedure SetValue(const AValue: TDateTime); protected - procedure GetText(var AText: TJvID3StringPair); override; - procedure NewText(const ANewText: TJvID3StringPair); override; + function GetText: WideString; override; + procedure SetText(const ANewText: WideString); override; procedure ChangeToVersion(const ANewVersion: TJvID3Version); override; public function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; @@ -900,20 +877,17 @@ TJvID3TextFrame = class(TJvID3CustomTextFrame) private - FText: TJvID3StringPair; - procedure SetText(const Value: AnsiString); - procedure SetTextW(const Value: WideString); + FText: WideString; protected - procedure GetText(var AText: TJvID3StringPair); override; - procedure NewText(const ANewText: TJvID3StringPair); override; + function GetText: WideString; override; + procedure SetText(const ANewText: WideString); override; procedure ChangeToVersion(const ANewVersion: TJvID3Version); override; public function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; class function Find(AController: TJvID3Controller; const AFrameID: TJvID3FrameID): TJvID3TextFrame; class function FindOrCreate(AController: TJvID3Controller; const AFrameID: TJvID3FrameID): TJvID3TextFrame; published - property Text: AnsiString read FText.SA write SetText; - property TextW: WideString read FText.SW write SetTextW; + property Text; end; TJvID3URLFrame = class(TJvID3Frame) @@ -946,18 +920,17 @@ TJvID3UserFrame = class(TJvID3Frame) private - FValue: TJvID3StringPair; - FDescription: TJvID3StringPair; - procedure SetDescription(const Value: AnsiString); - procedure SetDescriptionW(const Value: WideString); - procedure SetValue(const Value: AnsiString); - procedure SetValueW(const Value: WideString); + FValue: WideString; + FDescription: WideString; + procedure SetDescription(const AValue: WideString); + procedure SetValue(const AValue: WideString); protected procedure ReadFrame; override; procedure WriteFrame; override; function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; public class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; @@ -968,10 +941,8 @@ class function Find(AController: TJvID3Controller; const Index: Integer): TJvID3UserFrame; class function FindOrCreate(AController: TJvID3Controller; const Index: Integer): TJvID3UserFrame; published - property Description: AnsiString read FDescription.SA write SetDescription; - property DescriptionW: WideString read FDescription.SW write SetDescriptionW; - property Value: AnsiString read FValue.SA write SetValue; - property ValueW: WideString read FValue.SW write SetValueW; + property Description: WideString read FDescription write SetDescription; + property Value: WideString read FValue write SetValue; end; { WXXX - fiWWWUser - User defined URL link @@ -979,10 +950,9 @@ TJvID3URLUserFrame = class(TJvID3Frame) private - FDescription: TJvID3StringPair; + FDescription: WideString; FURL: AnsiString; - procedure SetDescription(const Value: AnsiString); - procedure SetDescriptionW(const Value: WideString); + procedure SetDescription(const Value: WideString); procedure SetURL(const Value: AnsiString); protected procedure ReadFrame; override; @@ -990,6 +960,7 @@ function GetFrameSize(const ToEncoding: TJvID3Encoding): Cardinal; override; function GetIsEmpty: Boolean; override; + function MustWriteAsUTF: Boolean; override; public class function CanAddFrame(AController: TJvID3Controller; AFrameID: TJvID3FrameID): Boolean; override; function CheckFrame(const HandleError: TJvID3HandleError): Boolean; override; @@ -1000,8 +971,7 @@ class function Find(AController: TJvID3Controller; const Index: Integer): TJvID3URLUserFrame; class function FindOrCreate(AController: TJvID3Controller; const Index: Integer): TJvID3URLUserFrame; published - property Description: AnsiString read FDescription.SA write SetDescription; - property DescriptionW: WideString read FDescription.SW write SetDescriptionW; + property Description: WideString read FDescription write SetDescription; property URL: AnsiString read FURL write SetURL; end; @@ -1140,8 +1110,8 @@ property Header: TJvID3Header read FHeader write SetHeader stored False; property ExtendedHeader: TJvID3ExtendedHeader read FExtendedHeader write SetExtendedHeader stored False; property FileInfo: TJvID3FileInfo read FFileInfo; - property ReadEncodingAs: TJvID3ForceEncoding read FReadEncodingAs write SetReadEncodingAs default ifeDontCare; - property WriteEncodingAs: TJvID3ForceEncoding read FWriteEncodingAs write SetWriteEncodingAs default ifeDontCare; + property ReadEncodingAs: TJvID3ForceEncoding read FReadEncodingAs write SetReadEncodingAs default ifeAuto; + property WriteEncodingAs: TJvID3ForceEncoding read FWriteEncodingAs write SetWriteEncodingAs default ifeAuto; property ReadVersionAs: TJvID3ForceVersion read FReadVersionAs write SetReadVersionAs default ifvDontCare; property WriteVersionAs: TJvID3ForceVersion read FWriteVersionAs write SetWriteVersionAs default ifvDontCare; property Options: TJvID3ControllerOptions read FOptions write FOptions default [coAutoCorrect, @@ -1196,13 +1166,13 @@ procedure ID3ErrorFmt(const Msg: string; const Args: array of const; Component: TComponent = nil); function CreateUniqueName(AController: TJvID3Controller; const FrameName: AnsiString; - FrameClass: TJvID3FrameClass; Component: TComponent): AnsiString; + FrameClass: TJvID3FrameClass; Component: TComponent): string; procedure GetID3v2Version(const AFileName: string; var HasTag: Boolean; var Version: TJvID3Version); function ExtToMIMEType(const Ext: string): string; -function MIMETypeToExt(const MIMEType: AnsiString): string; -function GenreToNiceGenre(const AGenre: AnsiString): AnsiString; -function NiceGenreToGenre(const ANiceGenre: AnsiString): AnsiString; +function MIMETypeToExt(const MIMEType: string): string; +function GenreToNiceGenre(const AGenre: string): string; +function NiceGenreToGenre(const ANiceGenre: string): string; {$IFDEF UNITVERSIONING} const @@ -1230,13 +1200,16 @@ JvVCL5Utils, JvJclUtils, // SameFileName() for Delphi 5 JclBase, JclFileUtils, JclLogic, JclDateTime, + JclStringConversions, JvConsts, JvResources; +{$IFDEF COMPILER12_UP} type TJvID3StringList = class(TStringList) public - function GetSeparatedText(const Separator: AnsiString): AnsiString; + function GetSeparatedText(const Separator: string): string; end; +{$ENDIF COMPILER12_UP} const CMapBitrate: array [Boolean, TJvMPEGLayer] of Byte = @@ -1275,11 +1248,11 @@ 48000 // mlLayerI ); - cUnknownLanguage = 'XXX'; - cID3HeaderId = 'ID3'; // do not change case + cUnknownLanguage = AnsiString('XXX'); + cID3HeaderId = AnsiString('ID3'); // do not change case cChangeTagSizeFileNameTemplate: string = 'ChangeTagSize'; cPictureFrameFileNameTemplate: string = 'TJvID3PictureFrame'; - cURLArrow = '-->'; + cURLArrow = AnsiString('-->'); var DefaultFrameClasses: array [TJvID3FrameID] of TJvID3FrameClass = @@ -1390,128 +1363,33 @@ Result := Length(WideStringToUTF8(SW)); end; -function GetStringA(const SP: TJvID3StringPair; const Encoding: TJvID3Encoding): AnsiString; +function CharCount(const S: WideString): Cardinal; begin - { Returns a ansi string from the string holder SP, Encoding specifies - whether the result string should be from the unicode or ansi part of SP } - - case Encoding of - ienISO_8859_1: - Result := SP.SA; - ienUTF_16, ienUTF_16BE, ienUTF_8: - Result := WideStringToStringEx(SP.SW, CP_ACP); - else - ID3Error(RsEID3UnknownEncoding); - end; + Result := Length(S); end; -function GetStringW(const SP: TJvID3StringPair; const Encoding: TJvID3Encoding): WideString; +{$IFNDEF COMPILER12_UP} +function SameStr(const S1, S2: WideString): Boolean; begin - { Returns a unicode string from the string holder SP, Encoding specifies - whether the result string should be from the unicode or ansi part of SP } - - case Encoding of - ienISO_8859_1: - Result := StringToWideStringEx(SP.SA, CP_ACP); - ienUTF_16, ienUTF_16BE, ienUTF_8: - Result := SP.SW; - else - ID3Error(RsEID3UnknownEncoding); - end; + Result := StrICompW(PWideChar(S1), PWideChar(S2)) = 0 end; +{$ENDIF !COMPILER12_UP} -function SameStringPair(const S1, S2: TJvID3StringPair; const Enc1, Enc2: TJvID3Encoding): Boolean; -var - SW1, SW2: WideString; +function LengthEnc(const S: WideString; const Encoding: TJvID3Encoding): Cardinal; begin - { Compares two string pairs, without case sensitivity; it's used to check if - 2 frames have the same content descriptor; documentation is not clear whether - this must be done with case sensitivity or not. } - - if (Enc1 = Enc2) and (Enc1 = ienISO_8859_1) then - Result := {$IFDEF HAS_UNIT_ANSISTRINGS}AnsiStrings.{$ENDIF HAS_UNIT_ANSISTRINGS}AnsiSameStr(S1.SA, S2.SA) - else - begin - if Enc1 = ienISO_8859_1 then - SW1 := StringToWideStringEx(S1.SA, CP_ACP) - else - SW1 := S1.SW; - - if Enc2 = ienISO_8859_1 then - SW2 := StringToWideStringEx(S2.SA, CP_ACP) - else - SW2 := S2.SW; - - Result := JclUnicode.StrICompW(PWideChar(SW1), PWideChar(SW2)) = 0; - end; -end; - -procedure SetStringA(var SP: TJvID3StringPair; const Encoding: TJvID3Encoding; const S: AnsiString); -begin - { Stores the ansi string S in the string holder SP, Encoding specifies - whether S should be stored in SP as unicode or ansi } - - case Encoding of - ienISO_8859_1: - SP.SA := S; - ienUTF_16, ienUTF_16BE, ienUTF_8: - SP.SW := StringToWideStringEx(S, CP_ACP); - else - ID3Error(RsEID3UnknownEncoding); - end; -end; - -function GetCharCount(const SP: TJvID3StringPair; const Encoding: TJvID3Encoding): Cardinal; -begin - { Returns the nr. of characters of a string of a specific encoding } - - case Encoding of - ienISO_8859_1: - Result := Length(SP.SA); - ienUTF_16, ienUTF_16BE, ienUTF_8: - Result := Length(SP.SW); - else - Result := 0; - ID3Error(RsEID3UnknownEncoding); - end; -end; - -(* make Delphi 5 compiler happy // andreas -function GetByteCount(const SP: TJvID3StringPair; const Encoding: TJvID3Encoding): Cardinal; -begin - { Returns the nr. of bytes needed to store a string of a specific encoding } - - case Encoding of - ienISO_8859_1: - Result := GetCharCount(SP, Encoding); - ienUTF_16: - Result := GetCharCount(SP, Encoding) * 2 + 2 { BOM }; - ienUTF_16BE: - Result := GetCharCount(SP, Encoding) * 2; - ienUTF_8: - Result := LengthUTF8Str(GetStringW(SP, Encoding)); - else - Result := 0; - ID3Error(RsEID3UnknownEncoding); - end; -end; -*) - -function LengthEnc(const S: TJvID3StringPair; const FromEnc, ToEnc: TJvID3Encoding): Cardinal; -begin { Calculates the length in bytes needed to store a string in a stream encoded as ToEnc; the string is encoded as FromEnc in the string pair S; Very similar to GetByteCount } - case ToEnc of + case Encoding of ienISO_8859_1: - Result := GetCharCount(S, FromEnc); + Result := CharCount(S); ienUTF_16: - Result := 2 + 2 * GetCharCount(S, FromEnc); + Result := 2 + 2 * CharCount(S); ienUTF_16BE: - Result := 2 * GetCharCount(S, FromEnc); + Result := 2 * CharCount(S); ienUTF_8: - Result := LengthUTF8Str(GetStringW(S, FromEnc)); + Result := LengthUTF8Str(S); else Result := 0; ID3Error(RsEID3UnknownEncoding); @@ -1534,77 +1412,6 @@ end; end; -procedure ClearStringPair(var SP: TJvID3StringPair); -begin - with SP do - begin - SA := ''; - SW := ''; - end; -end; - -procedure CopyStringPair(const Source: TJvID3StringPair; var Dest: TJvID3StringPair); -begin - with Dest do - begin - SA := Source.SA; - SW := Source.SW; - end; -end; - -procedure CopyLists(SourceA: TStrings; SourceW: TWideStrings; const SourceEnc: TJvID3Encoding; - DestA: TStrings; DestW: TWideStrings; const DestEnc: TJvID3Encoding); -var - I: Integer; -begin - { Copies the strings in the stringlist SourceA or SourceW - depending on the - value of SourceEnc - to the stringlist DestA or DestW - depending on the - value of DestEnc } - - case SourceEnc of - ienISO_8859_1: - case DestEnc of - ienISO_8859_1: - for I := 0 to SourceA.Count - 1 do - DestA.Add(SourceA[I]); - ienUTF_16, ienUTF_16BE, ienUTF_8: - for I := 0 to SourceA.Count - 1 do - DestW.Add(StringToWideStringEx(AnsiString(SourceA[I]), CP_ACP)); - else - ID3Error(RsEID3UnknownEncoding); - end; - ienUTF_16, ienUTF_16BE, ienUTF_8: - case DestEnc of - ienISO_8859_1: - for I := 0 to SourceW.Count - 1 do - DestA.Add(string(WideStringToStringEx(SourceW[I], CP_ACP))); - ienUTF_16, ienUTF_16BE, ienUTF_8: - for I := 0 to SourceW.Count - 1 do - DestW.Add(SourceW[I]); - else - ID3Error(RsEID3UnknownEncoding); - end; - - else - ID3Error(RsEID3UnknownEncoding); - end; -end; - -function CheckIsEmpty(const SP: TJvID3StringPair; const Encoding: TJvID3Encoding): Boolean; -begin - { Returns True when the string pair SP contains an empty string, otherwise False } - - case Encoding of - ienISO_8859_1: - Result := SP.SA = ''; - ienUTF_16, ienUTF_16BE, ienUTF_8: - Result := SP.SW = ''; - else - Result := False; - ID3Error(RsEID3UnknownEncoding); - end; -end; - function CheckIsURL(Frame: TJvID3Frame; var S: AnsiString; const HandleError: TJvID3HandleError): Boolean; begin { Not implemented } @@ -1636,24 +1443,8 @@ S := AnsiLowerCase(S); end; -function CheckIsLanguageW(Frame: TJvID3Frame; var S: WideString; const HandleError: TJvID3HandleError): Boolean; +function CheckIsID3Time(Frame: TJvID3Frame; var S: WideString; const HandleError: TJvID3HandleError): Boolean; var - SA: AnsiString; -begin - { The three byte language field, present in several frames, is used to - describe the language of the frame's content, according to ISO-639-2 - [ISO-639-2]. The language should be represented in lower case. If the - language is not known the string "XXX" should be used. - } - - SA := WideStringToStringEx(S, CP_ACP); - Result := CheckIsLanguageA(Frame, SA, HandleError); - if not Result and (HandleError = heAutoCorrect) then - S := StringToWideStringEx(SA, CP_ACP); -end; - -function CheckIsID3TimeA(Frame: TJvID3Frame; var S: AnsiString; const HandleError: TJvID3HandleError): Boolean; -var I1, I2: Integer; begin { S must be in HHMM format (H = Hour; M = Minute), and may not be empty } @@ -1661,8 +1452,8 @@ if Result then begin - I1 := StrToIntDef(string(Copy(S, 1, 2)), -1); - I2 := StrToIntDef(string(Copy(S, 3, 4)), -1); + I1 := StrToIntDef(Copy(S, 1, 2), -1); + I2 := StrToIntDef(Copy(S, 3, 4), -1); Result := (I1 >= 0) and (I1 < 24) and (I2 >= 0) and (I2 < 60); end; @@ -1676,19 +1467,8 @@ end; end; -function CheckIsID3Time(Frame: TJvID3Frame; var SP: TJvID3StringPair; - const HandleError: TJvID3HandleError): Boolean; +function CheckIsID3Date(Frame: TJvID3Frame; var S: WideString; const HandleError: TJvID3HandleError): Boolean; var - S: AnsiString; -begin - S := GetStringA(SP, Frame.Encoding); - Result := CheckIsID3TimeA(Frame, S, HandleError); - if not Result and (HandleError = heAutoCorrect) then - SetStringA(SP, Frame.Encoding, S); -end; - -function CheckIsID3DateA(Frame: TJvID3Frame; var S: AnsiString; const HandleError: TJvID3HandleError): Boolean; -var I1, I2: Integer; begin { S must be in DDMM format (D = Day; M = Month), and may not be empty } @@ -1696,8 +1476,8 @@ if Result then begin - I1 := StrToIntDef(string(Copy(S, 1, 2)), -1); - I2 := StrToIntDef(string(Copy(S, 3, 4)), -1); + I1 := StrToIntDef(Copy(S, 1, 2), -1); + I2 := StrToIntDef(Copy(S, 3, 4), -1); Result := (I1 >= 1) and (I1 < 32) and (I2 >= 1) and (I2 < 13); end; @@ -1711,50 +1491,30 @@ end; end; -function CheckIsID3Date(Frame: TJvID3Frame; var SP: TJvID3StringPair; - const HandleError: TJvID3HandleError): Boolean; -var - S: AnsiString; -begin - S := GetStringA(SP, Frame.Encoding); - Result := CheckIsID3DateA(Frame, S, HandleError); - if not Result and (HandleError = heAutoCorrect) then - SetStringA(SP, Frame.Encoding, S); -end; - -function CheckMaxCharCount(Frame: TJvID3Frame; var SP: TJvID3StringPair; +function CheckMaxCharCount(Frame: TJvID3Frame; var S: WideString; const MaxCharCount: Cardinal; const HandleError: TJvID3HandleError): Boolean; begin - Result := GetCharCount(SP, Frame.Encoding) <= MaxCharCount; + Result := CharCount(S) <= MaxCharCount; if not Result then case HandleError of heAutoCorrect: - case Frame.Encoding of - ienISO_8859_1: - SetLength(SP.SA, MaxCharCount); - ienUTF_16, ienUTF_16BE, ienUTF_8: - SetLength(SP.SW, MaxCharCount); - else - Frame.Error(RsEID3UnknownEncoding); - end; + SetLength(S, MaxCharCount); heRaise: - Frame.ErrorFmt(RsEID3StringTooLong, [GetStringA(SP, Frame.Encoding)]); + Frame.ErrorFmt(RsEID3StringTooLong, [S]); end; end; -function GetID3Date(const SP: TJvID3StringPair; const Encoding: TJvID3Encoding; +function GetID3Date(const S: WideString; const Encoding: TJvID3Encoding; const Year: Word = 0): TDateTime; var - S: AnsiString; Day, Month: Word; begin { must be DDMM } - S := GetStringA(SP, Encoding); if Length(S) = 4 then begin - Day := StrToIntDef(string(Copy(S, 1, 2)), 1); - Month := StrToIntDef(string(Copy(S, 3, 4)), 1); + Day := StrToIntDef(Copy(S, 1, 2), 1); + Month := StrToIntDef(Copy(S, 3, 4), 1); end else begin @@ -1770,7 +1530,8 @@ end; end; -function CheckIsLanguageListA(Frame: TJvID3Frame; Strings: TStrings; +function CheckIsLanguageList(Frame: TJvID3Frame; + Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}; const HandleError: TJvID3HandleError): Boolean; var I: Integer; @@ -1791,70 +1552,16 @@ end; end; -function CheckIsLanguageListW(Frame: TJvID3Frame; Strings: TWideStrings; +function CheckList(Frame: TJvID3Frame; + Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}; + const ASeparator: WideChar; const HandleError: TJvID3HandleError): Boolean; var I: Integer; - S: WideString; - Ok: Boolean; -begin - Result := True; - for I := 0 to Strings.Count - 1 do - begin - S := Strings[I]; - Ok := CheckIsLanguageW(Frame, S, HandleError); - Result := Result and Ok; - if not Ok then - if HandleError = heAutoCorrect then - Strings[I] := S - else - Break; - end; -end; - -function CheckListA(Frame: TJvID3Frame; Strings: TStrings; const ASeparator: AnsiChar; - const HandleError: TJvID3HandleError): Boolean; -var - I: Integer; - S: AnsiString; + S: string; LPos: Integer; begin Result := True; - if ASeparator = #0 then - Exit; - - for I := 0 to Strings.Count - 1 do - begin - S := AnsiString(Strings[I]); - LPos := Pos(ASeparator, S); - Result := Result and (LPos = 0); - if LPos > 0 then - case HandleError of - heAutoCorrect: - begin - repeat - Delete(S, LPos, 1); - LPos := Pos(ASeparator, S); - until LPos = 0; - - Strings[I] := string(S); - end; - heRaise: - Frame.ErrorFmt(RsEID3InvalidCharInList, [ASeparator, S]); - else - Break; - end; - end; -end; - -function CheckListW(Frame: TJvID3Frame; Strings: TWideStrings; - const ASeparator: WideChar; const HandleError: TJvID3HandleError): Boolean; -var - I: Integer; - S: WideString; - LPos: Integer; -begin - Result := True; if ASeparator = WideNull then Exit; @@ -1882,18 +1589,16 @@ end; end; -function GetID3Time(const SP: TJvID3StringPair; const Encoding: TJvID3Encoding; +function GetID3Time(const S: WideString; const Encoding: TJvID3Encoding; const Sec: Word = 0; MSec: Word = 0): TDateTime; var - S: AnsiString; Hour, Min: Word; begin { must be HHMM } - S := GetStringA(SP, Encoding); if Length(S) = 4 then begin - Hour := StrToIntDef(string(Copy(S, 1, 2)), 0); - Min := StrToIntDef(string(Copy(S, 3, 4)), 0); + Hour := StrToIntDef(Copy(S, 1, 2), 0); + Min := StrToIntDef(Copy(S, 3, 4), 0); end else begin @@ -1909,7 +1614,7 @@ end; end; -function CheckIsID3PartInSetA(Frame: TJvID3Frame; var S: AnsiString; const HandleError: TJvID3HandleError): Boolean; +function CheckIsID3PartInSet(Frame: TJvID3Frame; var S: WideString; const HandleError: TJvID3HandleError): Boolean; var P: Integer; I1, I2: Integer; @@ -1923,15 +1628,15 @@ Exit; end; - P := Pos('/', string(S)); + P := Pos('/', S); if P > 1 then begin - I1 := StrToIntDef(string(Copy(S, 1, P - 1)), -1); - I2 := StrToIntDef(string(Copy(S, P + 1, MaxInt)), -1); + I1 := StrToIntDef(Copy(S, 1, P - 1), -1); + I2 := StrToIntDef(Copy(S, P + 1, MaxInt), -1); Result := (I1 > -1) and (I2 > -1); end else - Result := StrToIntDef(string(S), -1) > -1; + Result := StrToIntDef(S, -1) > -1; if not Result then case HandleError of @@ -1943,23 +1648,12 @@ end; end; -function CheckIsID3PartInSet(Frame: TJvID3Frame; var SP: TJvID3StringPair; - const HandleError: TJvID3HandleError): Boolean; -var - S: AnsiString; -begin - S := GetStringA(SP, Frame.Encoding); - Result := CheckIsID3PartInSetA(Frame, S, HandleError); - if not Result and (HandleError = heAutoCorrect) then - SetStringA(SP, Frame.Encoding, S); -end; - { Copied from DSDesign.pas } function GenerateName(Controller: TJvID3Controller; FrameName: AnsiString; - FrameClass: TJvID3FrameClass; Number: Integer): AnsiString; + FrameClass: TJvID3FrameClass; Number: Integer): string; var - Fmt: AnsiString; + Fmt: string; procedure CrunchFrameName; var @@ -1993,7 +1687,7 @@ Fmt := '%s%s%d'; if Number < 2 then Fmt := '%s%s'; - Result := {$IFDEF HAS_UNIT_ANSISTRINGS}AnsiStrings.{$ENDIF HAS_UNIT_ANSISTRINGS}Format(Fmt, [Controller.Name, FrameName, Number]); + Result := Format(Fmt, [Controller.Name, FrameName, Number]); end; procedure SyncSafe(Source: Cardinal; var Dest; const DestSize: Integer); overload; @@ -2031,20 +1725,6 @@ end; end; -procedure TranslatePairString(var S: TJvID3StringPair; const SourceEnc, DestEnc: TJvID3Encoding); -begin - case SourceEnc of - ienISO_8859_1: - if DestEnc <> ienISO_8859_1 then - S.SW := StringToWideStringEx(S.SA, CP_ACP); - ienUTF_16, ienUTF_16BE, ienUTF_8: - if DestEnc = ienISO_8859_1 then - S.SA := WideStringToStringEx(S.SW, CP_ACP); - else - ID3Error(RsEID3UnknownEncoding); - end; -end; - procedure UnSyncSafe(var Source; const SourceSize: Integer; var Dest: Cardinal); overload; type TBytes = array [0..MaxInt - 1] of Byte; @@ -2083,47 +1763,15 @@ end; end; -procedure ExtractFixedStringsA(Content: PAnsiChar; const ALength: Integer; Strings: TStrings); +procedure ExtractFixedStrings(const Content: WideString; const ALength: Integer; + Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}); var - P: PAnsiChar; - S: AnsiString; -begin - if (Content = nil) or (Content^ = #0) or (Strings = nil) or (ALength < 1) then - Exit; - - Strings.BeginUpdate; - try - SetLength(S, ALength); - - while True do - begin - P := Content; - - while (P^ <> #0) and (P - Content < ALength) do - Inc(P); - - if P - Content = ALength then - begin - Move(Content[0], S[1], ALength); - Strings.Add(string(S)); - end; - - if P^ = #0 then - Break; - - Inc(Content, ALength); - end; - finally - Strings.EndUpdate; - end; -end; - -procedure ExtractFixedStringsW(Content: PWideChar; const ALength: Integer; Strings: TWideStrings); -var - P: PWideChar; + P, ContentPtr: PWideChar; S: WideString; begin - if (Content = nil) or (Content^ = WideNull) or (Strings = nil) or (ALength < 1) then + ContentPtr := PWideChar(Content); + + if (ContentPtr = nil) or (ContentPtr^ = WideNull) or (Strings = nil) or (ALength < 1) then Exit; Strings.BeginUpdate; @@ -2132,68 +1780,42 @@ while True do begin - P := Content; + P := ContentPtr; - while (P^ <> #0) and (P - Content < ALength) do + while (P^ <> WideNull) and (P - ContentPtr < ALength) do Inc(P); - if P - Content = ALength then + if P - ContentPtr = ALength then begin - Move(Content[0], S[1], ALength * SizeOf(WideChar)); + Move(ContentPtr[0], S[1], ALength * SizeOf(WideChar)); Strings.Add(S); end; - if P^ = #0 then + if P^ = WideNull then Break; - Inc(Content, ALength); + Inc(ContentPtr, ALength); end; finally Strings.EndUpdate; end; end; -procedure ExtractStringsA(Separator: AnsiChar; Content: PAnsiChar; Strings: TStrings); +procedure ExtractStrings(Separator: WideChar; const Content: WideString; + Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}TWideStrings{$ENDIF COMPILER12_UP}); var - Tail: PAnsiChar; - S: string; - EOS: Boolean; -begin - if (Content = nil) or (Content^ = #0) or (Strings = nil) then - Exit; - - Strings.BeginUpdate; - try - Tail := Content; - repeat - while (Tail^ <> Separator) and (Tail^ <> #0) do - Inc(Tail); - - EOS := Tail^ = #0; - - SetString(S, Content, Tail - Content); - Strings.Add(S); - - Inc(Tail); - Content := Tail; - until EOS; - finally - Strings.EndUpdate; - end; -end; - -procedure ExtractStringsW(Separator: WideChar; Content: PWideChar; Strings: TWideStrings); -var Tail: PWideChar; S: WideString; EOS: Boolean; + ContentPtr: PWideChar; begin - if (Content = nil) or (Content^ = WideNull) or (Strings = nil) then + ContentPtr := PWideChar(Content); + if (ContentPtr = nil) or (ContentPtr^ = WideNull) or (Strings = nil) then Exit; Strings.BeginUpdate; try - Tail := Content; + Tail := ContentPtr; repeat while (Tail^ <> Separator) and (Tail^ <> WideNull) do @@ -2201,12 +1823,12 @@ EOS := Tail^ = WideNull; - SetLength(S, Tail - Content); - Move(Content[0], S[1], (Tail - Content) * SizeOf(WideChar)); + SetLength(S, Tail - ContentPtr); + Move(ContentPtr[0], S[1], (Tail - ContentPtr) * SizeOf(WideChar)); Strings.Add(S); Inc(Tail); - Content := Tail; + ContentPtr := Tail; until EOS; finally Strings.EndUpdate; @@ -2458,18 +2080,18 @@ { Copied from DSDesign.pas } function CreateUniqueName(AController: TJvID3Controller; const FrameName: AnsiString; - FrameClass: TJvID3FrameClass; Component: TComponent): AnsiString; + FrameClass: TJvID3FrameClass; Component: TComponent): string; var I: Integer; - function IsUnique(const AName: AnsiString): Boolean; + function IsUnique(const AName: string): Boolean; var I: Integer; begin Result := False; with AController do for I := 0 to ComponentCount - 1 do - if (Component <> Components[I]) and AnsiSameStr(string(AName), Components[I].Name) then + if (Component <> Components[I]) and AnsiSameStr(AName, Components[I].Name) then Exit; Result := True; end; @@ -2486,16 +2108,13 @@ function ExtToMIMEType(const Ext: string): string; begin { Not a very reliable method } - if SameFileName(Ext, '.jpeg') or AnsiSameText(Ext, '.jpg') then + if AnsiSameText(Ext, '.jpeg') or AnsiSameText(Ext, '.jpg') then Result := 'image/jpeg' - else - if SameFileName(Ext, '.tiff') or AnsiSameText(Ext, '.tif') then + else if AnsiSameText(Ext, '.tiff') or AnsiSameText(Ext, '.tif') then Result := 'image/tif' - else - if SameFileName(Ext, '.bmp') then + else if AnsiSameText(Ext, '.bmp') then Result := 'image/bitmap' - else - if Ext = '' then + else if Ext = '' then Result := 'image/' else { .png, .gif, .jpg etc. } @@ -2516,7 +2135,8 @@ RX Remix CR Cover } -function GenreToNiceGenre(const AGenre: AnsiString): AnsiString; + +function GenreToNiceGenre(const AGenre: string): string; var State: Integer; Start: Integer; @@ -2528,7 +2148,7 @@ Start := I + 1; end; - procedure AddString(const S: AnsiString); + procedure AddString(const S: string); begin if Result > '' then begin @@ -2542,12 +2162,12 @@ GoState0; end; - procedure AddReference(const AReference: AnsiString); + procedure AddReference(const AReference: string); var iReference: Integer; - Genre: AnsiString; + Genre: string; begin - iReference := StrToIntDef(string(AReference), -1); + iReference := StrToIntDef(AReference, -1); if iReference < 0 then begin State := -1; @@ -2566,7 +2186,7 @@ end; var - P: PAnsiChar; + P: PChar; begin Result := ''; State := 0; @@ -2635,10 +2255,10 @@ if Start <= Length(AGenre) then begin { Workaround for a bug in some taggers } - P := PAnsiChar(AGenre) + Start - 1; + P := PChar(AGenre) + Start - 1; while P^ = ' ' do Inc(P); - if StrIComp(P, PAnsiChar(Result)) <> 0 then + if StrIComp(P, PChar(Result)) <> 0 then AddString(Copy(AGenre, Start, MaxInt)); end; end; @@ -2675,7 +2295,7 @@ ID3Error(Format(Msg, Args), Component); end; -function MIMETypeToExt(const MIMEType: AnsiString): string; +function MIMETypeToExt(const MIMEType: string): string; begin { Not a very reliable method; maybe use Indy's TIdMimeTable in IdGlobal.pas @@ -2689,7 +2309,7 @@ image/x-pict .pic image/bitmap .bmp supported } - Result := string(Copy(string(MIMEType), Pos('/', string(MIMEType)) + 1, MaxInt)); + Result := Copy(MIMEType, Pos('/', MIMEType) + 1, MaxInt); Result := AnsiLowerCase(Result); if Result = 'jpeg' then @@ -2710,20 +2330,20 @@ Result := '.' + Result; end; -function NiceGenreToGenre(const ANiceGenre: AnsiString): AnsiString; +function NiceGenreToGenre(const ANiceGenre: string): string; var - S: AnsiString; + S: string; - function IsPrefix(const APrefix: AnsiString): Boolean; + function IsPrefix(const APrefix: string): Boolean; var C: Integer; begin C := Length(APrefix); Result := ((C = Length(S)) or ((C < Length(S)) and (S[C + 1] = ' '))) and - (AnsiStrLIComp(PChar(string(S)), PChar(string(APrefix)), C) = 0); + (StrLIComp(PChar(S), PChar(APrefix), C) = 0); end; - procedure AddAndDelete(const Add: AnsiString; const DelCount: Integer); + procedure AddAndDelete(const Add: string; const DelCount: Integer); begin Result := Result + Add; Delete(S, 1, DelCount); @@ -2740,7 +2360,7 @@ begin GenreID := ID3_LongGenreToID(S); if GenreID <> 255 then - AddAndDelete({$IFDEF HAS_UNIT_ANSISTRINGS}AnsiStrings.{$ENDIF HAS_UNIT_ANSISTRINGS}Format('(%d)', [GenreID]), Length(ID3_IDToGenre(GenreID))) + AddAndDelete(Format('(%d)', [GenreID]), Length(ID3_IDToGenre(GenreID))) else { Specials } if IsPrefix('remix') then @@ -3163,12 +2783,16 @@ //=== { TJvID3ContentFrame } ================================================= procedure TJvID3ContentFrame.Assign(Source: TPersistent); +var + Src: TJvID3ContentFrame; begin if Source is TJvID3ContentFrame then begin - FLanguage := TJvID3ContentFrame(Source).FLanguage; - CopyStringPair(TJvID3ContentFrame(Source).FText, FText); - CopyStringPair(TJvID3ContentFrame(Source).FDescription, FDescription); + Src := TJvID3ContentFrame(Source); + + FLanguage := Src.Language; + FText := Src.Text; + FDescription := Src.Description; end; inherited Assign(Source); @@ -3201,8 +2825,8 @@ procedure TJvID3ContentFrame.Clear; begin FLanguage := ''; - ClearStringPair(FText); - ClearStringPair(FDescription); + FText := ''; + FDescription := ''; inherited Clear; end; @@ -3243,17 +2867,35 @@ The actual text <full text string according to encoding> } Result := 1 + 3 + - LengthEnc(FDescription, Encoding, ToEncoding) + + LengthEnc(Description, ToEncoding) + LengthTerminatorEnc(ToEncoding) + - LengthEnc(FText, Encoding, ToEncoding); + LengthEnc(Text, ToEncoding); end; function TJvID3ContentFrame.GetIsEmpty: Boolean; begin Result := ((Length(FLanguage) = 0) or (FLanguage = cUnknownLanguage)) and - CheckIsEmpty(FText, Encoding) and CheckIsEmpty(FDescription, Encoding); + (Text = '') and (Description = ''); end; +function HasNonISO_8859_1Chars(const S: WideString): Boolean; +var + I: Integer; +begin + for I := 1 to Length(S) do + if Ord(S[I]) > $FF then + begin + Result := True; + Exit; + end; + Result := False; +end; + +function TJvID3ContentFrame.MustWriteAsUTF: Boolean; +begin + Result := HasNonISO_8859_1Chars(Description) or HasNonISO_8859_1Chars(Text); +end; + procedure TJvID3ContentFrame.ReadFrame; begin { Text encoding $xx @@ -3283,31 +2925,21 @@ if Result then Result := - AnsiSameStr(TJvID3ContentFrame(Frame).Language, Language) and - SameStringPair(TJvID3ContentFrame(Frame).FDescription, FDescription, - TJvID3ContentFrame(Frame).Encoding, Encoding) + AnsiSameStr(TJvID3ContentFrame(Frame).Language, Self.Language) and + SameStr(TJvID3ContentFrame(Frame).Description, Self.Description) else Result := inherited SameUniqueIDAs(Frame); end; -procedure TJvID3ContentFrame.SetDescription(const Value: AnsiString); +procedure TJvID3ContentFrame.SetDescription(const Value: WideString); begin - if FDescription.SA <> Value then + if Value <> FDescription then begin - FDescription.SA := Value; + FDescription := Value; Changed; end; end; -procedure TJvID3ContentFrame.SetDescriptionW(const Value: WideString); -begin - if FDescription.SW <> Value then - begin - FDescription.SW := Value; - Changed; - end; -end; - procedure TJvID3ContentFrame.SetLanguage(const Value: AnsiString); begin if FLanguage <> Value then @@ -3317,24 +2949,15 @@ end; end; -procedure TJvID3ContentFrame.SetText(const Value: AnsiString); +procedure TJvID3ContentFrame.SetText(const Value: WideString); begin - if FText.SA <> Value then + if Value <> FText then begin - FText.SA := Value; + FText := Value; Changed; end; end; -procedure TJvID3ContentFrame.SetTextW(const Value: WideString); -begin - if FText.SW <> Value then - begin - FText.SW := Value; - Changed; - end; -end; - procedure TJvID3ContentFrame.WriteFrame; begin { Text encoding $xx @@ -3347,9 +2970,9 @@ begin WriteEncoding; WriteLanguage(Language); - WriteStringEnc(FDescription); + WriteStringEnc(Description); WriteTerminatorEnc; - WriteStringEnc(FText); + WriteStringEnc(Text); end; end; @@ -3369,8 +2992,8 @@ FState := []; { Defaults } - FReadEncodingAs := ifeDontCare; - FWriteEncodingAs := ifeDontCare; + FReadEncodingAs := ifeAuto; + FWriteEncodingAs := ifeAuto; FReadVersionAs := ifvDontCare; FWriteVersionAs := ifvDontCare; FOptions := [coAutoCorrect, coRemoveEmptyFrames]; @@ -3406,7 +3029,7 @@ Result := FrameClass.Create(Self, AFrameID); try - Result.Name := string(CreateUniqueName(Self, Result.FrameName, FrameClass, Result)); + Result.Name := CreateUniqueName(Self, Result.FrameName, FrameClass, Result); Result.Controller := Self; except Result.Free; @@ -3591,7 +3214,6 @@ const DoOverwrite: Boolean); var Frame: TJvID3Frame; - SP: TJvID3StringPair; Year: Word; function GetFrame(AFrameID: TJvID3FrameID): TJvID3Frame; @@ -3616,20 +3238,19 @@ // Songname Frame := GetFrame(fiTitle); if Assigned(Frame) then - SetStringA(TJvID3TextFrame(Frame).FText, Frame.Encoding, AID3v1.SongName); + TJvID3TextFrame(Frame).Text := string(AID3v1.SongName); // Artist Frame := GetFrame(fiLeadArtist); if Assigned(Frame) then begin - SetStringA(SP, Frame.Encoding, AID3v1.Artist); - TJvID3CustomTextFrame(Frame).NewText(SP); + TJvID3CustomTextFrame(Frame).Text := string(AID3v1.Artist); end; // Album Frame := GetFrame(fiAlbum); if Assigned(Frame) then - SetStringA(TJvID3TextFrame(Frame).FText, Frame.Encoding, AID3v1.Album); + TJvID3TextFrame(Frame).Text := string(AID3v1.Album); // Year Year := StrToIntDef(string(AID3v1.Year), 0); @@ -3652,17 +3273,16 @@ // Comment Frame := GetFrame(fiComment); if Assigned(Frame) then - SetStringA(TJvID3ContentFrame(Fr... [truncated message content] |
From: <ob...@us...> - 2008-10-16 10:20:33
|
Revision: 11963 http://jvcl.svn.sourceforge.net/jvcl/?rev=11963&view=rev Author: obones Date: 2008-10-16 09:12:52 +0000 (Thu, 16 Oct 2008) Log Message: ----------- Mantis 4528: Calls to Move() that work on strings should take into account the size of a Char as it changed with D2009 Modified Paths: -------------- trunk/jvcl/design/JvSpeedbarForm.pas trunk/jvcl/devtools/Bpg2Make/Bpg2MakeUtils.pas trunk/jvcl/devtools/InstallerTests/Installer/Common/CmdLineUtils.pas trunk/jvcl/devtools/JvclVclClx/Utils.pas trunk/jvcl/devtools/PackagesGenerator/UtilsJcl.pas trunk/jvcl/examples/JvDBExplorer/HexDump.pas trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/DepWalkUtils.pas trunk/jvcl/install/JVCLInstall/CmdLineUtils.pas trunk/jvcl/run/JvAppDBStorage.pas trunk/jvcl/run/JvBdeUtils.pas trunk/jvcl/run/JvDSADialogs.pas trunk/jvcl/run/JvEditor.pas trunk/jvcl/run/JvInspector.pas trunk/jvcl/run/JvInterpreterFm.pas trunk/jvcl/run/JvJCLUtils.pas trunk/jvcl/run/JvPageSetup.pas trunk/jvcl/run/JvSHFileOperation.pas trunk/jvcl/run/JvSegmentedLEDDisplay.pas trunk/jvcl/run/JvStrToHtml.pas Modified: trunk/jvcl/design/JvSpeedbarForm.pas =================================================================== --- trunk/jvcl/design/JvSpeedbarForm.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/design/JvSpeedbarForm.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -915,10 +915,10 @@ Flags := []; // (rom) WARNING! Needs check against buffer overflow. ParamNameAndType[0] := Char(Length(cSender)); - Move(cSender[1], ParamNameAndType[1], Length(cSender)); + Move(cSender[1], ParamNameAndType[1], Length(cSender) * SizeOf(Char)); ParamNameAndType[Length(cSender) + 1] := Char(Length(cObject)); Move(cObject[1], ParamNameAndType[Length(cSender) + 2], - Length(cObject)); + Length(cObject) * SizeOf(Char)); end; Method := IJvFormDesigner(Designer).CreateMethod(MethodName, TypeData); Method.Data := OwnerForm; Modified: trunk/jvcl/devtools/Bpg2Make/Bpg2MakeUtils.pas =================================================================== --- trunk/jvcl/devtools/Bpg2Make/Bpg2MakeUtils.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/devtools/Bpg2Make/Bpg2MakeUtils.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -120,14 +120,14 @@ begin if Index > StartIndex then begin - Move(Text[StartIndex], Result[Len + 1], Index - StartIndex); + Move(Text[StartIndex], Result[Len + 1], (Index - StartIndex) * SizeOf(Char)); Inc(Len, Index - StartIndex); end; StartIndex := Index + LenSearchText; if LenReplaceText > 0 then begin - Move(ReplaceText[1], Result[Len + 1], LenReplaceText); + Move(ReplaceText[1], Result[Len + 1], LenReplaceText * SizeOf(Char)); Inc(Len, LenReplaceText); end; @@ -138,7 +138,7 @@ Index := LenText + 1; if Index > StartIndex then begin - Move(Text[StartIndex], Result[Len + 1], Index - StartIndex); + Move(Text[StartIndex], Result[Len + 1], (Index - StartIndex) * SizeOf(Char)); Inc(Len, Index - StartIndex); end; Modified: trunk/jvcl/devtools/InstallerTests/Installer/Common/CmdLineUtils.pas =================================================================== --- trunk/jvcl/devtools/InstallerTests/Installer/Common/CmdLineUtils.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/devtools/InstallerTests/Installer/Common/CmdLineUtils.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -51,6 +51,9 @@ implementation +uses + JvJCLUtils; + procedure TCmdOptions.Init; begin AddBool('--ignore-ide', 'Start installer even if Delphi/BCB is running.', FIgnoreIDE); @@ -167,8 +170,8 @@ if Len < Count then begin SetLength(Result, Count); - Move(S[1], Result[1], Count); - FillChar(Result[Len + 1], Count - Len, ' '); + Move(S[1], Result[1], Count * SizeOf(Char)); + FillString(Result, Len + 1, Count - Len, ' '); end else Result := S; Modified: trunk/jvcl/devtools/JvclVclClx/Utils.pas =================================================================== --- trunk/jvcl/devtools/JvclVclClx/Utils.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/devtools/JvclVclClx/Utils.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -101,7 +101,7 @@ begin SetLength(FBuffer, StartCapacity); if FLength > 0 then - Move(StartValue[1], FBuffer[1], FLength); + Move(StartValue[1], FBuffer[1], FLength * SizeOf(Char)); end; end; @@ -121,7 +121,7 @@ for i := 0 to High(Args) do begin Len := System.Length(Args[i]); - Move(Args[i][1], FBuffer[FLength + 1], Len); + Move(Args[i][1], FBuffer[FLength + 1], Len * SizeOf(Char)); Inc(FLength, Len); end; end; @@ -174,7 +174,7 @@ 7: PRec7(P)^ := PRec7(Text)^; 8: PInt64(P)^ := PInt64(Text)^; else - Move(Text[1], P^, AddLen); + Move(Text[1], P^, AddLen * SizeOf(Char)); end; Inc(FLength, AddLen); end; Modified: trunk/jvcl/devtools/PackagesGenerator/UtilsJcl.pas =================================================================== --- trunk/jvcl/devtools/PackagesGenerator/UtilsJcl.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/devtools/PackagesGenerator/UtilsJcl.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -239,14 +239,14 @@ begin if Index > StartIndex then begin - Move(Text[StartIndex], Result[Len + 1], Index - StartIndex); + Move(Text[StartIndex], Result[Len + 1], (Index - StartIndex) * SizeOf(Char)); Inc(Len, Index - StartIndex); end; StartIndex := Index + LenSearchText; if LenReplaceText > 0 then begin - Move(ReplaceText[1], Result[Len + 1], LenReplaceText); + Move(ReplaceText[1], Result[Len + 1], LenReplaceText * SizeOf(Char)); Inc(Len, LenReplaceText); end; @@ -257,7 +257,7 @@ Index := LenText + 1; if Index > StartIndex then begin - Move(Text[StartIndex], Result[Len + 1], Index - StartIndex); + Move(Text[StartIndex], Result[Len + 1], (Index - StartIndex) * SizeOf(Char)); Inc(Len, Index - StartIndex); end; Modified: trunk/jvcl/examples/JvDBExplorer/HexDump.pas =================================================================== --- trunk/jvcl/examples/JvDBExplorer/HexDump.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/examples/JvDBExplorer/HexDump.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -703,7 +703,7 @@ var I: Integer; begin - Move(HugeOffset(FAddress, Index * FBytesPerLine)^, FLineChars, MaxLen); + Move(HugeOffset(FAddress, Index * FBytesPerLine)^, FLineChars, MaxLen * SizeOf(Char)); Result := FLineChars; for I := 0 to MaxLen - 1 do if Result[I] < #32 then Result[I] := '.'; Modified: trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/DepWalkUtils.pas =================================================================== --- trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/DepWalkUtils.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/examples/JvDiagramShape/3. DependencyWalker/DepWalkUtils.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -190,8 +190,8 @@ end; if (Length(Result) > 1) and (Result[1] = '.') then begin - Move(Result[2],Result[1],Length(Result)); - SetLength(Result,Length(Result)-1); + Move(Result[2], Result[1], Length(Result) * SizeOf(Char)); + SetLength(Result, Length(Result)-1); end; end; Modified: trunk/jvcl/install/JVCLInstall/CmdLineUtils.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/CmdLineUtils.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/install/JVCLInstall/CmdLineUtils.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -85,6 +85,9 @@ implementation +uses + JvJCLUtils; + procedure TCmdOptions.Init; begin AddBool('--ignore-ide', 'Start installer even if Delphi/BCB is running.', FIgnoreIDE); @@ -204,8 +207,8 @@ if Len < Count then begin SetLength(Result, Count); - Move(S[1], Result[1], Count); - FillChar(Result[Len + 1], Count - Len, ' '); + Move(S[1], Result[1], Count * SizeOf(Char)); + FillString(Result, Len + 1, Count - Len, ' '); end else Result := S; Modified: trunk/jvcl/run/JvAppDBStorage.pas =================================================================== --- trunk/jvcl/run/JvAppDBStorage.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvAppDBStorage.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -206,7 +206,7 @@ if Result > BufSize then raise EJvAppDBStorageError.CreateResFmt(@RsEBufTooSmallFmt, [Result]); if Length(Value) > 0 then - Move(Value[1], Buf, Result); + Move(Value[1], Buf, Result * SizeOf(AnsiChar)); end; function TJvCustomAppDBStorage.DoReadFloat(const Path: string; @@ -237,7 +237,7 @@ procedure TJvCustomAppDBStorage.DoWriteBinary(const Path: string; const Buf: TJvBytes; BufSize: Integer); var - Value, Buf1: string; + Value, Buf1: AnsiString; begin raise EJvAppDBStorageError.CreateRes(@RsENotSupported); // TODO -cTESTING -oJVCL: NOT TESTED!!! Modified: trunk/jvcl/run/JvBdeUtils.pas =================================================================== --- trunk/jvcl/run/JvBdeUtils.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvBdeUtils.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -365,7 +365,7 @@ fldZSTRING: AnsiToNative(Locale, AnsiString(Value), PAnsiChar(Buffer), FldSize); // potential data loss under D2009 because of AnsiString cast fldBYTES, fldVARBYTES: - Move(Value[1], Buffer^, Min(Length(Value), FldSize)); + Move(Value[1], Buffer^, Min(Length(Value) * SizeOf(Char), FldSize)); fldINT16, fldINT32, fldUINT16, fldINT64: begin if Value = '' then Modified: trunk/jvcl/run/JvDSADialogs.pas =================================================================== --- trunk/jvcl/run/JvDSADialogs.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvDSADialogs.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -628,13 +628,13 @@ if OpenClipboard(0) then begin try - Data := GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, Length(Text) + 1); + Data := GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, (Length(Text) + 1) * SizeOf(Char)); try DataPtr := GlobalLock(Data); try - Move(PChar(Text)^, DataPtr^, Length(Text) + 1); + Move(PChar(Text)^, DataPtr^, (Length(Text) + 1) * SizeOf(Char)); EmptyClipboard; - SetClipboardData(CF_TEXT, Data); + SetClipboardData({$IFDEF UNICODE}CF_UNICODETEXT{$ELSE}CF_TEXT{$ENDIF UNICODE}, Data); finally GlobalUnlock(Data); end; Modified: trunk/jvcl/run/JvEditor.pas =================================================================== --- trunk/jvcl/run/JvEditor.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvEditor.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -1506,13 +1506,13 @@ CLen := SelEndX - SelBegX + 1; if CLen <> 0 then begin - Move(S[SelBegX + 1], P^, CLen); + Move(S[SelBegX + 1], P^, CLen * SizeOf(Char)); Inc(P, CLen); end; if I < SelEndY then begin - Move(sLineBreak[1], P^, sLineBreakLen); + Move(sLineBreak[1], P^, sLineBreakLen * SizeOf(Char)); Inc(P, sLineBreakLen); end; end; @@ -1521,7 +1521,7 @@ else begin if SelBegY = SelEndY then - Move(FLines[SelEndY][SelBegX + 1], Result[1], Len) + Move(FLines[SelEndY][SelBegX + 1], Result[1], Len * SizeOf(Char)) else begin P := PChar(Result); @@ -1531,12 +1531,12 @@ CLen := Length(S) - SelBegX; if CLen > 0 then begin - Move(S[SelBegX + 1], P^, CLen); + Move(S[SelBegX + 1], P^, CLen * SizeOf(Char)); Inc(P, CLen); end; // line break - Move(sLineBreak[1], P^, sLineBreakLen); + Move(sLineBreak[1], P^, sLineBreakLen * SizeOf(Char)); Inc(P, sLineBreakLen); // lines between @@ -1544,11 +1544,11 @@ begin // line S := FLines[I]; - Move(S[1], P^, Length(S)); + Move(S[1], P^, Length(S) * SizeOf(Char)); Inc(P, Length(S)); // line break - Move(sLineBreak[1], P^, sLineBreakLen); + Move(sLineBreak[1], P^, sLineBreakLen * SizeOf(Char)); Inc(P, sLineBreakLen); end; @@ -1558,7 +1558,7 @@ if CLen > Length(S) then CLen := Length(S); if CLen > 0 then - Move(S[1], P^, CLen); + Move(S[1], P^, CLen * SizeOf(Char)); end; end; end; @@ -2014,7 +2014,7 @@ // copy the chars before the Tab if ps > 1 then begin - Move(S[1], P[0], ps - 1); + Move(S[1], P[0], ps - 1 * SizeOf(Char)); Inc(P, ps - 1); end; @@ -2028,7 +2028,7 @@ else if LenSp > 0 then begin - Move(Sp[1], P[0], LenSp); + Move(Sp[1], P[0], LenSp * SizeOf(Char)); Inc(P, LenSp); end; end; Modified: trunk/jvcl/run/JvInspector.pas =================================================================== --- trunk/jvcl/run/JvInspector.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvInspector.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -10651,7 +10651,7 @@ EnumMin := GetTypeData(CompType).MinValue; EnumMax := GetTypeData(CompType).MaxValue; ResBytes := (EnumMax div 8) - (EnumMin div 8) + 1; - Move(PChar(Address)[0], Buf, ResBytes); + Move(PAnsiChar(Address)[0], Buf, ResBytes); end else raise EJvInspectorData.CreateResFmt(@RsEJvInspDataNoAccessAs, [cJvInspectorSet]); @@ -10721,7 +10721,7 @@ EnumMin := GetTypeData(CompType).MinValue; EnumMax := GetTypeData(CompType).MaxValue; ResBytes := (EnumMax div 8) - (EnumMin div 8) + 1; - Move(Buf, PChar(Address)[0], ResBytes); + Move(Buf, PAnsiChar(Address)[0], ResBytes); InvalidateData; Invalidate; end Modified: trunk/jvcl/run/JvInterpreterFm.pas =================================================================== --- trunk/jvcl/run/JvInterpreterFm.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvInterpreterFm.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -178,7 +178,7 @@ // (rom) explicit allocation instead of deprecated NewStr Len := StrLen(PChar(MethodName))+1; GetMem(Result, Len); - Move(PChar(MethodName)^, Result^, Len); + Move(PChar(MethodName)^, Result^, Len * SizeOf(Char)); TJvInterpreterForm(Root).FMethodList.Add(Result); end; Modified: trunk/jvcl/run/JvJCLUtils.pas =================================================================== --- trunk/jvcl/run/JvJCLUtils.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvJCLUtils.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -2405,7 +2405,7 @@ procedure MoveString(const Source: string; var Dest: string; Count: Integer); begin - Move(Source[1], Dest[1], Count); + Move(Source[1], Dest[1], Count * SizeOf(Char)); end; procedure MoveString(const Source: string; SrcStartIdx: Integer; var Dest: string; @@ -2416,7 +2416,7 @@ if SrcStartIdx <= 0 then SrcStartIdx := 1; - Move(Source[SrcStartIdx], Dest[DstStartIdx], Count); + Move(Source[SrcStartIdx], Dest[DstStartIdx], Count * SizeOf(Char)); end; procedure FillWideChar(var Buffer; Count: Integer; const Value: WideChar); Modified: trunk/jvcl/run/JvPageSetup.pas =================================================================== --- trunk/jvcl/run/JvPageSetup.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvPageSetup.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -342,7 +342,7 @@ function CopyData(Handle: THandle): THandle; var - Src, Dest: PChar; + Src, Dest: {$IFDEF COMPILER12_UP}PByte{$ELSE}PChar{$ENDIF COMPILER12_UP}; Size: Integer; begin if Handle <> 0 then Modified: trunk/jvcl/run/JvSHFileOperation.pas =================================================================== --- trunk/jvcl/run/JvSHFileOperation.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvSHFileOperation.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -198,12 +198,12 @@ SetLength(S, PNameMapping.cchOldPath * 2) else SetLength(S, PNameMapping.cchOldPath); - Move(PNameMapping.pszOldPath[0], S[1], Length(S)); + Move(PNameMapping.pszOldPath[0], S[1], Length(S) * SizeOf(Char)); if Win32Platform = VER_PLATFORM_WIN32_NT then SetLength(D, PNameMapping.cchNewPath * 2) else SetLength(D, PNameMapping.cchNewPath); - Move(PNameMapping.pszNewPath[0], D[1], Length(D)); + Move(PNameMapping.pszNewPath[0], D[1], Length(D) * SizeOf(Char)); if Win32Platform = VER_PLATFORM_WIN32_NT then begin // (p3) ShFileOp returns widechars on NT platforms Modified: trunk/jvcl/run/JvSegmentedLEDDisplay.pas =================================================================== --- trunk/jvcl/run/JvSegmentedLEDDisplay.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvSegmentedLEDDisplay.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -67,7 +67,7 @@ TCharSet = set of Char; {$ENDIF ~RTL200_UP} TSegCharMapHeader = record - ID: array[0..11] of Char; + ID: array[0..11] of AnsiChar; MappedChars: TCharSet; Flags: Longint; end; @@ -1795,7 +1795,7 @@ OrgPos := Stream.Position; try Stream.ReadBuffer(Hdr, SizeOf(Hdr)); - if StrLIComp(Hdr.ID, PChar(Display.DigitClass.MapperFileID), Length(Display.DigitClass.MapperFileID)) = 0 then + if StrLIComp(Hdr.ID, PAnsiChar(Display.DigitClass.MapperFileID), Length(Display.DigitClass.MapperFileID)) = 0 then PrimReadMapping(Hdr, Stream) else raise EJVCLSegmentedLEDException.CreateRes(@RsEInvalidMappingFile); @@ -1820,7 +1820,7 @@ procedure TJvSegmentedLEDCharacterMapper.SaveToStream(Stream: TStream); var Hdr: TSegCharMapHeader; - TmpID: string; + TmpID: AnsiString; MapSize: Byte; Chr: AnsiChar; TmpDot: Int64; Modified: trunk/jvcl/run/JvStrToHtml.pas =================================================================== --- trunk/jvcl/run/JvStrToHtml.pas 2008-10-16 07:02:19 UTC (rev 11962) +++ trunk/jvcl/run/JvStrToHtml.pas 2008-10-16 09:12:52 UTC (rev 11963) @@ -218,7 +218,7 @@ if Ch = Conversions[J].Ch then begin HtmlLen := StrLen(Conversions[J].Html); - Move(Conversions[J].Html[0], P[0], HtmlLen); // Conversions[].Html is a PChar + Move(Conversions[J].Html[0], P[0], HtmlLen * SizeOf(Char)); // Conversions[].Html is a PChar Inc(P, HtmlLen); Ch := #0; Break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-10-26 12:59:04
|
Revision: 11993 http://jvcl.svn.sourceforge.net/jvcl/?rev=11993&view=rev Author: ahuser Date: 2008-10-26 12:56:38 +0000 (Sun, 26 Oct 2008) Log Message: ----------- - Mantis #4507: TJvAni can't load *.ANI files under Delphi 2009 - Moved unused JvAniFile.pas to archive Modified Paths: -------------- trunk/jvcl/run/JvAni.pas trunk/jvcl/run/JvTypes.pas Added Paths: ----------- trunk/jvcl/archive/JvAniFile.pas Removed Paths: ------------- trunk/jvcl/run/JvAniFile.pas Copied: trunk/jvcl/archive/JvAniFile.pas (from rev 11978, trunk/jvcl/run/JvAniFile.pas) =================================================================== --- trunk/jvcl/archive/JvAniFile.pas (rev 0) +++ trunk/jvcl/archive/JvAniFile.pas 2008-10-26 12:56:38 UTC (rev 11993) @@ -0,0 +1,840 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JvAniFile.PAS, released on 2002-07-04. + +The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev +Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev +Copyright (c) 2001,2002 SGB Software +All Rights Reserved. + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net + +Known Issues: +-----------------------------------------------------------------------------} +// $Id$ + +unit JvAniFile; + +{$I jvcl.inc} + +interface + +uses + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + Classes, + {$IFDEF HAS_UNIT_RTLCONSTS} + RTLConsts, + {$ENDIF HAS_UNIT_RTLCONSTS} + Windows, Graphics, + JvTypes; + +type + TJvIconFrame = class(TPersistent) + private + FIcon: TIcon; + FIsIcon: Boolean; + FHotSpot: TPoint; + public + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + property Icon: TIcon read FIcon; + property HotSpot: TPoint read FHotSpot; + end; + + TJvAnimatedCursorImage = class(TPersistent) + private + FHeader: TJvAniHeader; + FTitle: string; + FCreator: string; + FIcons: TList; + FOriginalColors: Word; + FIndex: Integer; + FRates: array of Longint; + FSequence: array of Longint; + FFrameCount: Integer; + procedure NewImage; + procedure RiffReadError; + function ReadCreateIcon(Stream: TStream; ASize: Longint; + var HotSpot: TPoint; var IsIcon: Boolean): TIcon; + function GetIconCount: Integer; + function GetFrameCount: Integer; + function GetIcons(Index: Integer): TIcon; + function GetFrames(Index: Integer): TJvIconFrame; + function GetRates(Index: Integer): Longint; + procedure SetIndex(Value: Integer); + procedure ReadAniStream(Stream: TStream); + procedure WriteAniStream(Stream: TStream); + public + constructor Create; + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + procedure AssignTo(Dest: TPersistent); override; + procedure Draw(ACanvas: TCanvas; const ARect: TRect); + procedure Clear; + procedure LoadFromStream(Stream: TStream); virtual; + procedure SaveToStream(Stream: TStream); virtual; + procedure LoadFromFile(const FileName: string); virtual; + procedure AssignToBitmap(Bitmap: TBitmap; BackColor: TColor; + DecreaseColors, Vertical: Boolean); // DecreaseBMPColors does nothing under VisualCLX + property IconCount: Integer read GetIconCount; + property FrameCount: Integer read GetFrameCount; + property Icons[Index: Integer]: TIcon read GetIcons; + property Frames[Index: Integer]: TJvIconFrame read GetFrames; + property Rates[Index: Integer]: Longint read GetRates; + property Title: string read FTitle write FTitle; + property Creator: string read FCreator write FCreator; + property OriginalColors: Word read FOriginalColors; + property Header: TJvAniHeader read FHeader; + property Index: Integer read FIndex write SetIndex; + end; + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JVCL\run' + ); +{$ENDIF UNITVERSIONING} + +implementation + +uses + SysUtils, + Consts, Math, + JvJVCLUtils, JvJCLUtils, JvIconList, JvConsts, JvResources; + +function PadUp(Value: Longint): Longint; +begin + Result := Value + (Value mod 2); // Up Value to nearest word boundary +end; + +procedure DecreaseBMPColors(Bmp: TBitmap; Colors: Integer); + +var + Stream: TStream; +begin + if (Bmp <> nil) and (Colors > 0) then + begin + Stream := BitmapToMemory(Bmp, Colors); + try + Bmp.LoadFromStream(Stream); + finally + Stream.Free; + end; + end; + + +end; + +function GetDInColors(BitCount: Word): Integer; +begin + case BitCount of + 1, 4, 8: + Result := 1 shl BitCount; + else + Result := 0; + end; +end; + +{ ReadTag, ReadChunk, SkipChunk. Some handy functions for reading RIFF files. } + +function ReadTag(S: TStream; var Tag: TJvAniTag): Boolean; +begin + Tag.ckID := #0#0#0#0; + Tag.ckSize := 0; + Result := S.Read(Tag, SizeOf(TJvAniTag)) = SizeOf(TJvAniTag); +end; + +function ReadChunk(S: TStream; const Tag: TJvAniTag; var Data): Boolean; +begin + Result := S.Read(Data, Tag.ckSize) = Tag.ckSize; + if Result then + Result := S.Seek(Tag.ckSize mod 2, soFromCurrent) <> -1; +end; + +function ReadChunkN(S: TStream; const Tag: TJvAniTag; var Data; + cbMax: Longint): Boolean; +var + cbRead: Longint; +begin + FillChar(Data, cbMax, #0); + cbRead := Tag.ckSize; + if cbMax < cbRead then + cbRead := cbMax; + Result := S.Read(Data, cbRead) = cbRead; + if Result then + begin + cbRead := PadUp(Tag.ckSize) - cbRead; + Result := S.Seek(cbRead, soFromCurrent) <> -1; + end; +end; + +function SkipChunk(S: TStream; const Tag: TJvAniTag): Boolean; +begin + // Round pTag^.ckSize up to nearest word boundary to maintain alignment + Result := S.Seek(PadUp(Tag.ckSize), soFromCurrent) <> -1; +end; + +{ Icon and cursor types } + +const + RC3_STOCKICON = 0; + RC3_ICON = 1; + RC3_CURSOR = 2; + +type + PCursorOrIcon = ^TCursorOrIcon; + TCursorOrIcon = packed record + Reserved: Word; + wType: Word; + Count: Word; + end; + + PIconRec = ^TIconRec; + TIconRec = packed record + Width: Byte; + Height: Byte; + Colors: Word; + xHotspot: Word; + yHotspot: Word; + DIBSize: Longint; + DIBOffset: Longint; + end; + +//=== { TJvIconFrame } ======================================================= + +destructor TJvIconFrame.Destroy; +begin + FIcon.Free; + inherited Destroy; +end; + +procedure TJvIconFrame.Assign(Source: TPersistent); +begin + if Source is TJvIconFrame then + with Source as TJvIconFrame do + begin + if Self.FIcon = nil then + Self.FIcon := TIcon.Create; + Self.FIcon.Assign(Icon); + Self.FIsIcon := FIsIcon; + Self.FHotSpot := HotSpot; + end + else + inherited Assign(Source); +end; + +//=== { TJvAnimatedCursorImage } ============================================= + +constructor TJvAnimatedCursorImage.Create; +begin + inherited Create; + FIcons := TList.Create; + FIndex := 0; +end; + +destructor TJvAnimatedCursorImage.Destroy; +begin + NewImage; + FIcons.Free; + inherited Destroy; +end; + +procedure TJvAnimatedCursorImage.Clear; +begin + NewImage; +end; + +procedure TJvAnimatedCursorImage.NewImage; +var + I: Integer; +begin + for I := 0 to FIcons.Count - 1 do + TJvIconFrame(FIcons[I]).Free; + FIcons.Clear; + SetLength(FRates, 0); + SetLength(FSequence, 0); + FFrameCount := 0; + FTitle := ''; + FCreator := ''; + FillChar(FHeader, SizeOf(FHeader), 0); + FOriginalColors := 0; +end; + +procedure TJvAnimatedCursorImage.RiffReadError; +begin + raise EReadError.CreateRes(@SReadError); +end; + +function TJvAnimatedCursorImage.GetIconCount: Integer; +begin + Result := FIcons.Count; +end; + +function TJvAnimatedCursorImage.GetFrameCount: Integer; +begin + Result := FFrameCount; +end; + +function TJvAnimatedCursorImage.GetIcons(Index: Integer): TIcon; +begin + if (Index >= 0) and (Index < IconCount) then + Result := TJvIconFrame(FIcons[Index]).FIcon + else + Result := nil; +end; + +function TJvAnimatedCursorImage.GetFrames(Index: Integer): TJvIconFrame; +begin + if (Index >= 0) and (Index < FrameCount) then + begin + if Index < Length(FSequence) then + Result := TJvIconFrame(FIcons[FSequence[Index]]) + else + Result := TJvIconFrame(FIcons[Index]); + end + else + Result := nil; +end; + +function TJvAnimatedCursorImage.GetRates(Index: Integer): Longint; +begin + if (Index >= 0) and (Index < Length(FRates)) then + Result := FRates[Index] + else + Result := Header.dwJIFRate; +end; + +procedure TJvAnimatedCursorImage.SetIndex(Value: Integer); +begin + if (Value >= 0) and (Value < FrameCount) then + FIndex := Value; +end; + +procedure TJvAnimatedCursorImage.Assign(Source: TPersistent); +var + I: Integer; + Frame: TJvIconFrame; +begin + if Source = nil then + Clear + else + if Source is TJvAnimatedCursorImage then + begin + NewImage; + try + with TJvAnimatedCursorImage(Source) do + begin + Move(FHeader, Self.FHeader, SizeOf(FHeader)); + Self.FTitle := Title; + Self.FCreator := Creator; + Self.FOriginalColors := FOriginalColors; + Self.FFrameCount := FrameCount; + SetLength(Self.FRates, Length(FRates)); + if Length(FRates) <> 0 then + Move(FRates[0], Self.FRates[0], Length(FRates)*SizeOf(Longint)); + SetLength(Self.FSequence, Length(FSequence)); + if Length(FSequence) <> 0 then + Move(FSequence[0], Self.FSequence[0], Length(FSequence)*SizeOf(Longint)); + for I := 0 to FIcons.Count - 1 do + begin + Frame := TJvIconFrame.Create; + try + Frame.Assign(TJvIconFrame(FIcons[I])); + Self.FIcons.Add(Frame); + except + Frame.Free; + raise; + end; + end; + end; + except + NewImage; + raise; + end; + end + else + inherited Assign(Source); +end; + +procedure TJvAnimatedCursorImage.AssignTo(Dest: TPersistent); +var + I: Integer; +begin + if Dest is TIcon then + begin + if IconCount > 0 then + Dest.Assign(Icons[Index]) + else + Dest.Assign(nil); + end + else + if Dest is TBitmap then + begin + if IconCount > 0 then + AssignToBitmap(TBitmap(Dest), TBitmap(Dest).Canvas.Brush.Color, True, False) + else + Dest.Assign(nil); + end + else + if Dest is TJvIconList then + begin + TJvIconList(Dest).BeginUpdate; + try + TJvIconList(Dest).Clear; + for I := 0 to FrameCount - 1 do + TJvIconList(Dest).Add(Frames[I].Icon); + finally + TJvIconList(Dest).EndUpdate; + end; + end + else + inherited AssignTo(Dest); +end; + +function TJvAnimatedCursorImage.ReadCreateIcon(Stream: TStream; ASize: Longint; + var HotSpot: TPoint; var IsIcon: Boolean): TIcon; +type + PIconRecArray = ^TIconRecArray; + TIconRecArray = array [0..300] of TIconRec; +var + List: PIconRecArray; + Mem: TMemoryStream; + HeaderLen, I: Integer; + BI: PBitmapInfoHeader; +begin + Result := nil; + Mem := TMemoryStream.Create; + try + Mem.SetSize(ASize); + Mem.CopyFrom(Stream, ASize); + HotSpot := Point(0, 0); + IsIcon := PCursorOrIcon(Mem.Memory)^.wType = RC3_ICON; + if PCursorOrIcon(Mem.Memory)^.wType = RC3_CURSOR then + PCursorOrIcon(Mem.Memory)^.wType := RC3_ICON; + if PCursorOrIcon(Mem.Memory)^.wType = RC3_ICON then + begin + { determinate original icon color } + HeaderLen := PCursorOrIcon(Mem.Memory)^.Count * SizeOf(TIconRec); + GetMem(List, HeaderLen); + try + Mem.Position := SizeOf(TCursorOrIcon); + Mem.Read(List^, HeaderLen); + for I := 0 to PCursorOrIcon(Mem.Memory)^.Count - 1 do + with List^[I] do + begin + GetMem(BI, DIBSize); + try + Mem.Seek(DIBOffset, soFromBeginning); + Mem.Read(BI^, DIBSize); + FOriginalColors := Max(GetDInColors(BI^.biBitCount), FOriginalColors); + HotSpot := Point(xHotspot, yHotspot); + finally + FreeMem(BI, DIBSize); + end; + end; + finally + FreeMem(List, HeaderLen); + end; + { return to start of stream } + Mem.Position := 0; + Result := TIcon.Create; + try + Result.LoadFromStream(Mem); + if IsIcon then + HotSpot := Point(Result.Width div 2, Result.Height div 2); + except + Result.Free; + Result := nil; + end; + end; + finally + Mem.Free; + end; +end; + +{ Loads an animated cursor from a RIFF file. The RIFF file format for + animated cursors looks like this: + +"RIFF" [Length of File] + "ACON" + "LIST" [Length of List] + "INAM" [Length of Title] [Data] + "IART" [Length of Author] [Data] + "fram" + "icon" [Length of Icon][Data] ; 1st in list + ... + "icon" [Length of Icon] [Data] ; Last in list (1 to cFrames) + "anih" [Length of ANI header (36 bytes)] [Data] ; (see ANI Header TypeDef) + "rate" [Length of rate block] [Data] ; ea. rate is a long (length is 1 to cSteps) + "seq " [Length of sequence block] [Data] ; ea. seq is a long (length is 1 to cSteps) +} + +procedure TJvAnimatedCursorImage.ReadAniStream(Stream: TStream); +var + I: Integer; + Tag: TJvAniTag; + Frame: TJvIconFrame; + cbChunk, cbRead: Longint; + Icon: TIcon; + IsIcon: Boolean; + HotSpot: TPoint; + Buffer: array [0..255] of Char; +begin + { Make sure it's a RIFF ANI file } + if not ReadTag(Stream, Tag) or (Tag.ckID <> FOURCC_RIFF) then + RiffReadError; + if (Stream.Read(Tag.ckID, SizeOf(Tag.ckID)) < SizeOf(Tag.ckID)) or + (Tag.ckID <> FOURCC_ACON) then + RiffReadError; + NewImage; + { look for 'anih', 'rate', 'seq ', and 'icon' chunks } + while ReadTag(Stream, Tag) do + begin + if Tag.ckID = FOURCC_anih then + begin + if not ReadChunk(Stream, Tag, FHeader) then + Break; + if ((FHeader.dwFlags and AF_ICON) <> AF_ICON) or + (FHeader.dwFrames = 0) then + RiffReadError; + end + else + if Tag.ckID = FOURCC_rate then + begin + { If we find a rate chunk, read it into its preallocated space } + SetLength(FRates, Tag.ckSize div SizeOf(Longint)); + if not ReadChunkN(Stream, Tag, FRates[0], Tag.ckSize) then + Break; + end + else + if Tag.ckID = FOURCC_seq then + begin + { If we find a seq chunk, read it into its preallocated space } + FFrameCount := Tag.ckSize div SizeOf(Longint); + SetLength(FSequence, FFrameCount); + if not ReadChunkN(Stream, Tag, FSequence[0], Tag.ckSize) then + Break; + end + else + if Tag.ckID = FOURCC_LIST then + begin + cbChunk := PadUp(Tag.ckSize); + { See if this list is the 'fram' list of icon chunks } + cbRead := Stream.Read(Tag.ckID, SizeOf(Tag.ckID)); + if cbRead < SizeOf(Tag.ckID) then + Break; + Dec(cbChunk, cbRead); + if Tag.ckID = FOURCC_fram then + begin + while cbChunk >= SizeOf(Tag) do + begin + if not ReadTag(Stream, Tag) then + Break; + Dec(cbChunk, SizeOf(Tag)); + if Tag.ckID = FOURCC_icon then + begin + { Ok, load the icon/cursor bits } + Icon := ReadCreateIcon(Stream, Tag.ckSize, HotSpot, IsIcon); + if Icon = nil then + Break; + Frame := TJvIconFrame.Create; + Frame.FIcon := Icon; + Frame.FHotSpot := HotSpot; + Frame.FIsIcon := IsIcon; + FIcons.Add(Frame); + end + else + { Unknown chunk in fram list, just ignore it } + SkipChunk(Stream, Tag); + Dec(cbChunk, PadUp(Tag.ckSize)); + end; + end + else + if Tag.ckID = FOURCC_INFO then + begin + { now look for INAM and IART chunks } + while cbChunk >= SizeOf(Tag) do + begin + if not ReadTag(Stream, Tag) then + Break; + Dec(cbChunk, SizeOf(Tag)); + if Tag.ckID = FOURCC_INAM then + begin + if (cbChunk < Tag.ckSize) or + not ReadChunkN(Stream, Tag, Buffer[0], SizeOf(Buffer)-1) then + Break; + Dec(cbChunk, PadUp(Tag.ckSize)); + FTitle := Buffer; + end + else + if Tag.ckID = FOURCC_IART then + begin + if (cbChunk < Tag.ckSize) or + not ReadChunkN(Stream, Tag, Buffer[0], SizeOf(Buffer)-1) then + Break; + Dec(cbChunk, PadUp(Tag.ckSize)); + FCreator := Buffer; + end + else + begin + if not SkipChunk(Stream, Tag) then + Break; + Dec(cbChunk, PadUp(Tag.ckSize)); + end; + end; + end + else + begin + { Not the fram list or the INFO list. Skip the rest of this + chunk. (Do not forget that we have already skipped one dword) } + Tag.ckSize := cbChunk; + SkipChunk(Stream, Tag); + end; + end + else + begin + { We are not interested in this chunk, skip it. } + if not SkipChunk(Stream, Tag) then + Break; + end; + end; + { Update the frame count in case we coalesced some frames while reading + in the file. } + for I := FIcons.Count - 1 downto 0 do + begin + if TJvIconFrame(FIcons[I]).FIcon = nil then + begin + TJvIconFrame(FIcons[I]).Free; + FIcons.Delete(I); + end; + end; + if FrameCount = 0 then + FFrameCount := FIcons.Count; + FHeader.dwFrames := FIcons.Count; + if FHeader.dwFrames = 0 then + RiffReadError; +end; + +procedure SetFOURCC(var FourCC: TJvFourCC; const ID: AnsiString); +begin + FourCC[0] := ID[1]; + FourCC[1] := ID[2]; + FourCC[2] := ID[3]; + FourCC[3] := ID[4]; +end; + +procedure StartWriteChunk(Stream: TStream; var Tag: TJvAniTag; const ID: AnsiString); +begin + SetFOURCC(Tag.ckID, ID); + Tag.ckSize := Stream.Position; + Stream.Write(Tag, SizeOf(Tag)); +end; + +procedure EndWriteChunk(Stream: TStream; var Tag: TJvAniTag; AddSize: Integer); +var + Pos: Int64; + B: Byte; +begin + Pos := Stream.Position; + Tag.ckSize := Pos - Tag.ckSize; + Stream.Seek(-Tag.ckSize, soFromCurrent); + Dec(Tag.ckSize, SizeOf(TJvAniTag)); + Inc(Tag.ckSize, AddSize); + Stream.Write(Tag, SizeOf(Tag)); + Stream.Seek(Pos, soFromBeginning); + if Odd(Tag.ckSize) then + begin + B := 0; + Stream.Write(B, 1); + end; +end; + +procedure TJvAnimatedCursorImage.WriteAniStream(Stream: TStream); +var + I: Integer; + MemStream: TMemoryStream; + TagRIFF, TagLIST, Tag: TJvAniTag; + ID: TJvFourCC; +begin + MemStream := TMemoryStream.Create; + try + StartWriteChunk(MemStream, TagRIFF, FOURCC_RIFF); + + SetFOURCC(ID, FOURCC_ACON); + MemStream.Write(ID, SizeOf(TJvFourCC)); + + if (Title <> '') or (Creator <> '') then + begin + StartWriteChunk(MemStream, TagLIST, FOURCC_LIST); + SetFOURCC(ID, FOURCC_INFO); + MemStream.Write(ID, SizeOf(TJvFourCC)); + if Title <> '' then + begin + StartWriteChunk(MemStream, Tag, FOURCC_INAM); + MemStream.Write(PChar(Title)^, Length(Title)+1); + EndWriteChunk(MemStream, Tag, 0); + end; + if Creator <> '' then + begin + StartWriteChunk(MemStream, Tag, FOURCC_IART); + MemStream.Write(PChar(Creator)^, Length(Creator)+1); + EndWriteChunk(MemStream, Tag, 0); + end; + EndWriteChunk(MemStream, TagLIST, 0); + end; + StartWriteChunk(MemStream, Tag, FOURCC_anih); + FHeader.dwFrames := IconCount; + MemStream.Write(FHeader, SizeOf(TJvAniHeader)); + EndWriteChunk(MemStream, Tag, 0); + if Length(FRates) <> 0 then + begin + StartWriteChunk(MemStream, Tag, FOURCC_rate); + MemStream.Write(FRates, Length(FRates)*SizeOf(Longint)); + EndWriteChunk(MemStream, Tag, 0); + end; + if Length(FSequence) <> 0 then + begin + StartWriteChunk(MemStream, Tag, FOURCC_seq); + MemStream.Write(FSequence[0], Length(FSequence)*SizeOf(Longint)); + EndWriteChunk(MemStream, Tag, 0); + end; + + StartWriteChunk(MemStream, TagLIST, FOURCC_LIST); + SetFOURCC(ID, FOURCC_fram); + MemStream.Write(ID, SizeOf(TJvFourCC)); + for I := 0 to IconCount - 1 do + begin + StartWriteChunk(MemStream, Tag, FOURCC_icon); + Icons[I].SaveToStream(MemStream); + EndWriteChunk(MemStream, Tag, 0); + end; + EndWriteChunk(MemStream, TagLIST, 0); + + EndWriteChunk(MemStream, TagRIFF, SizeOf(TJvAniTag)); + Stream.CopyFrom(MemStream, 0); + finally + MemStream.Free; + end; +end; + +procedure TJvAnimatedCursorImage.LoadFromStream(Stream: TStream); +var + Data: TMemoryStream; + Size: Longint; +begin + Size := Stream.Size - Stream.Position; + Data := TMemoryStream.Create; + try + Data.SetSize(Size); + Stream.ReadBuffer(Data.Memory^, Size); + if Size > 0 then + begin + Data.Position := 0; + ReadAniStream(Data); + end; + finally + Data.Free; + end; +end; + +procedure TJvAnimatedCursorImage.SaveToStream(Stream: TStream); +begin + if IconCount = 0 then + raise EInvalidGraphicOperation.CreateRes(@SInvalidImage); + WriteAniStream(Stream); +end; + +procedure TJvAnimatedCursorImage.LoadFromFile(const FileName: string); +var + Stream: TStream; +begin + Stream := TFileStream.Create(FileName, fmOpenRead + fmShareDenyNone); + try + try + LoadFromStream(Stream); + except + NewImage; + raise; + end; + finally + Stream.Free; + end; +end; + +procedure TJvAnimatedCursorImage.Draw(ACanvas: TCanvas; const ARect: TRect); +begin + if FIcons.Count > 0 then + if (Frames[Index] <> nil) and not Frames[Index].Icon.Empty then + DrawRealSizeIcon(ACanvas, Frames[Index].Icon, ARect.Left, ARect.Top); +end; + +procedure TJvAnimatedCursorImage.AssignToBitmap(Bitmap: TBitmap; BackColor: TColor; + DecreaseColors, Vertical: Boolean); +var + I: Integer; + Temp: TBitmap; + Idx: Integer; + R: TRect; +begin + Temp := TBitmap.Create; + try + if FIcons.Count > 0 then + begin + with Temp do + begin + Monochrome := False; + Canvas.Brush.Color := BackColor; + if Vertical then + begin + Width := Icons[0].Width; + Height := Icons[0].Height * FrameCount; + end + else + begin + Width := Icons[0].Width * FrameCount; + Height := Icons[0].Height; + end; + Canvas.FillRect(Bounds(0, 0, Width, Height)); + Idx := Index; + for I := 0 to FrameCount - 1 do + begin + Index := I; + R := Rect(Frames[I].Icon.Width * I * Ord(not Vertical), + Frames[I].Icon.Height * I * Ord(Vertical), 0, 0); + Draw(Canvas, R); + end; + Index := Idx; + end; + if DecreaseColors then + DecreaseBMPColors(Temp, Max(OriginalColors, 16)); + end; + Bitmap.Assign(Temp); + finally + Temp.Free; + end; +end; + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + +end. + Property changes on: trunk/jvcl/archive/JvAniFile.pas ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:mergeinfo + Added: svn:eol-style + native Modified: trunk/jvcl/run/JvAni.pas =================================================================== --- trunk/jvcl/run/JvAni.pas 2008-10-26 12:47:05 UTC (rev 11992) +++ trunk/jvcl/run/JvAni.pas 2008-10-26 12:56:38 UTC (rev 11993) @@ -813,7 +813,7 @@ RiffReadError; end; -procedure SetFOURCC(var FourCC: TJvFourCC; ID: string); +procedure SetFOURCC(var FourCC: TJvFourCC; const ID: AnsiString); begin FourCC[0] := ID[1]; FourCC[1] := ID[2]; @@ -821,7 +821,7 @@ FourCC[3] := ID[4]; end; -procedure StartWriteChunk(Stream: TStream; var Tag: TJvAniTag; ID: string); +procedure StartWriteChunk(Stream: TStream; var Tag: TJvAniTag; const ID: AnsiString); begin SetFOURCC(Tag.ckID, ID); Tag.ckSize := Stream.Position; Deleted: trunk/jvcl/run/JvAniFile.pas =================================================================== --- trunk/jvcl/run/JvAniFile.pas 2008-10-26 12:47:05 UTC (rev 11992) +++ trunk/jvcl/run/JvAniFile.pas 2008-10-26 12:56:38 UTC (rev 11993) @@ -1,840 +0,0 @@ -{----------------------------------------------------------------------------- -The contents of this file are subject to the Mozilla Public License -Version 1.1 (the "License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at -http://www.mozilla.org/MPL/MPL-1.1.html - -Software distributed under the License is distributed on an "AS IS" basis, -WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for -the specific language governing rights and limitations under the License. - -The Original Code is: JvAniFile.PAS, released on 2002-07-04. - -The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev -Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev -Copyright (c) 2001,2002 SGB Software -All Rights Reserved. - -You may retrieve the latest version of this file at the Project JEDI's JVCL home page, -located at http://jvcl.sourceforge.net - -Known Issues: ------------------------------------------------------------------------------} -// $Id$ - -unit JvAniFile; - -{$I jvcl.inc} - -interface - -uses - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - Classes, - {$IFDEF HAS_UNIT_RTLCONSTS} - RTLConsts, - {$ENDIF HAS_UNIT_RTLCONSTS} - Windows, Graphics, - JvTypes; - -type - TJvIconFrame = class(TPersistent) - private - FIcon: TIcon; - FIsIcon: Boolean; - FHotSpot: TPoint; - public - destructor Destroy; override; - procedure Assign(Source: TPersistent); override; - property Icon: TIcon read FIcon; - property HotSpot: TPoint read FHotSpot; - end; - - TJvAnimatedCursorImage = class(TPersistent) - private - FHeader: TJvAniHeader; - FTitle: string; - FCreator: string; - FIcons: TList; - FOriginalColors: Word; - FIndex: Integer; - FRates: array of Longint; - FSequence: array of Longint; - FFrameCount: Integer; - procedure NewImage; - procedure RiffReadError; - function ReadCreateIcon(Stream: TStream; ASize: Longint; - var HotSpot: TPoint; var IsIcon: Boolean): TIcon; - function GetIconCount: Integer; - function GetFrameCount: Integer; - function GetIcons(Index: Integer): TIcon; - function GetFrames(Index: Integer): TJvIconFrame; - function GetRates(Index: Integer): Longint; - procedure SetIndex(Value: Integer); - procedure ReadAniStream(Stream: TStream); - procedure WriteAniStream(Stream: TStream); - public - constructor Create; - destructor Destroy; override; - procedure Assign(Source: TPersistent); override; - procedure AssignTo(Dest: TPersistent); override; - procedure Draw(ACanvas: TCanvas; const ARect: TRect); - procedure Clear; - procedure LoadFromStream(Stream: TStream); virtual; - procedure SaveToStream(Stream: TStream); virtual; - procedure LoadFromFile(const FileName: string); virtual; - procedure AssignToBitmap(Bitmap: TBitmap; BackColor: TColor; - DecreaseColors, Vertical: Boolean); // DecreaseBMPColors does nothing under VisualCLX - property IconCount: Integer read GetIconCount; - property FrameCount: Integer read GetFrameCount; - property Icons[Index: Integer]: TIcon read GetIcons; - property Frames[Index: Integer]: TJvIconFrame read GetFrames; - property Rates[Index: Integer]: Longint read GetRates; - property Title: string read FTitle write FTitle; - property Creator: string read FCreator write FCreator; - property OriginalColors: Word read FOriginalColors; - property Header: TJvAniHeader read FHeader; - property Index: Integer read FIndex write SetIndex; - end; - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JVCL\run' - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - SysUtils, - Consts, Math, - JvJVCLUtils, JvJCLUtils, JvIconList, JvConsts, JvResources; - -function PadUp(Value: Longint): Longint; -begin - Result := Value + (Value mod 2); // Up Value to nearest word boundary -end; - -procedure DecreaseBMPColors(Bmp: TBitmap; Colors: Integer); - -var - Stream: TStream; -begin - if (Bmp <> nil) and (Colors > 0) then - begin - Stream := BitmapToMemory(Bmp, Colors); - try - Bmp.LoadFromStream(Stream); - finally - Stream.Free; - end; - end; - - -end; - -function GetDInColors(BitCount: Word): Integer; -begin - case BitCount of - 1, 4, 8: - Result := 1 shl BitCount; - else - Result := 0; - end; -end; - -{ ReadTag, ReadChunk, SkipChunk. Some handy functions for reading RIFF files. } - -function ReadTag(S: TStream; var Tag: TJvAniTag): Boolean; -begin - Tag.ckID := #0#0#0#0; - Tag.ckSize := 0; - Result := S.Read(Tag, SizeOf(TJvAniTag)) = SizeOf(TJvAniTag); -end; - -function ReadChunk(S: TStream; const Tag: TJvAniTag; var Data): Boolean; -begin - Result := S.Read(Data, Tag.ckSize) = Tag.ckSize; - if Result then - Result := S.Seek(Tag.ckSize mod 2, soFromCurrent) <> -1; -end; - -function ReadChunkN(S: TStream; const Tag: TJvAniTag; var Data; - cbMax: Longint): Boolean; -var - cbRead: Longint; -begin - FillChar(Data, cbMax, #0); - cbRead := Tag.ckSize; - if cbMax < cbRead then - cbRead := cbMax; - Result := S.Read(Data, cbRead) = cbRead; - if Result then - begin - cbRead := PadUp(Tag.ckSize) - cbRead; - Result := S.Seek(cbRead, soFromCurrent) <> -1; - end; -end; - -function SkipChunk(S: TStream; const Tag: TJvAniTag): Boolean; -begin - // Round pTag^.ckSize up to nearest word boundary to maintain alignment - Result := S.Seek(PadUp(Tag.ckSize), soFromCurrent) <> -1; -end; - -{ Icon and cursor types } - -const - RC3_STOCKICON = 0; - RC3_ICON = 1; - RC3_CURSOR = 2; - -type - PCursorOrIcon = ^TCursorOrIcon; - TCursorOrIcon = packed record - Reserved: Word; - wType: Word; - Count: Word; - end; - - PIconRec = ^TIconRec; - TIconRec = packed record - Width: Byte; - Height: Byte; - Colors: Word; - xHotspot: Word; - yHotspot: Word; - DIBSize: Longint; - DIBOffset: Longint; - end; - -//=== { TJvIconFrame } ======================================================= - -destructor TJvIconFrame.Destroy; -begin - FIcon.Free; - inherited Destroy; -end; - -procedure TJvIconFrame.Assign(Source: TPersistent); -begin - if Source is TJvIconFrame then - with Source as TJvIconFrame do - begin - if Self.FIcon = nil then - Self.FIcon := TIcon.Create; - Self.FIcon.Assign(Icon); - Self.FIsIcon := FIsIcon; - Self.FHotSpot := HotSpot; - end - else - inherited Assign(Source); -end; - -//=== { TJvAnimatedCursorImage } ============================================= - -constructor TJvAnimatedCursorImage.Create; -begin - inherited Create; - FIcons := TList.Create; - FIndex := 0; -end; - -destructor TJvAnimatedCursorImage.Destroy; -begin - NewImage; - FIcons.Free; - inherited Destroy; -end; - -procedure TJvAnimatedCursorImage.Clear; -begin - NewImage; -end; - -procedure TJvAnimatedCursorImage.NewImage; -var - I: Integer; -begin - for I := 0 to FIcons.Count - 1 do - TJvIconFrame(FIcons[I]).Free; - FIcons.Clear; - SetLength(FRates, 0); - SetLength(FSequence, 0); - FFrameCount := 0; - FTitle := ''; - FCreator := ''; - FillChar(FHeader, SizeOf(FHeader), 0); - FOriginalColors := 0; -end; - -procedure TJvAnimatedCursorImage.RiffReadError; -begin - raise EReadError.CreateRes(@SReadError); -end; - -function TJvAnimatedCursorImage.GetIconCount: Integer; -begin - Result := FIcons.Count; -end; - -function TJvAnimatedCursorImage.GetFrameCount: Integer; -begin - Result := FFrameCount; -end; - -function TJvAnimatedCursorImage.GetIcons(Index: Integer): TIcon; -begin - if (Index >= 0) and (Index < IconCount) then - Result := TJvIconFrame(FIcons[Index]).FIcon - else - Result := nil; -end; - -function TJvAnimatedCursorImage.GetFrames(Index: Integer): TJvIconFrame; -begin - if (Index >= 0) and (Index < FrameCount) then - begin - if Index < Length(FSequence) then - Result := TJvIconFrame(FIcons[FSequence[Index]]) - else - Result := TJvIconFrame(FIcons[Index]); - end - else - Result := nil; -end; - -function TJvAnimatedCursorImage.GetRates(Index: Integer): Longint; -begin - if (Index >= 0) and (Index < Length(FRates)) then - Result := FRates[Index] - else - Result := Header.dwJIFRate; -end; - -procedure TJvAnimatedCursorImage.SetIndex(Value: Integer); -begin - if (Value >= 0) and (Value < FrameCount) then - FIndex := Value; -end; - -procedure TJvAnimatedCursorImage.Assign(Source: TPersistent); -var - I: Integer; - Frame: TJvIconFrame; -begin - if Source = nil then - Clear - else - if Source is TJvAnimatedCursorImage then - begin - NewImage; - try - with TJvAnimatedCursorImage(Source) do - begin - Move(FHeader, Self.FHeader, SizeOf(FHeader)); - Self.FTitle := Title; - Self.FCreator := Creator; - Self.FOriginalColors := FOriginalColors; - Self.FFrameCount := FrameCount; - SetLength(Self.FRates, Length(FRates)); - if Length(FRates) <> 0 then - Move(FRates[0], Self.FRates[0], Length(FRates)*SizeOf(Longint)); - SetLength(Self.FSequence, Length(FSequence)); - if Length(FSequence) <> 0 then - Move(FSequence[0], Self.FSequence[0], Length(FSequence)*SizeOf(Longint)); - for I := 0 to FIcons.Count - 1 do - begin - Frame := TJvIconFrame.Create; - try - Frame.Assign(TJvIconFrame(FIcons[I])); - Self.FIcons.Add(Frame); - except - Frame.Free; - raise; - end; - end; - end; - except - NewImage; - raise; - end; - end - else - inherited Assign(Source); -end; - -procedure TJvAnimatedCursorImage.AssignTo(Dest: TPersistent); -var - I: Integer; -begin - if Dest is TIcon then - begin - if IconCount > 0 then - Dest.Assign(Icons[Index]) - else - Dest.Assign(nil); - end - else - if Dest is TBitmap then - begin - if IconCount > 0 then - AssignToBitmap(TBitmap(Dest), TBitmap(Dest).Canvas.Brush.Color, True, False) - else - Dest.Assign(nil); - end - else - if Dest is TJvIconList then - begin - TJvIconList(Dest).BeginUpdate; - try - TJvIconList(Dest).Clear; - for I := 0 to FrameCount - 1 do - TJvIconList(Dest).Add(Frames[I].Icon); - finally - TJvIconList(Dest).EndUpdate; - end; - end - else - inherited AssignTo(Dest); -end; - -function TJvAnimatedCursorImage.ReadCreateIcon(Stream: TStream; ASize: Longint; - var HotSpot: TPoint; var IsIcon: Boolean): TIcon; -type - PIconRecArray = ^TIconRecArray; - TIconRecArray = array [0..300] of TIconRec; -var - List: PIconRecArray; - Mem: TMemoryStream; - HeaderLen, I: Integer; - BI: PBitmapInfoHeader; -begin - Result := nil; - Mem := TMemoryStream.Create; - try - Mem.SetSize(ASize); - Mem.CopyFrom(Stream, ASize); - HotSpot := Point(0, 0); - IsIcon := PCursorOrIcon(Mem.Memory)^.wType = RC3_ICON; - if PCursorOrIcon(Mem.Memory)^.wType = RC3_CURSOR then - PCursorOrIcon(Mem.Memory)^.wType := RC3_ICON; - if PCursorOrIcon(Mem.Memory)^.wType = RC3_ICON then - begin - { determinate original icon color } - HeaderLen := PCursorOrIcon(Mem.Memory)^.Count * SizeOf(TIconRec); - GetMem(List, HeaderLen); - try - Mem.Position := SizeOf(TCursorOrIcon); - Mem.Read(List^, HeaderLen); - for I := 0 to PCursorOrIcon(Mem.Memory)^.Count - 1 do - with List^[I] do - begin - GetMem(BI, DIBSize); - try - Mem.Seek(DIBOffset, soFromBeginning); - Mem.Read(BI^, DIBSize); - FOriginalColors := Max(GetDInColors(BI^.biBitCount), FOriginalColors); - HotSpot := Point(xHotspot, yHotspot); - finally - FreeMem(BI, DIBSize); - end; - end; - finally - FreeMem(List, HeaderLen); - end; - { return to start of stream } - Mem.Position := 0; - Result := TIcon.Create; - try - Result.LoadFromStream(Mem); - if IsIcon then - HotSpot := Point(Result.Width div 2, Result.Height div 2); - except - Result.Free; - Result := nil; - end; - end; - finally - Mem.Free; - end; -end; - -{ Loads an animated cursor from a RIFF file. The RIFF file format for - animated cursors looks like this: - -"RIFF" [Length of File] - "ACON" - "LIST" [Length of List] - "INAM" [Length of Title] [Data] - "IART" [Length of Author] [Data] - "fram" - "icon" [Length of Icon][Data] ; 1st in list - ... - "icon" [Length of Icon] [Data] ; Last in list (1 to cFrames) - "anih" [Length of ANI header (36 bytes)] [Data] ; (see ANI Header TypeDef) - "rate" [Length of rate block] [Data] ; ea. rate is a long (length is 1 to cSteps) - "seq " [Length of sequence block] [Data] ; ea. seq is a long (length is 1 to cSteps) -} - -procedure TJvAnimatedCursorImage.ReadAniStream(Stream: TStream); -var - I: Integer; - Tag: TJvAniTag; - Frame: TJvIconFrame; - cbChunk, cbRead: Longint; - Icon: TIcon; - IsIcon: Boolean; - HotSpot: TPoint; - Buffer: array [0..255] of Char; -begin - { Make sure it's a RIFF ANI file } - if not ReadTag(Stream, Tag) or (Tag.ckID <> FOURCC_RIFF) then - RiffReadError; - if (Stream.Read(Tag.ckID, SizeOf(Tag.ckID)) < SizeOf(Tag.ckID)) or - (Tag.ckID <> FOURCC_ACON) then - RiffReadError; - NewImage; - { look for 'anih', 'rate', 'seq ', and 'icon' chunks } - while ReadTag(Stream, Tag) do - begin - if Tag.ckID = FOURCC_anih then - begin - if not ReadChunk(Stream, Tag, FHeader) then - Break; - if ((FHeader.dwFlags and AF_ICON) <> AF_ICON) or - (FHeader.dwFrames = 0) then - RiffReadError; - end - else - if Tag.ckID = FOURCC_rate then - begin - { If we find a rate chunk, read it into its preallocated space } - SetLength(FRates, Tag.ckSize div SizeOf(Longint)); - if not ReadChunkN(Stream, Tag, FRates[0], Tag.ckSize) then - Break; - end - else - if Tag.ckID = FOURCC_seq then - begin - { If we find a seq chunk, read it into its preallocated space } - FFrameCount := Tag.ckSize div SizeOf(Longint); - SetLength(FSequence, FFrameCount); - if not ReadChunkN(Stream, Tag, FSequence[0], Tag.ckSize) then - Break; - end - else - if Tag.ckID = FOURCC_LIST then - begin - cbChunk := PadUp(Tag.ckSize); - { See if this list is the 'fram' list of icon chunks } - cbRead := Stream.Read(Tag.ckID, SizeOf(Tag.ckID)); - if cbRead < SizeOf(Tag.ckID) then - Break; - Dec(cbChunk, cbRead); - if Tag.ckID = FOURCC_fram then - begin - while cbChunk >= SizeOf(Tag) do - begin - if not ReadTag(Stream, Tag) then - Break; - Dec(cbChunk, SizeOf(Tag)); - if Tag.ckID = FOURCC_icon then - begin - { Ok, load the icon/cursor bits } - Icon := ReadCreateIcon(Stream, Tag.ckSize, HotSpot, IsIcon); - if Icon = nil then - Break; - Frame := TJvIconFrame.Create; - Frame.FIcon := Icon; - Frame.FHotSpot := HotSpot; - Frame.FIsIcon := IsIcon; - FIcons.Add(Frame); - end - else - { Unknown chunk in fram list, just ignore it } - SkipChunk(Stream, Tag); - Dec(cbChunk, PadUp(Tag.ckSize)); - end; - end - else - if Tag.ckID = FOURCC_INFO then - begin - { now look for INAM and IART chunks } - while cbChunk >= SizeOf(Tag) do - begin - if not ReadTag(Stream, Tag) then - Break; - Dec(cbChunk, SizeOf(Tag)); - if Tag.ckID = FOURCC_INAM then - begin - if (cbChunk < Tag.ckSize) or - not ReadChunkN(Stream, Tag, Buffer[0], SizeOf(Buffer)-1) then - Break; - Dec(cbChunk, PadUp(Tag.ckSize)); - FTitle := Buffer; - end - else - if Tag.ckID = FOURCC_IART then - begin - if (cbChunk < Tag.ckSize) or - not ReadChunkN(Stream, Tag, Buffer[0], SizeOf(Buffer)-1) then - Break; - Dec(cbChunk, PadUp(Tag.ckSize)); - FCreator := Buffer; - end - else - begin - if not SkipChunk(Stream, Tag) then - Break; - Dec(cbChunk, PadUp(Tag.ckSize)); - end; - end; - end - else - begin - { Not the fram list or the INFO list. Skip the rest of this - chunk. (Do not forget that we have already skipped one dword) } - Tag.ckSize := cbChunk; - SkipChunk(Stream, Tag); - end; - end - else - begin - { We are not interested in this chunk, skip it. } - if not SkipChunk(Stream, Tag) then - Break; - end; - end; - { Update the frame count in case we coalesced some frames while reading - in the file. } - for I := FIcons.Count - 1 downto 0 do - begin - if TJvIconFrame(FIcons[I]).FIcon = nil then - begin - TJvIconFrame(FIcons[I]).Free; - FIcons.Delete(I); - end; - end; - if FrameCount = 0 then - FFrameCount := FIcons.Count; - FHeader.dwFrames := FIcons.Count; - if FHeader.dwFrames = 0 then - RiffReadError; -end; - -procedure SetFOURCC(var FourCC: TJvFourCC; ID: string); -begin - FourCC[0] := ID[1]; - FourCC[1] := ID[2]; - FourCC[2] := ID[3]; - FourCC[3] := ID[4]; -end; - -procedure StartWriteChunk(Stream: TStream; var Tag: TJvAniTag; ID: string); -begin - SetFOURCC(Tag.ckID, ID); - Tag.ckSize := Stream.Position; - Stream.Write(Tag, SizeOf(Tag)); -end; - -procedure EndWriteChunk(Stream: TStream; var Tag: TJvAniTag; AddSize: Integer); -var - Pos: Int64; - B: Byte; -begin - Pos := Stream.Position; - Tag.ckSize := Pos - Tag.ckSize; - Stream.Seek(-Tag.ckSize, soFromCurrent); - Dec(Tag.ckSize, SizeOf(TJvAniTag)); - Inc(Tag.ckSize, AddSize); - Stream.Write(Tag, SizeOf(Tag)); - Stream.Seek(Pos, soFromBeginning); - if Odd(Tag.ckSize) then - begin - B := 0; - Stream.Write(B, 1); - end; -end; - -procedure TJvAnimatedCursorImage.WriteAniStream(Stream: TStream); -var - I: Integer; - MemStream: TMemoryStream; - TagRIFF, TagLIST, Tag: TJvAniTag; - ID: TJvFourCC; -begin - MemStream := TMemoryStream.Create; - try - StartWriteChunk(MemStream, TagRIFF, FOURCC_RIFF); - - SetFOURCC(ID, FOURCC_ACON); - MemStream.Write(ID, SizeOf(TJvFourCC)); - - if (Title <> '') or (Creator <> '') then - begin - StartWriteChunk(MemStream, TagLIST, FOURCC_LIST); - SetFOURCC(ID, FOURCC_INFO); - MemStream.Write(ID, SizeOf(TJvFourCC)); - if Title <> '' then - begin - StartWriteChunk(MemStream, Tag, FOURCC_INAM); - MemStream.Write(PChar(Title)^, Length(Title)+1); - EndWriteChunk(MemStream, Tag, 0); - end; - if Creator <> '' then - begin - StartWriteChunk(MemStream, Tag, FOURCC_IART); - MemStream.Write(PChar(Creator)^, Length(Creator)+1); - EndWriteChunk(MemStream, Tag, 0); - end; - EndWriteChunk(MemStream, TagLIST, 0); - end; - StartWriteChunk(MemStream, Tag, FOURCC_anih); - FHeader.dwFrames := IconCount; - MemStream.Write(FHeader, SizeOf(TJvAniHeader)); - EndWriteChunk(MemStream, Tag, 0); - if Length(FRates) <> 0 then - begin - StartWriteChunk(MemStream, Tag, FOURCC_rate); - MemStream.Write(FRates, Length(FRates)*SizeOf(Longint)); - EndWriteChunk(MemStream, Tag, 0); - end; - if Length(FSequence) <> 0 then - begin - StartWriteChunk(MemStream, Tag, FOURCC_seq); - MemStream.Write(FSequence[0], Length(FSequence)*SizeOf(Longint)); - EndWriteChunk(MemStream, Tag, 0); - end; - - StartWriteChunk(MemStream, TagLIST, FOURCC_LIST); - SetFOURCC(ID, FOURCC_fram); - MemStream.Write(ID, SizeOf(TJvFourCC)); - for I := 0 to IconCount - 1 do - begin - StartWriteChunk(MemStream, Tag, FOURCC_icon); - Icons[I].SaveToStream(MemStream); - EndWriteChunk(MemStream, Tag, 0); - end; - EndWriteChunk(MemStream, TagLIST, 0); - - EndWriteChunk(MemStream, TagRIFF, SizeOf(TJvAniTag)); - Stream.CopyFrom(MemStream, 0); - finally - MemStream.Free; - end; -end; - -procedure TJvAnimatedCursorImage.LoadFromStream(Stream: TStream); -var - Data: TMemoryStream; - Size: Longint; -begin - Size := Stream.Size - Stream.Position; - Data := TMemoryStream.Create; - try - Data.SetSize(Size); - Stream.ReadBuffer(Data.Memory^, Size); - if Size > 0 then - begin - Data.Position := 0; - ReadAniStream(Data); - end; - finally - Data.Free; - end; -end; - -procedure TJvAnimatedCursorImage.SaveToStream(Stream: TStream); -begin - if IconCount = 0 then - raise EInvalidGraphicOperation.CreateRes(@SInvalidImage); - WriteAniStream(Stream); -end; - -procedure TJvAnimatedCursorImage.LoadFromFile(const FileName: string); -var - Stream: TStream; -begin - Stream := TFileStream.Create(FileName, fmOpenRead + fmShareDenyNone); - try - try - LoadFromStream(Stream); - except - NewImage; - raise; - end; - finally - Stream.Free; - end; -end; - -procedure TJvAnimatedCursorImage.Draw(ACanvas: TCanvas; const ARect: TRect); -begin - if FIcons.Count > 0 then - if (Frames[Index] <> nil) and not Frames[Index].Icon.Empty then - DrawRealSizeIcon(ACanvas, Frames[Index].Icon, ARect.Left, ARect.Top); -end; - -procedure TJvAnimatedCursorImage.AssignToBitmap(Bitmap: TBitmap; BackColor: TColor; - DecreaseColors, Vertical: Boolean); -var - I: Integer; - Temp: TBitmap; - Idx: Integer; - R: TRect; -begin - Temp := TBitmap.Create; - try - if FIcons.Count > 0 then - begin - with Temp do - begin - Monochrome := False; - Canvas.Brush.Color := BackColor; - if Vertical then - begin - Width := Icons[0].Width; - Height := Icons[0].Height * FrameCount; - end - else - begin - Width := Icons[0].Width * FrameCount; - Height := Icons[0].Height; - end; - Canvas.FillRect(Bounds(0, 0, Width, Height)); - Idx := Index; - for I := 0 to FrameCount - 1 do - begin - Index := I; - R := Rect(Frames[I].Icon.Width * I * Ord(not Vertical), - Frames[I].Icon.Height * I * Ord(Vertical), 0, 0); - Draw(Canvas, R); - end; - Index := Idx; - end; - if DecreaseColors then - DecreaseBMPColors(Temp, Max(OriginalColors, 16)); - end; - Bitmap.Assign(Temp); - finally - Temp.Free; - end; -end; - -{$IFDEF UNITVERSIONING} -initialization - RegisterUnitVersion(HInstance, UnitVersioning); - -finalization - UnregisterUnitVersion(HInstance); -{$ENDIF UNITVERSIONING} - -end. - Modified: trunk/jvcl/run/JvTypes.pas =================================================================== --- trunk/jvcl/run/JvTypes.pas 2008-10-26 12:47:05 UTC (rev 11992) +++ trunk/jvcl/run/JvTypes.pas 2008-10-26 12:56:38 UTC (rev 11993) @@ -351,7 +351,7 @@ (tkOneShot, tkEachSecond, tkEachMinute, tkEachHour, tkEachDay, tkEachMonth, tkEachYear); // End of Bianconi - TJvFourCC = array [0..3] of Char; + TJvFourCC = array [0..3] of AnsiChar; PJvAniTag = ^TJvAniTag; TJvAniTag = packed record ckID: TJvFourCC; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-01 23:42:32
|
Revision: 12014 http://jvcl.svn.sourceforge.net/jvcl/?rev=12014&view=rev Author: ahuser Date: 2008-11-01 23:42:24 +0000 (Sat, 01 Nov 2008) Log Message: ----------- Faster DotNetHighlighting drawing Modified Paths: -------------- trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas trunk/jvcl/run/JvExControls.pas Modified: trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas =================================================================== --- trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas 2008-11-01 23:10:39 UTC (rev 12013) +++ trunk/jvcl/devtools/JvExVCL/src/JvExControls.pas 2008-11-01 23:42:24 UTC (rev 12014) @@ -86,7 +86,8 @@ end; procedure SetDotNetFrameColors(FocusedColor, UnfocusedColor: TColor); -procedure DrawDotNetControl(Control: TWinControl; AColor: TColor; InControl: Boolean); +procedure DrawDotNetControl(Control: TWinControl; AColor: TColor; InControl: Boolean); overload; +procedure DrawDotNetControl(DC: HDC; R: TRect; AColor: TColor; UseFocusedColor: Boolean); overload; procedure HandleDotNetHighlighting(Control: TWinControl; const Msg: TMessage; MouseOver: Boolean; Color: TColor); @@ -148,32 +149,43 @@ var DC: HDC; R: TRect; - Canvas: TCanvas; begin + GetWindowRect(Control.Handle, R); + OffsetRect(R, -R.Left, -R.Top); + DC := GetWindowDC(Control.Handle); try - GetWindowRect(Control.Handle, R); - OffsetRect(R, -R.Left, -R.Top); - Canvas := TCanvas.Create; - with Canvas do - try - Handle := DC; - Brush.Color := InternalUnfocusedColor; - if Control.Focused or InControl then - Brush.Color := InternalFocusedColor; - FrameRect(R); - InflateRect(R, -1, -1); - if not (Control.Focused or InControl) then - Brush.Color := AColor; - FrameRect(R); - finally - Free; - end; + DrawDotNetControl(DC, R, AColor, Control.Focused or InControl); finally ReleaseDC(Control.Handle, DC); end; end; +procedure DrawDotNetControl(DC: HDC; R: TRect; AColor: TColor; UseFocusedColor: Boolean); +var + Brush: HBRUSH; +begin + Brush := 0; + try + if UseFocusedColor then + Brush := CreateSolidBrush(ColorToRGB(InternalFocusedColor)) + else + Brush := CreateSolidBrush(ColorToRGB(InternalUnfocusedColor)); + + FrameRect(DC, R, Brush); + InflateRect(R, -1, -1); + if not UseFocusedColor then + begin + DeleteObject(Brush); + Brush := CreateSolidBrush(ColorToRGB(AColor)); + end; + FrameRect(DC, R, Brush); + finally + if Brush <> 0 then + DeleteObject(Brush); + end; +end; + procedure HandleDotNetHighlighting(Control: TWinControl; const Msg: TMessage; MouseOver: Boolean; Color: TColor); var Modified: trunk/jvcl/run/JvExControls.pas =================================================================== --- trunk/jvcl/run/JvExControls.pas 2008-11-01 23:10:39 UTC (rev 12013) +++ trunk/jvcl/run/JvExControls.pas 2008-11-01 23:42:24 UTC (rev 12014) @@ -92,7 +92,8 @@ end; procedure SetDotNetFrameColors(FocusedColor, UnfocusedColor: TColor); -procedure DrawDotNetControl(Control: TWinControl; AColor: TColor; InControl: Boolean); +procedure DrawDotNetControl(Control: TWinControl; AColor: TColor; InControl: Boolean); overload; +procedure DrawDotNetControl(DC: HDC; R: TRect; AColor: TColor; UseFocusedColor: Boolean); overload; procedure HandleDotNetHighlighting(Control: TWinControl; const Msg: TMessage; MouseOver: Boolean; Color: TColor); @@ -463,32 +464,43 @@ var DC: HDC; R: TRect; - Canvas: TCanvas; begin + GetWindowRect(Control.Handle, R); + OffsetRect(R, -R.Left, -R.Top); + DC := GetWindowDC(Control.Handle); try - GetWindowRect(Control.Handle, R); - OffsetRect(R, -R.Left, -R.Top); - Canvas := TCanvas.Create; - with Canvas do - try - Handle := DC; - Brush.Color := InternalUnfocusedColor; - if Control.Focused or InControl then - Brush.Color := InternalFocusedColor; - FrameRect(R); - InflateRect(R, -1, -1); - if not (Control.Focused or InControl) then - Brush.Color := AColor; - FrameRect(R); - finally - Free; - end; + DrawDotNetControl(DC, R, AColor, Control.Focused or InControl); finally ReleaseDC(Control.Handle, DC); end; end; +procedure DrawDotNetControl(DC: HDC; R: TRect; AColor: TColor; UseFocusedColor: Boolean); +var + Brush: HBRUSH; +begin + Brush := 0; + try + if UseFocusedColor then + Brush := CreateSolidBrush(ColorToRGB(InternalFocusedColor)) + else + Brush := CreateSolidBrush(ColorToRGB(InternalUnfocusedColor)); + + FrameRect(DC, R, Brush); + InflateRect(R, -1, -1); + if not UseFocusedColor then + begin + DeleteObject(Brush); + Brush := CreateSolidBrush(ColorToRGB(AColor)); + end; + FrameRect(DC, R, Brush); + finally + if Brush <> 0 then + DeleteObject(Brush); + end; +end; + procedure HandleDotNetHighlighting(Control: TWinControl; const Msg: TMessage; MouseOver: Boolean; Color: TColor); var This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-02 18:27:26
|
Revision: 12019 http://jvcl.svn.sourceforge.net/jvcl/?rev=12019&view=rev Author: ahuser Date: 2008-11-02 18:27:17 +0000 (Sun, 02 Nov 2008) Log Message: ----------- Mantis #4521: TJvHLEditor is not performing Global Copy/Paste New standard edit actions that work for TCustomEdit and TJvCustomEditorBase Modified Paths: -------------- trunk/jvcl/design/JvCustomReg.pas trunk/jvcl/design/JvDsgnConsts.pas trunk/jvcl/run/JvEditor.pas trunk/jvcl/run/JvEditorCommon.pas Modified: trunk/jvcl/design/JvCustomReg.pas =================================================================== --- trunk/jvcl/design/JvCustomReg.pas 2008-11-02 16:37:30 UTC (rev 12018) +++ trunk/jvcl/design/JvCustomReg.pas 2008-11-02 18:27:17 UTC (rev 12019) @@ -34,7 +34,10 @@ implementation uses - Classes, ImgList, + Windows, SysUtils, Classes, ImgList, ActnList, + {$IFDEF COMPILER5} + Forms, + {$ENDIF COMPILER5} {$IFDEF COMPILER6_UP} DesignEditors, DesignIntf, {$ELSE} @@ -61,6 +64,113 @@ {$R JvCustomReg.dcr} +type + TCustomActionClass = class of TCustomAction; + + { TJvStdEditorActionsRes is used to copy the VCL's standard edit actions + properties to the JVCL standard edit actions } + TJvStdEditorActionsRes = class(TComponent) + private + FStandardActions: TComponent; + FActionList: TActionList; + public + constructor Create(AOwner: TComponent); override; + + function CreateAction(AActionClass: TCustomActionClass; + const AStandardActionClassName: string): TCustomAction; + end; + +function FindComponentByClassName(AOwner: TComponent; const AClassName: string): TComponent; +var + I: Integer; +begin + for I := 0 to AOwner.ComponentCount - 1 do + begin + Result := AOwner.Components[I]; + if AnsiSameText(Result.ClassName, AClassName) then + Exit; + end; + Result := nil; +end; + +function FindComponentByClass(AOwner: TComponent; AComponentClass: TComponentClass): TComponent; +var + I: Integer; +begin + for I := 0 to AOwner.ComponentCount - 1 do + begin + Result := AOwner.Components[I]; + if Result.ClassType = AComponentClass then + Exit; + end; + Result := nil; +end; + +{ Find the TStandardActions class (dclstdXX.bpl) } +function ModuleEnumProc(HInstance: Integer; Data: Pointer): Boolean; +var + StandardActionsClass: TComponentClass; +begin + StandardActionsClass := TComponentClass(GetProcAddress(HMODULE(HInstance), '@Actnres@TStandardActions@')); + if StandardActionsClass <> nil then + begin + TJvStdEditorActionsRes(Data).FStandardActions := StandardActionsClass.Create(Data); + Result := False; + end + else + Result := True; +end; + +constructor TJvStdEditorActionsRes.Create(AOwner: TComponent); +var + StdActionList: TActionList; +begin + inherited Create(AOwner); + EnumModules(ModuleEnumProc, Self); + if FStandardActions <> nil then + begin + StdActionList := TActionList(FindComponentByClass(FStandardActions, TActionList)); + if StdActionList <> nil then + begin + FActionList := TActionList.Create(Self); + FActionList.Images := StdActionList.Images; + + { Create the JVCL standard edit actions } + CreateAction(TJvEditCut, 'TEditCut'); + CreateAction(TJvEditCopy, 'TEditCopy'); + CreateAction(TJvEditPaste, 'TEditPaste'); + CreateAction(TJvEditSelectAll, 'TEditSelectAll'); + CreateAction(TJvEditUndo, 'TEditUndo'); + CreateAction(TJvEditDelete, 'TEditDelete'); + end; + end; +end; + +function TJvStdEditorActionsRes.CreateAction(AActionClass: TCustomActionClass; + const AStandardActionClassName: string): TCustomAction; +var + StdAction: TCustomAction; +begin + Result := AActionClass.Create(Self); + Result.ActionList := FActionList; + + { Copy the localized properties } + StdAction := TCustomAction(FindComponentByClassName(FStandardActions, AStandardActionClassName)); + if TObject(StdAction) is TCustomAction then + begin + Result.Caption := StdAction.Caption; + //Result.Category := StdAction.Category; is overwritten by the IDE + Result.Hint := StdAction.Hint; + Result.Visible := StdAction.Visible; + Result.Enabled := StdAction.Enabled; + Result.ShortCut := StdAction.ShortCut; + Result.Checked := StdAction.Checked; + Result.HelpContext := StdAction.HelpContext; + Result.ImageIndex := StdAction.ImageIndex; + end; +end; + + procedure Register; const cActivePageIndex = 'ActivePageIndex'; @@ -84,6 +194,8 @@ RegisterComponents(RsPaletteNonVisual, [TJvScheduledEvents]); RegisterComponents(RsPaletteEdit, [TJvEditor, TJvHLEditor, TJvWideEditor, TJvWideHLEditor, TJvHLEdPropDlg]); + RegisterActions(RsJVCLEditActionsCategory, [TJvEditCut, TJvEditCopy, TJvEditPaste, + TJvEditSelectAll, TJvEditUndo, TJvEditDelete], TJvStdEditorActionsRes); RegisterComponents(RsPaletteImageAnimator, [TJvThumbView, TJvThumbnail, TJvThumbImage]); RegisterComponents(RsPaletteVisual, [TJvImagesViewer, TJvImageListViewer, Modified: trunk/jvcl/design/JvDsgnConsts.pas =================================================================== --- trunk/jvcl/design/JvDsgnConsts.pas 2008-11-02 16:37:30 UTC (rev 12018) +++ trunk/jvcl/design/JvDsgnConsts.pas 2008-11-02 18:27:17 UTC (rev 12019) @@ -49,6 +49,7 @@ RsNextPage = 'Next Page'; RsPreviousPage = 'Previous Page'; RsJVCLActionsCategory = 'JVCL'; + RsJVCLEditActionsCategory = 'JVCL Edit'; RsJVCLControlActionsCategory = 'JVCL-Control'; RsJVCLDBActionsCategory = 'JVCL-DB'; RsPropertyEditors = '\Property Editors'; Modified: trunk/jvcl/run/JvEditor.pas =================================================================== --- trunk/jvcl/run/JvEditor.pas 2008-11-02 16:37:30 UTC (rev 12018) +++ trunk/jvcl/run/JvEditor.pas 2008-11-02 18:27:17 UTC (rev 12019) @@ -24,7 +24,7 @@ located at http://jvcl.sourceforge.net component : TJvEditor -description : 'Delphi IDE'-like Editor (ansi) +description : 'Delphi IDE'-like Editor Known Issues: Some russian comments were translated to english; these comments are marked @@ -1600,7 +1600,7 @@ var S: string; begin - S := GetSelText; // convert to ANSI + S := GetSelText; Clipboard.SetTextBuf(PChar(S)); SetClipboardBlockFormat(SelBlockFormat); end; Modified: trunk/jvcl/run/JvEditorCommon.pas =================================================================== --- trunk/jvcl/run/JvEditorCommon.pas 2008-11-02 16:37:30 UTC (rev 12018) +++ trunk/jvcl/run/JvEditorCommon.pas 2008-11-02 18:27:17 UTC (rev 12019) @@ -192,7 +192,7 @@ 2004-01-25: file split into JvEditor and JvEditorCommon - Further history: see CVS + Further history: see CVS/SVN } unit JvEditorCommon; @@ -206,7 +206,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} Windows, Messages, ShellAPI, SysUtils, Classes, Contnrs, Graphics, Controls, - Forms, StdCtrls, ExtCtrls, Menus, + Forms, StdCtrls, ExtCtrls, Menus, ActnList, JvConsts, JvFixedEditPopup, JvUnicodeCanvas, JvComponent, JvExControls; const @@ -1234,6 +1234,62 @@ property Highlighter: TJvHighlighter read GetHighlighter write SetHighlighter; end; + { Standard Editor actions } + TJvEditAction = class(TAction) + private + FControl: TWinControl; + procedure SetControl(Value: TWinControl); + protected + function SupportsControl(Value: TWinControl): Boolean; virtual; + function GetEditorControl(Target: TObject): TJvCustomEditorBase; virtual; + function GetEditControl(Target: TObject): TCustomEdit; virtual; + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + public + destructor Destroy; override; + function HandlesTarget(Target: TObject): Boolean; override; + procedure UpdateTarget(Target: TObject); override; + property Control: TWinControl read FControl write SetControl; + end; + + TJvEditCut = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditCopy = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditPaste = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditSelectAll = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditUndo = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditDelete = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + { UpdateTarget is required because TJvEditAction.UpdateTarget specifically + checks to see if the action is TEditCut or TJvEditCopy } + procedure UpdateTarget(Target: TObject); override; + end; + + const { Editor commands } { When add new commands, please add them into JvInterpreter_JvEditor.pas unit also ! } @@ -6461,6 +6517,186 @@ inherited Assign(Source); end; +//=== { TJvEditAction } ========================================================== + +type + {$IFDEF COMPILER9_UP} + TOpenCustomEdit = TCustomEdit; + {$ELSE} + TOpenCustomEdit = class(TCustomEdit); + {$ENDIF COMPILER9_UP} + +destructor TJvEditAction.Destroy; +begin + if FControl <> nil then + FControl.RemoveFreeNotification(Self); + inherited Destroy; +end; + +function TJvEditAction.GetEditorControl(Target: TObject): TJvCustomEditorBase; +begin + Result := Target as TJvCustomEditorBase; +end; + +function TJvEditAction.GetEditControl(Target: TObject): TCustomEdit; +begin + Result := Target as TCustomEdit; +end; + +function TJvEditAction.HandlesTarget(Target: TObject): Boolean; +begin + Result := ((Control <> nil) and (Target = Control) or + (Control = nil) and (Target is TWinControl) and SupportsControl(TWinControl(Target))) and + TWinControl(Target).Focused; +end; + +procedure TJvEditAction.Notification(AComponent: TComponent; Operation: TOperation); +begin + inherited Notification(AComponent, Operation); + if (Operation = opRemove) and (AComponent = Control) then + Control := nil; +end; + +procedure TJvEditAction.UpdateTarget(Target: TObject); +begin +end; + +procedure TJvEditAction.SetControl(Value: TWinControl); +begin + if Value <> FControl then + begin + if not SupportsControl(Value) then + Value := nil; + + if FControl <> nil then + FControl.RemoveFreeNotification(Self); + FControl := Value; + if Value <> nil then + Value.FreeNotification(Self); + end; +end; + +function TJvEditAction.SupportsControl(Value: TWinControl): Boolean; +begin + Result := (Value is TCustomEdit) or (Value is TJvCustomEditorBase); +end; + +//=== { TJvEditCopy } ========================================================== + +procedure TJvEditCopy.ExecuteTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + GetEditorControl(Target).ClipboardCopy + else if Target is TCustomEdit then + GetEditControl(Target).CopyToClipboard; +end; + +procedure TJvEditCopy.UpdateTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + Enabled := GetEditorControl(Target).CanCopy + else if Target is TCustomEdit then + Enabled := (GetEditControl(Target).SelLength > 0); +end; + +//=== { TJvEditCut } ========================================================== + +procedure TJvEditCut.ExecuteTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + GetEditorControl(Target).ClipboardCut + else if Target is TCustomEdit then + GetEditControl(Target).CutToClipboard; +end; + +procedure TJvEditCut.UpdateTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + Enabled := GetEditorControl(Target).CanCut + else if Target is TCustomEdit then + Enabled := (GetEditControl(Target).SelLength > 0) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; +end; + +//=== { TJvEditPaste } ========================================================== + +procedure TJvEditPaste.ExecuteTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + GetEditorControl(Target).ClipboardPaste + else if Target is TCustomEdit then + GetEditControl(Target).PasteFromClipboard; +end; + +procedure TJvEditPaste.UpdateTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + Enabled := GetEditorControl(Target).CanPaste + else if Target is TCustomEdit then + begin + {$IFDEF CLR} + Enabled := (IsClipboardFormatAvailable(CF_TEXT) or + IsClipboardFormatAvailable(CF_UNICODETEXT)) and + not GetEditControl(Target).ReadOnly; + {$ELSE} + Enabled := Clipboard.HasFormat(CF_TEXT) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; + {$ENDIF CLR} + end; +end; + +//=== { TJvEditSelectAll } ========================================================== + +procedure TJvEditSelectAll.ExecuteTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + GetEditorControl(Target).SelectAll + else if Target is TCustomEdit then + GetEditControl(Target).SelectAll; +end; + +procedure TJvEditSelectAll.UpdateTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + Enabled := GetEditorControl(Target).CanSelectAll + else if Target is TCustomEdit then + Enabled := Length(GetEditControl(Target).Text) > 0; +end; + +//=== { TJvEditUndo } ========================================================== + +procedure TJvEditUndo.ExecuteTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + GetEditorControl(Target).Undo + else if Target is TCustomEdit then + GetEditControl(Target).Undo; +end; + +procedure TJvEditUndo.UpdateTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + Enabled := GetEditorControl(Target).CanUndo + else if Target is TCustomEdit then + Enabled := GetEditControl(Target).CanUndo and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; +end; + +//=== { TJvEditDelete } ========================================================== + +procedure TJvEditDelete.ExecuteTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + GetEditorControl(Target).ClearSelection + else if Target is TCustomEdit then + GetEditControl(Target).ClearSelection; +end; + +procedure TJvEditDelete.UpdateTarget(Target: TObject); +begin + if Target is TJvCustomEditorBase then + Enabled := GetEditorControl(Target).CanCut + else if Target is TCustomEdit then + Enabled := (GetEditControl(Target).SelLength > 0) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; +end; + {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-02 19:30:30
|
Revision: 12020 http://jvcl.svn.sourceforge.net/jvcl/?rev=12020&view=rev Author: ahuser Date: 2008-11-02 19:30:16 +0000 (Sun, 02 Nov 2008) Log Message: ----------- Reimplemented standard edit actions by using the new interface JvStdEditActions.IStandardEditActions Modified Paths: -------------- trunk/jvcl/design/JvCoreReg.pas trunk/jvcl/design/JvCustomReg.pas trunk/jvcl/packages/c5/JvCoreC5R.bpk trunk/jvcl/packages/c5/JvCoreC5R.cpp trunk/jvcl/packages/c5/JvCoreC5R.dpk trunk/jvcl/packages/c5std/JvCoreC5R.bpk trunk/jvcl/packages/c5std/JvCoreC5R.cpp trunk/jvcl/packages/c5std/JvCoreC5R.dpk trunk/jvcl/packages/c6/JvCoreC6R.bpk trunk/jvcl/packages/c6/JvCoreC6R.dpk trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk trunk/jvcl/packages/c6per/JvCoreC6R.bpk trunk/jvcl/packages/c6per/JvCoreC6R.dpk trunk/jvcl/packages/d10/JvCoreD10R.dpk trunk/jvcl/packages/d10per/JvCoreD10R.dpk trunk/jvcl/packages/d11/JvCoreD11R.dpk trunk/jvcl/packages/d12/JvCoreD12R.dpk trunk/jvcl/packages/d5/JvCoreD5R.dpk trunk/jvcl/packages/d5std/JvCoreD5R.dpk trunk/jvcl/packages/d6/JvCoreD6R.dpk trunk/jvcl/packages/d6per/JvCoreD6R.dpk trunk/jvcl/packages/d7/JvCoreD7R.dpk trunk/jvcl/packages/d7per/JvCoreD7R.dpk trunk/jvcl/packages/d9/JvCoreD9R.dpk trunk/jvcl/packages/d9per/JvCoreD9R.dpk trunk/jvcl/packages/xml/JvCore-R.xml trunk/jvcl/run/JvEditorCommon.pas Added Paths: ----------- trunk/jvcl/run/JvStdEditActions.pas Modified: trunk/jvcl/design/JvCoreReg.pas =================================================================== --- trunk/jvcl/design/JvCoreReg.pas 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/design/JvCoreReg.pas 2008-11-02 19:30:16 UTC (rev 12020) @@ -16,6 +16,7 @@ Contributor(s): Florent Ouchet (outchy) + Andreas Hausladen (ahuser) You may retrieve the latest version of this file at the Project JEDI's JVCL home page, located at http://jvcl.sourceforge.net @@ -35,10 +36,8 @@ implementation uses - {$IFDEF RTL170_UP} - Windows, SysUtils, - {$ENDIF RTL170_UP} - Classes, Controls, StdCtrls, ExtCtrls, Graphics, ActnList, ImgList, Dialogs, + Windows, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, + ActnList, ImgList, ToolsAPI, {$IFDEF COMPILER6_UP} DesignEditors, DesignIntf, @@ -52,14 +51,124 @@ JvPaintBoxEditor, JvColorProviderEditors, JvDataProviderEditors, JvBackgrounds, JvBackgroundEditors, JvAppRegistryStorage, JvAppIniStorage, JvAppStorage, JvAppStorageSelectList, - JvAutoComplete, JvTranslateString; + JvAutoComplete, JvTranslateString, JvStdEditActions; {$R JvCoreReg.dcr} +type + TCustomActionClass = class of TCustomAction; + + { TJvStdEditActionsRes is used to copy the VCL's standard edit actions + properties to the JVCL standard edit actions } + TJvStdEditActionsRes = class(TComponent) + private + FStandardActions: TComponent; + FActionList: TActionList; + public + constructor Create(AOwner: TComponent); override; + + function CreateAction(AActionClass: TCustomActionClass; + const AStandardActionClassName: string): TCustomAction; + end; + +function FindComponentByClassName(AOwner: TComponent; const AClassName: string): TComponent; +var + I: Integer; +begin + for I := 0 to AOwner.ComponentCount - 1 do + begin + Result := AOwner.Components[I]; + if AnsiSameText(Result.ClassName, AClassName) then + Exit; + end; + Result := nil; +end; + +function FindComponentByClass(AOwner: TComponent; AComponentClass: TComponentClass): TComponent; +var + I: Integer; +begin + for I := 0 to AOwner.ComponentCount - 1 do + begin + Result := AOwner.Components[I]; + if Result.ClassType = AComponentClass then + Exit; + end; + Result := nil; +end; + +function ModuleEnumProc(HInstance: Integer; Data: Pointer): Boolean; +var + StandardActionsClass: TComponentClass; +begin + { Find the TStandardActions class from the dclstdXX.bpl package } + StandardActionsClass := TComponentClass(GetProcAddress(HMODULE(HInstance), '@Actnres@TStandardActions@')); + if StandardActionsClass <> nil then + begin + TJvStdEditActionsRes(Data).FStandardActions := StandardActionsClass.Create(Data); + Result := False; + end + else + Result := True; +end; + +constructor TJvStdEditActionsRes.Create(AOwner: TComponent); +var + StdActionList: TActionList; +begin + inherited Create(AOwner); + EnumModules(ModuleEnumProc, Self); + if FStandardActions <> nil then + begin + StdActionList := TActionList(FindComponentByClass(FStandardActions, TActionList)); + if StdActionList <> nil then + begin + FActionList := TActionList.Create(Self); + FActionList.Images := StdActionList.Images; + + { Create the JVCL standard edit actions } + CreateAction(TJvEditCut, 'TEditCut'); + CreateAction(TJvEditCopy, 'TEditCopy'); + CreateAction(TJvEditPaste, 'TEditPaste'); + CreateAction(TJvEditSelectAll, 'TEditSelectAll'); + CreateAction(TJvEditUndo, 'TEditUndo'); + CreateAction(TJvEditDelete, 'TEditDelete'); + end; + end; +end; + +function TJvStdEditActionsRes.CreateAction(AActionClass: TCustomActionClass; + const AStandardActionClassName: string): TCustomAction; +var + StdAction: TCustomAction; +begin + Result := AActionClass.Create(Self); + Result.ActionList := FActionList; + + { Copy the localized properties } + StdAction := TCustomAction(FindComponentByClassName(FStandardActions, AStandardActionClassName)); + if TObject(StdAction) is TCustomAction then + begin + Result.Caption := StdAction.Caption; + //Result.Category := StdAction.Category; is overwritten by the IDE + Result.Hint := StdAction.Hint; + Result.Visible := StdAction.Visible; + Result.Enabled := StdAction.Enabled; + Result.ShortCut := StdAction.ShortCut; + Result.Checked := StdAction.Checked; + Result.HelpContext := StdAction.HelpContext; + Result.ImageIndex := StdAction.ImageIndex; + end; +end; + + procedure Register; const BaseClass: TClass = TComponent; begin + RegisterActions(RsJVCLEditActionsCategory, [TJvEditCut, TJvEditCopy, TJvEditPaste, + TJvEditSelectAll, TJvEditUndo, TJvEditDelete], TJvStdEditActionsRes); + {$IFDEF COMPILER7_UP} GroupDescendentsWith(TJvComponent, TControl); GroupDescendentsWith(TJvLookupAutoComplete, TControl); Modified: trunk/jvcl/design/JvCustomReg.pas =================================================================== --- trunk/jvcl/design/JvCustomReg.pas 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/design/JvCustomReg.pas 2008-11-02 19:30:16 UTC (rev 12020) @@ -34,10 +34,7 @@ implementation uses - Windows, SysUtils, Classes, ImgList, ActnList, - {$IFDEF COMPILER5} - Forms, - {$ENDIF COMPILER5} + Classes, ImgList, {$IFDEF COMPILER6_UP} DesignEditors, DesignIntf, {$ELSE} @@ -64,113 +61,6 @@ {$R JvCustomReg.dcr} -type - TCustomActionClass = class of TCustomAction; - - { TJvStdEditorActionsRes is used to copy the VCL's standard edit actions - properties to the JVCL standard edit actions } - TJvStdEditorActionsRes = class(TComponent) - private - FStandardActions: TComponent; - FActionList: TActionList; - public - constructor Create(AOwner: TComponent); override; - - function CreateAction(AActionClass: TCustomActionClass; - const AStandardActionClassName: string): TCustomAction; - end; - -function FindComponentByClassName(AOwner: TComponent; const AClassName: string): TComponent; -var - I: Integer; -begin - for I := 0 to AOwner.ComponentCount - 1 do - begin - Result := AOwner.Components[I]; - if AnsiSameText(Result.ClassName, AClassName) then - Exit; - end; - Result := nil; -end; - -function FindComponentByClass(AOwner: TComponent; AComponentClass: TComponentClass): TComponent; -var - I: Integer; -begin - for I := 0 to AOwner.ComponentCount - 1 do - begin - Result := AOwner.Components[I]; - if Result.ClassType = AComponentClass then - Exit; - end; - Result := nil; -end; - -{ Find the TStandardActions class (dclstdXX.bpl) } -function ModuleEnumProc(HInstance: Integer; Data: Pointer): Boolean; -var - StandardActionsClass: TComponentClass; -begin - StandardActionsClass := TComponentClass(GetProcAddress(HMODULE(HInstance), '@Actnres@TStandardActions@')); - if StandardActionsClass <> nil then - begin - TJvStdEditorActionsRes(Data).FStandardActions := StandardActionsClass.Create(Data); - Result := False; - end - else - Result := True; -end; - -constructor TJvStdEditorActionsRes.Create(AOwner: TComponent); -var - StdActionList: TActionList; -begin - inherited Create(AOwner); - EnumModules(ModuleEnumProc, Self); - if FStandardActions <> nil then - begin - StdActionList := TActionList(FindComponentByClass(FStandardActions, TActionList)); - if StdActionList <> nil then - begin - FActionList := TActionList.Create(Self); - FActionList.Images := StdActionList.Images; - - { Create the JVCL standard edit actions } - CreateAction(TJvEditCut, 'TEditCut'); - CreateAction(TJvEditCopy, 'TEditCopy'); - CreateAction(TJvEditPaste, 'TEditPaste'); - CreateAction(TJvEditSelectAll, 'TEditSelectAll'); - CreateAction(TJvEditUndo, 'TEditUndo'); - CreateAction(TJvEditDelete, 'TEditDelete'); - end; - end; -end; - -function TJvStdEditorActionsRes.CreateAction(AActionClass: TCustomActionClass; - const AStandardActionClassName: string): TCustomAction; -var - StdAction: TCustomAction; -begin - Result := AActionClass.Create(Self); - Result.ActionList := FActionList; - - { Copy the localized properties } - StdAction := TCustomAction(FindComponentByClassName(FStandardActions, AStandardActionClassName)); - if TObject(StdAction) is TCustomAction then - begin - Result.Caption := StdAction.Caption; - //Result.Category := StdAction.Category; is overwritten by the IDE - Result.Hint := StdAction.Hint; - Result.Visible := StdAction.Visible; - Result.Enabled := StdAction.Enabled; - Result.ShortCut := StdAction.ShortCut; - Result.Checked := StdAction.Checked; - Result.HelpContext := StdAction.HelpContext; - Result.ImageIndex := StdAction.ImageIndex; - end; -end; - - procedure Register; const cActivePageIndex = 'ActivePageIndex'; @@ -194,8 +84,6 @@ RegisterComponents(RsPaletteNonVisual, [TJvScheduledEvents]); RegisterComponents(RsPaletteEdit, [TJvEditor, TJvHLEditor, TJvWideEditor, TJvWideHLEditor, TJvHLEdPropDlg]); - RegisterActions(RsJVCLEditActionsCategory, [TJvEditCut, TJvEditCopy, TJvEditPaste, - TJvEditSelectAll, TJvEditUndo, TJvEditDelete], TJvStdEditorActionsRes); RegisterComponents(RsPaletteImageAnimator, [TJvThumbView, TJvThumbnail, TJvThumbImage]); RegisterComponents(RsPaletteVisual, [TJvImagesViewer, TJvImageListViewer, Modified: trunk/jvcl/packages/c5/JvCoreC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.bpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c5/JvCoreC5R.bpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:09:43 UTC + Last generated: 02-11-2008 19:28:30 UTC ***************************************************************************** --> <PROJECT> @@ -68,6 +68,7 @@ ..\..\lib\c5\JvDataSourceIntf.obj ..\..\lib\c5\JvOfficeDragBarForm.obj ..\..\lib\c5\JvHotTrackPersistent.obj + ..\..\lib\c5\JvStdEditActions.obj "/> <RESFILES value="JvCoreC5R.res"/> <IDLFILES value=""/> Modified: trunk/jvcl/packages/c5/JvCoreC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.cpp 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c5/JvCoreC5R.cpp 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:09:44 UTC + Last generated: 02-11-2008 19:28:31 UTC ----------------------------------------------------------------------------- */ @@ -65,6 +65,7 @@ USEUNIT("..\..\run\JvDataSourceIntf.pas"); USEUNIT("..\..\run\JvOfficeDragBarForm.pas"); USEUNIT("..\..\run\JvHotTrackPersistent.pas"); +USEUNIT("..\..\run\JvStdEditActions.pas"); USEPACKAGE("JclC50.bpi"); USEPACKAGE("JclVclC50.bpi"); USEPACKAGE("vcl50.bpi"); Modified: trunk/jvcl/packages/c5/JvCoreC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c5/JvCoreC5R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:09:44 UTC + Last generated: 02-11-2008 19:28:31 UTC ----------------------------------------------------------------------------- } @@ -99,7 +99,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/c5std/JvCoreC5R.bpk =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.bpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c5std/JvCoreC5R.bpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:09:43 UTC + Last generated: 02-11-2008 19:28:30 UTC ***************************************************************************** --> <PROJECT> @@ -68,6 +68,7 @@ ..\..\lib\c5\JvDataSourceIntf.obj ..\..\lib\c5\JvOfficeDragBarForm.obj ..\..\lib\c5\JvHotTrackPersistent.obj + ..\..\lib\c5\JvStdEditActions.obj "/> <RESFILES value="JvCoreC5R.res"/> <IDLFILES value=""/> Modified: trunk/jvcl/packages/c5std/JvCoreC5R.cpp =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.cpp 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c5std/JvCoreC5R.cpp 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:09:44 UTC + Last generated: 02-11-2008 19:28:31 UTC ----------------------------------------------------------------------------- */ @@ -65,6 +65,7 @@ USEUNIT("..\..\run\JvDataSourceIntf.pas"); USEUNIT("..\..\run\JvOfficeDragBarForm.pas"); USEUNIT("..\..\run\JvHotTrackPersistent.pas"); +USEUNIT("..\..\run\JvStdEditActions.pas"); USEPACKAGE("JclC50.bpi"); USEPACKAGE("JclVclC50.bpi"); USEPACKAGE("vcl50.bpi"); Modified: trunk/jvcl/packages/c5std/JvCoreC5R.dpk =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c5std/JvCoreC5R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:09:44 UTC + Last generated: 02-11-2008 19:28:31 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/c6/JvCoreC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvCoreC6R.bpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c6/JvCoreC6R.bpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:13:17 UTC + Last generated: 02-11-2008 19:28:31 UTC ***************************************************************************** --> <PROJECT> @@ -68,6 +68,7 @@ ..\..\lib\c6\JvDataSourceIntf.obj ..\..\lib\c6\JvOfficeDragBarForm.obj ..\..\lib\c6\JvHotTrackPersistent.obj + ..\..\lib\c6\JvStdEditActions.obj "/> <RESFILES value="JvCoreC6R.res"/> <IDLFILES value=""/> @@ -193,6 +194,7 @@ <FILE FILENAME="..\..\run\JvDataSourceIntf.pas" FORMNAME="" UNITNAME="JvDataSourceIntf" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvOfficeDragBarForm.pas" FORMNAME="" UNITNAME="JvOfficeDragBarForm" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvHotTrackPersistent.pas" FORMNAME="" UNITNAME="JvHotTrackPersistent" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvStdEditActions.pas" FORMNAME="" UNITNAME="JvStdEditActions" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jvcl/packages/c6/JvCoreC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvCoreC6R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c6/JvCoreC6R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:13:17 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvRuntimeDesign-R.xml) - Last generated: 23-08-2008 16:16:01 UTC + Last generated: 02-11-2008 19:28:31 UTC ***************************************************************************** --> <PROJECT> @@ -14,7 +14,6 @@ <PROJECT value="JvRuntimeDesignC6R.bpl"/> <OBJFILES value=" ..\..\lib\c6\JvRuntimeDesignC6R.obj - ..\..\lib\c6\JvInspDB.obj ..\..\lib\c6\JvInspector.obj ..\..\lib\c6\JvDynControlEngineJVCLInspector.obj ..\..\lib\c6\JvInspExtraEditors.obj @@ -40,8 +39,6 @@ Jcl.bpi rtl.bpi vcl.bpi - dbrtl.bpi - vcldb.bpi vclx.bpi "/> <PATHCPP value=".;"/> @@ -90,10 +87,7 @@ <FILE FILENAME="Jcl.bpi" FORMNAME="" UNITNAME="Jcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="rtl.bpi" FORMNAME="" UNITNAME="rtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="vcl.bpi" FORMNAME="" UNITNAME="vcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="dbrtl.bpi" FORMNAME="" UNITNAME="dbrtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="vcldb.bpi" FORMNAME="" UNITNAME="vcldb" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="vclx.bpi" FORMNAME="" UNITNAME="vclx" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\run\JvInspDB.pas" FORMNAME="" UNITNAME="JvInspDB" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvInspector.pas" FORMNAME="" UNITNAME="JvInspector" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvDynControlEngineJVCLInspector.pas" FORMNAME="" UNITNAME="JvDynControlEngineJVCLInspector" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvInspExtraEditors.pas" FORMNAME="" UNITNAME="JvInspExtraEditors" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvRuntimeDesign-R.xml) - Last generated: 23-08-2008 16:16:01 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -42,13 +42,10 @@ Jcl, rtl, vcl, - dbrtl, - vcldb, vclx ; contains - JvInspDB in '..\..\run\JvInspDB.pas' , JvInspector in '..\..\run\JvInspector.pas' , JvDynControlEngineJVCLInspector in '..\..\run\JvDynControlEngineJVCLInspector.pas' , JvInspExtraEditors in '..\..\run\JvInspExtraEditors.pas' , Modified: trunk/jvcl/packages/c6per/JvCoreC6R.bpk =================================================================== --- trunk/jvcl/packages/c6per/JvCoreC6R.bpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c6per/JvCoreC6R.bpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:13:17 UTC + Last generated: 02-11-2008 19:28:31 UTC ***************************************************************************** --> <PROJECT> @@ -68,6 +68,7 @@ ..\..\lib\c6\JvDataSourceIntf.obj ..\..\lib\c6\JvOfficeDragBarForm.obj ..\..\lib\c6\JvHotTrackPersistent.obj + ..\..\lib\c6\JvStdEditActions.obj "/> <RESFILES value="JvCoreC6R.res"/> <IDLFILES value=""/> @@ -190,6 +191,7 @@ <FILE FILENAME="..\..\run\JvDataSourceIntf.pas" FORMNAME="" UNITNAME="JvDataSourceIntf" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvOfficeDragBarForm.pas" FORMNAME="" UNITNAME="JvOfficeDragBarForm" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvHotTrackPersistent.pas" FORMNAME="" UNITNAME="JvHotTrackPersistent" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvStdEditActions.pas" FORMNAME="" UNITNAME="JvStdEditActions" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jvcl/packages/c6per/JvCoreC6R.dpk =================================================================== --- trunk/jvcl/packages/c6per/JvCoreC6R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/c6per/JvCoreC6R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:13:17 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d10/JvCoreD10R.dpk =================================================================== --- trunk/jvcl/packages/d10/JvCoreD10R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d10/JvCoreD10R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:17:09 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d10per/JvCoreD10R.dpk =================================================================== --- trunk/jvcl/packages/d10per/JvCoreD10R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d10per/JvCoreD10R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:17:09 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d11/JvCoreD11R.dpk =================================================================== --- trunk/jvcl/packages/d11/JvCoreD11R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d11/JvCoreD11R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:18:19 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d12/JvCoreD12R.dpk =================================================================== --- trunk/jvcl/packages/d12/JvCoreD12R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d12/JvCoreD12R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:34:52 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d5/JvCoreD5R.dpk =================================================================== --- trunk/jvcl/packages/d5/JvCoreD5R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d5/JvCoreD5R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 17:56:11 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -99,7 +99,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d5std/JvCoreD5R.dpk =================================================================== --- trunk/jvcl/packages/d5std/JvCoreD5R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d5std/JvCoreD5R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 17:56:11 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -100,7 +100,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d6/JvCoreD6R.dpk =================================================================== --- trunk/jvcl/packages/d6/JvCoreD6R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d6/JvCoreD6R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:08:45 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d6per/JvCoreD6R.dpk =================================================================== --- trunk/jvcl/packages/d6per/JvCoreD6R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d6per/JvCoreD6R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:08:45 UTC + Last generated: 02-11-2008 19:28:32 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d7/JvCoreD7R.dpk =================================================================== --- trunk/jvcl/packages/d7/JvCoreD7R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d7/JvCoreD7R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:34:56 UTC + Last generated: 02-11-2008 19:28:33 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d7per/JvCoreD7R.dpk =================================================================== --- trunk/jvcl/packages/d7per/JvCoreD7R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d7per/JvCoreD7R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:34:56 UTC + Last generated: 02-11-2008 19:28:33 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d9/JvCoreD9R.dpk =================================================================== --- trunk/jvcl/packages/d9/JvCoreD9R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d9/JvCoreD9R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:34:56 UTC + Last generated: 02-11-2008 19:28:33 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/d9per/JvCoreD9R.dpk =================================================================== --- trunk/jvcl/packages/d9per/JvCoreD9R.dpk 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/d9per/JvCoreD9R.dpk 2008-11-02 19:30:16 UTC (rev 12020) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 18-09-2008 18:34:57 UTC + Last generated: 02-11-2008 19:28:33 UTC ----------------------------------------------------------------------------- } @@ -101,7 +101,8 @@ JvVCL5Utils in '..\..\run\JvVCL5Utils.pas' , JvDataSourceIntf in '..\..\run\JvDataSourceIntf.pas' , JvOfficeDragBarForm in '..\..\run\JvOfficeDragBarForm.pas' , - JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' + JvHotTrackPersistent in '..\..\run\JvHotTrackPersistent.pas' , + JvStdEditActions in '..\..\run\JvStdEditActions.pas' ; end. Modified: trunk/jvcl/packages/xml/JvCore-R.xml =================================================================== --- trunk/jvcl/packages/xml/JvCore-R.xml 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/packages/xml/JvCore-R.xml 2008-11-02 19:30:16 UTC (rev 12020) @@ -90,5 +90,6 @@ <File Name="..\..\run\JvDataSourceIntf.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvOfficeDragBarForm.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvHotTrackPersistent.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\run\JvStdEditActions.pas" Targets="all" Formname="" Condition=""/> </Contains> </Package> Modified: trunk/jvcl/run/JvEditorCommon.pas =================================================================== --- trunk/jvcl/run/JvEditorCommon.pas 2008-11-02 18:27:17 UTC (rev 12019) +++ trunk/jvcl/run/JvEditorCommon.pas 2008-11-02 19:30:16 UTC (rev 12020) @@ -207,7 +207,8 @@ {$ENDIF UNITVERSIONING} Windows, Messages, ShellAPI, SysUtils, Classes, Contnrs, Graphics, Controls, Forms, StdCtrls, ExtCtrls, Menus, ActnList, - JvConsts, JvFixedEditPopup, JvUnicodeCanvas, JvComponent, JvExControls; + JvConsts, JvFixedEditPopup, JvStdEditActions, JvUnicodeCanvas, JvComponent, + JvExControls; const Max_X = 1024; {max symbols per row} @@ -652,7 +653,7 @@ property Editor: TJvCustomEditorBase read FEditor; end; - TJvCustomEditorBase = class(TJvCustomControl, IFixedPopupIntf) + TJvCustomEditorBase = class(TJvCustomControl, IFixedPopupIntf, IStandardEditActions) private { internal objects } FScrollBarHorz: TJvControlScrollBar95; @@ -855,6 +856,12 @@ procedure IFixedPopupIntf.Copy = ClipboardCopy; procedure IFixedPopupIntf.Paste = ClipboardPaste; procedure IFixedPopupIntf.Delete = DeleteSelected; + + { IStandardEditActions method assignment } + procedure IStandardEditActions.Cut = ClipboardCut; + procedure IStandardEditActions.Copy = ClipboardCopy; + procedure IStandardEditActions.Paste = ClipboardPaste; + procedure IStandardEditActions.Delete = DeleteSelected; protected { get/set methods for properties } procedure SetGutterWidth(AWidth: Integer); @@ -1234,62 +1241,6 @@ property Highlighter: TJvHighlighter read GetHighlighter write SetHighlighter; end; - { Standard Editor actions } - TJvEditAction = class(TAction) - private - FControl: TWinControl; - procedure SetControl(Value: TWinControl); - protected - function SupportsControl(Value: TWinControl): Boolean; virtual; - function GetEditorControl(Target: TObject): TJvCustomEditorBase; virtual; - function GetEditControl(Target: TObject): TCustomEdit; virtual; - procedure Notification(AComponent: TComponent; Operation: TOperation); override; - public - destructor Destroy; override; - function HandlesTarget(Target: TObject): Boolean; override; - procedure UpdateTarget(Target: TObject); override; - property Control: TWinControl read FControl write SetControl; - end; - - TJvEditCut = class(TJvEditAction) - public - procedure ExecuteTarget(Target: TObject); override; - procedure UpdateTarget(Target: TObject); override; - end; - - TJvEditCopy = class(TJvEditAction) - public - procedure ExecuteTarget(Target: TObject); override; - procedure UpdateTarget(Target: TObject); override; - end; - - TJvEditPaste = class(TJvEditAction) - public - procedure ExecuteTarget(Target: TObject); override; - procedure UpdateTarget(Target: TObject); override; - end; - - TJvEditSelectAll = class(TJvEditAction) - public - procedure ExecuteTarget(Target: TObject); override; - procedure UpdateTarget(Target: TObject); override; - end; - - TJvEditUndo = class(TJvEditAction) - public - procedure ExecuteTarget(Target: TObject); override; - procedure UpdateTarget(Target: TObject); override; - end; - - TJvEditDelete = class(TJvEditAction) - public - procedure ExecuteTarget(Target: TObject); override; - { UpdateTarget is required because TJvEditAction.UpdateTarget specifically - checks to see if the action is TEditCut or TJvEditCopy } - procedure UpdateTarget(Target: TObject); override; - end; - - const { Editor commands } { When add new commands, please add them into JvInterpreter_JvEditor.pas unit also ! } @@ -6517,186 +6468,6 @@ inherited Assign(Source); end; -//=== { TJvEditAction } ========================================================== - -type - {$IFDEF COMPILER9_UP} - TOpenCustomEdit = TCustomEdit; - {$ELSE} - TOpenCustomEdit = class(TCustomEdit); - {$ENDIF COMPILER9_UP} - -destructor TJvEditAction.Destroy; -begin - if FControl <> nil then - FControl.RemoveFreeNotification(Self); - inherited Destroy; -end; - -function TJvEditAction.GetEditorControl(Target: TObject): TJvCustomEditorBase; -begin - Result := Target as TJvCustomEditorBase; -end; - -function TJvEditAction.GetEditControl(Target: TObject): TCustomEdit; -begin - Result := Target as TCustomEdit; -end; - -function TJvEditAction.HandlesTarget(Target: TObject): Boolean; -begin - Result := ((Control <> nil) and (Target = Control) or - (Control = nil) and (Target is TWinControl) and SupportsControl(TWinControl(Target))) and - TWinControl(Target).Focused; -end; - -procedure TJvEditAction.Notification(AComponent: TComponent; Operation: TOperation); -begin - inherited Notification(AComponent, Operation); - if (Operation = opRemove) and (AComponent = Control) then - Control := nil; -end; - -procedure TJvEditAction.UpdateTarget(Target: TObject); -begin -end; - -procedure TJvEditAction.SetControl(Value: TWinControl); -begin - if Value <> FControl then - begin - if not SupportsControl(Value) then - Value := nil; - - if FControl <> nil then - FControl.RemoveFreeNotification(Self); - FControl := Value; - if Value <> nil then - Value.FreeNotification(Self); - end; -end; - -function TJvEditAction.SupportsControl(Value: TWinControl): Boolean; -begin - Result := (Value is TCustomEdit) or (Value is TJvCustomEditorBase); -end; - -//=== { TJvEditCopy } ========================================================== - -procedure TJvEditCopy.ExecuteTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - GetEditorControl(Target).ClipboardCopy - else if Target is TCustomEdit then - GetEditControl(Target).CopyToClipboard; -end; - -procedure TJvEditCopy.UpdateTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - Enabled := GetEditorControl(Target).CanCopy - else if Target is TCustomEdit then - Enabled := (GetEditControl(Target).SelLength > 0); -end; - -//=== { TJvEditCut } ========================================================== - -procedure TJvEditCut.ExecuteTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - GetEditorControl(Target).ClipboardCut - else if Target is TCustomEdit then - GetEditControl(Target).CutToClipboard; -end; - -procedure TJvEditCut.UpdateTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - Enabled := GetEditorControl(Target).CanCut - else if Target is TCustomEdit then - Enabled := (GetEditControl(Target).SelLength > 0) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; -end; - -//=== { TJvEditPaste } ========================================================== - -procedure TJvEditPaste.ExecuteTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - GetEditorControl(Target).ClipboardPaste - else if Target is TCustomEdit then - GetEditControl(Target).PasteFromClipboard; -end; - -procedure TJvEditPaste.UpdateTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - Enabled := GetEditorControl(Target).CanPaste - else if Target is TCustomEdit then - begin - {$IFDEF CLR} - Enabled := (IsClipboardFormatAvailable(CF_TEXT) or - IsClipboardFormatAvailable(CF_UNICODETEXT)) and - not GetEditControl(Target).ReadOnly; - {$ELSE} - Enabled := Clipboard.HasFormat(CF_TEXT) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; - {$ENDIF CLR} - end; -end; - -//=== { TJvEditSelectAll } ========================================================== - -procedure TJvEditSelectAll.ExecuteTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - GetEditorControl(Target).SelectAll - else if Target is TCustomEdit then - GetEditControl(Target).SelectAll; -end; - -procedure TJvEditSelectAll.UpdateTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - Enabled := GetEditorControl(Target).CanSelectAll - else if Target is TCustomEdit then - Enabled := Length(GetEditControl(Target).Text) > 0; -end; - -//=== { TJvEditUndo } ========================================================== - -procedure TJvEditUndo.ExecuteTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - GetEditorControl(Target).Undo - else if Target is TCustomEdit then - GetEditControl(Target).Undo; -end; - -procedure TJvEditUndo.UpdateTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - Enabled := GetEditorControl(Target).CanUndo - else if Target is TCustomEdit then - Enabled := GetEditControl(Target).CanUndo and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; -end; - -//=== { TJvEditDelete } ========================================================== - -procedure TJvEditDelete.ExecuteTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - GetEditorControl(Target).ClearSelection - else if Target is TCustomEdit then - GetEditControl(Target).ClearSelection; -end; - -procedure TJvEditDelete.UpdateTarget(Target: TObject); -begin - if Target is TJvCustomEditorBase then - Enabled := GetEditorControl(Target).CanCut - else if Target is TCustomEdit then - Enabled := (GetEditControl(Target).SelLength > 0) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; -end; - {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); Added: trunk/jvcl/run/JvStdEditActions.pas =================================================================== --- trunk/jvcl/run/JvStdEditActions.pas (rev 0) +++ trunk/jvcl/run/JvStdEditActions.pas 2008-11-02 19:30:16 UTC (rev 12020) @@ -0,0 +1,313 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JvStdEditActions.PAS, released on 2008-11-02 + +The Initial Developers of the Original Code are: Andreas Hausladen <Andreas dott Hausladen att gmx dott de> +Copyright (c) 2008 Andreas Hausladen +All Rights Reserved. + +Contributor(s): + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net +-----------------------------------------------------------------------------} +// $Id$ + +unit JvStdEditActions; + +{$I jvcl.inc} + +interface + +uses + Windows, SysUtils, Classes, Controls, Forms, ActnList, StdCtrls, Clipbrd; + +type + { The JVCL Edit standard actions automatically support a TWinControl that + implements the IStandardEditActions interface. } + IStandardEditActions = interface + ['{38A87FE4-A1F4-4D47-A882-F7A3F9458264}'] + function CanUndo: Boolean; + function CanRedo: Boolean; // not used at the moment + function CanCut: Boolean; + function CanCopy: Boolean; + function CanPaste: Boolean; + function CanSelectAll: Boolean; + + procedure Undo; + procedure Redo; // not used at the moment + procedure Cut; + procedure Copy; + procedure Paste; + procedure Delete; + procedure SelectAll; + procedure ClearSelection; + end; + + { Standard Editor actions } + + TJvEditAction = class(TAction) + private + FControl: TWinControl; + procedure SetControl(Value: TWinControl); + protected + function SupportsControl(Value: TWinControl): Boolean; virtual; + function GetEditControl(Target: TObject): TCustomEdit; virtual; + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + public + destructor Destroy; override; + function HandlesTarget(Target: TObject): Boolean; override; + + property Control: TWinControl read FControl write SetControl; + end; + + TJvEditCut = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditCopy = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditPaste = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditSelectAll = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditUndo = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + procedure UpdateTarget(Target: TObject); override; + end; + + TJvEditDelete = class(TJvEditAction) + public + procedure ExecuteTarget(Target: TObject); override; + { UpdateTarget is required because TJvEditAction.UpdateTarget specifically + checks to see if the action is TEditCut or TJvEditCopy } + procedure UpdateTarget(Target: TObject); override; + end; + + +implementation + +{$IFDEF COMPILER5} +uses + JvVCL5Utils; +{$ENDIF COMPILER5} + +//=== { TJvEditAction } ========================================================== + +type + {$IFDEF COMPILER9_UP} + TOpenCustomEdit = TCustomEdit; + {$ELSE} + TOpenCustomEdit = class(TCustomEdit); + {$ENDIF COMPILER9_UP} + +destructor TJvEditAction.Destroy; +begin + if FControl <> nil then + FControl.RemoveFreeNotification(Self); + inherited Destroy; +end; + +function TJvEditAction.GetEditControl(Target: TObject): TCustomEdit; +begin + Result := Target as TCustomEdit; +end; + +function TJvEditAction.HandlesTarget(Target: TObject): Boolean; +begin + Result := ((Control <> nil) and (Target = Control) or + (Control = nil) and (Target is TWinControl) and SupportsControl(TWinControl(Target))) and + TWinControl(Target).Focused; +end; + +procedure TJvEditAction.Notification(AComponent: TComponent; Operation: TOperation); +begin + inherited Notification(AComponent, Operation); + if (Operation = opRemove) and (AComponent = Control) then + Control := nil; +end; + +procedure TJvEditAction.SetControl(Value: TWinControl); +begin + if Value <> FControl then + begin + if not SupportsControl(Value) then + Value := nil; + + if FControl <> nil then + FControl.RemoveFreeNotification(Self); + FControl := Value; + if Value <> nil then + Value.FreeNotification(Self); + end; +end; + +function TJvEditAction.SupportsControl(Value: TWinControl): Boolean; +begin + Result := (Value is TCustomEdit) or Supports(Value, IStandardEditActions); +end; + +//=== { TJvEditCopy } ========================================================== + +procedure TJvEditCopy.ExecuteTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Intf.Copy + else if Target is TCustomEdit then + GetEditControl(Target).CopyToClipboard; +end; + +procedure TJvEditCopy.UpdateTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Enabled := Intf.CanCopy + else if Target is TCustomEdit then + Enabled := (GetEditControl(Target).SelLength > 0); +end; + +//=== { TJvEditCut } ========================================================== + +procedure TJvEditCut.ExecuteTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Intf.Cut + else if Target is TCustomEdit then + GetEditControl(Target).CutToClipboard; +end; + +procedure TJvEditCut.UpdateTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Enabled := Intf.CanCut + else if Target is TCustomEdit then + Enabled := (GetEditControl(Target).SelLength > 0) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; +end; + +//=== { TJvEditPaste } ========================================================== + +procedure TJvEditPaste.ExecuteTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Intf.Paste + else if Target is TCustomEdit then + GetEditControl(Target).PasteFromClipboard; +end; + +procedure TJvEditPaste.UpdateTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Enabled := Intf.CanPaste + else if Target is TCustomEdit then + begin + {$IFDEF CLR} + Enabled := (IsClipboardFormatAvailable(CF_TEXT) or + IsClipboardFormatAvailable(CF_UNICODETEXT)) and + not GetEditControl(Target).ReadOnly; + {$ELSE} + Enabled := Clipboard.HasFormat(CF_TEXT) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; + {$ENDIF CLR} + end; +end; + +//=== { TJvEditSelectAll } ========================================================== + +procedure TJvEditSelectAll.ExecuteTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Intf.SelectAll + else if Target is TCustomEdit then + GetEditControl(Target).SelectAll; +end; + +procedure TJvEditSelectAll.UpdateTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Enabled := Intf.CanSelectAll + else if Target is TCustomEdit then + Enabled := Length(GetEditControl(Target).Text) > 0; +end; + +//=== { TJvEditUndo } ========================================================== + +procedure TJvEditUndo.ExecuteTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Intf.Undo + else if Target is TCustomEdit then + GetEditControl(Target).Undo; +end; + +procedure TJvEditUndo.UpdateTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Enabled := Intf.CanUndo + else if Target is TCustomEdit then + Enabled := GetEditControl(Target).CanUndo and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; +end; + +//=== { TJvEditDelete } ========================================================== + +procedure TJvEditDelete.ExecuteTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Intf.ClearSelection + else if Target is TCustomEdit then + GetEditControl(Target).ClearSelection; +end; + +procedure TJvEditDelete.UpdateTarget(Target: TObject); +var + Intf: IStandardEditActions; +begin + if Supports(Target, IStandardEditActions, Intf) then + Enabled := Intf.CanCut + else if Target is TCustomEdit then + Enabled := (GetEditControl(Target).SelLength > 0) and not TOpenCustomEdit(GetEditControl(Target)).ReadOnly; +end; + +end. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-02 22:23:49
|
Revision: 12024 http://jvcl.svn.sourceforge.net/jvcl/?rev=12024&view=rev Author: ahuser Date: 2008-11-02 22:23:34 +0000 (Sun, 02 Nov 2008) Log Message: ----------- - Mantis #4351: Move JvgMailSlot into main part of library - Moved JvgMailSlot from JvGlobus to JvSystem as JvMailSlot - Added example for TJvMailSlots to examples directory Modified Paths: -------------- trunk/jvcl/design/JvGlobusReg.pas trunk/jvcl/design/JvSystemReg.pas trunk/jvcl/images/JvGlobusReg.rc trunk/jvcl/images/JvSystemReg.rc trunk/jvcl/packages/c5/JvGlobusC5R.bpk trunk/jvcl/packages/c5/JvGlobusC5R.cpp trunk/jvcl/packages/c5/JvGlobusC5R.dpk trunk/jvcl/packages/c5/JvSystemC5R.bpk trunk/jvcl/packages/c5/JvSystemC5R.cpp trunk/jvcl/packages/c5/JvSystemC5R.dpk trunk/jvcl/packages/c5std/JvGlobusC5R.bpk trunk/jvcl/packages/c5std/JvGlobusC5R.cpp trunk/jvcl/packages/c5std/JvGlobusC5R.dpk trunk/jvcl/packages/c6/JvGlobusC6R.bpk trunk/jvcl/packages/c6/JvGlobusC6R.dpk trunk/jvcl/packages/c6/JvSystemC6R.bpk trunk/jvcl/packages/c6/JvSystemC6R.dpk trunk/jvcl/packages/c6per/JvGlobusC6R.bpk trunk/jvcl/packages/c6per/JvGlobusC6R.dpk trunk/jvcl/packages/d10/JvGlobusD10R.dpk trunk/jvcl/packages/d10/JvSystemD10R.dpk trunk/jvcl/packages/d10per/JvGlobusD10R.dpk trunk/jvcl/packages/d11/JvGlobusD11R.dpk trunk/jvcl/packages/d11/JvSystemD11R.dpk trunk/jvcl/packages/d12/JvGlobusD12R.dpk trunk/jvcl/packages/d12/JvSystemD12R.dpk trunk/jvcl/packages/d5/JvGlobusD5R.dpk trunk/jvcl/packages/d5/JvSystemD5R.dpk trunk/jvcl/packages/d5std/JvGlobusD5R.dpk trunk/jvcl/packages/d6/JvGlobusD6R.dpk trunk/jvcl/packages/d6/JvSystemD6R.dpk trunk/jvcl/packages/d6per/JvGlobusD6R.dpk trunk/jvcl/packages/d7/JvGlobusD7R.dpk trunk/jvcl/packages/d7/JvSystemD7R.dpk trunk/jvcl/packages/d7per/JvGlobusD7R.dpk trunk/jvcl/packages/d9/JvGlobusD9R.dpk trunk/jvcl/packages/d9/JvSystemD9R.dpk trunk/jvcl/packages/d9per/JvGlobusD9R.dpk trunk/jvcl/packages/xml/JvGlobus-R.xml trunk/jvcl/packages/xml/JvSystem-R.xml trunk/jvcl/resources/JvGlobusReg.dcr trunk/jvcl/resources/JvSystemReg.dcr trunk/jvcl/resources/JvXPCore.res trunk/jvcl/run/JvResources.pas trunk/jvcl/run/JvgExceptionHandler.pas trunk/jvcl/run/JvgGroupBox.pas Added Paths: ----------- trunk/jvcl/examples/JvMailSlots/ trunk/jvcl/examples/JvMailSlots/FrmMain.dfm trunk/jvcl/examples/JvMailSlots/FrmMain.pas trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dpr trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dproj trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.res trunk/jvcl/images/TJVMAILSLOTCLIENT.BMP trunk/jvcl/images/TJVMAILSLOTSERVER.BMP trunk/jvcl/run/JvMailSlots.pas Removed Paths: ------------- trunk/jvcl/images/TJVGMAILSLOTCLIENT.BMP trunk/jvcl/images/TJVGMAILSLOTSERVER.BMP trunk/jvcl/run/JvgMailSlots.pas Modified: trunk/jvcl/design/JvGlobusReg.pas =================================================================== --- trunk/jvcl/design/JvGlobusReg.pas 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/design/JvGlobusReg.pas 2008-11-02 22:23:34 UTC (rev 12024) @@ -54,7 +54,7 @@ {JvgGraphicButton, }JvgSingleInstance, {JvgShape, } JvgSpeedButton, JvgStaticText, JvgHoleShape, {JvgSplit,} {JvgImageGroup, } JvgInspectorGrid, {JvgJump, } JvgSmallFontsDefense, {JvgSysInf, } - JvgLogicItemEditorForm, JvgLogics, JvgStringContainer, JvgMailSlots, + JvgLogicItemEditorForm, JvgLogics, JvgStringContainer, JvgStringGrid, JvgTabComm, JvgTab, {JvgSysRequirements,} {JvgProcess, } {JvgProcessUtils, } JvgPropertyCenter, JvgTransparentMemo, JvgTreeView, JvgTypes, JvgUtils, {JvgWinMask, } JvgRTFPreviewForm, @@ -100,7 +100,7 @@ RegisterComponents(RsPaletteGlobusComponents2, [TJvgCheckBox, TJvgRuler, TJvgPageControl, TJvgTabControl, - TJvgMailSlotServer, TJvgMailSlotClient, TJvgLabel, TJvgFlyingText, + TJvgLabel, TJvgFlyingText, TJvgDigits, TJvgStaticText, TJvgHoleShape, TJvgHelpPanel, TJvgXMLSerializer, TJvgLanguageLoader, TJvgExceptionHandler, {TJvgJumpingComponent,} TJvgStringContainer, {TJvgSysRequirements,} Modified: trunk/jvcl/design/JvSystemReg.pas =================================================================== --- trunk/jvcl/design/JvSystemReg.pas 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/design/JvSystemReg.pas 2008-11-02 22:23:34 UTC (rev 12024) @@ -52,7 +52,7 @@ JvDebugHandler, JvThread, JvThreadDialog, JvThreadTimer, JvTimer, JvSimpleXml, JvXMLDatabase, JvFormPlacement, JvAppXMLStorage, JvFormPlacementSelectList, - JvMinMaxForm, JvFormPropertiesForm, JvDsgnEditors; + JvMinMaxForm, JvFormPropertiesForm, JvDsgnEditors, JvMailSlots; {$R JvSystemReg.dcr} @@ -73,6 +73,7 @@ TJvScreenSaveSuppressor, TJvSysRequirements]); RegisterComponents(RsPaletteSystem, [{TJvComputerInfo, // - do not register this component as default} TJvSHFileOperation, TJvChangeNotify, TJvAppInstances, TJvNTEventLog, + TJvMailSlotServer, TJvMailSlotClient, TJvScreenSaver, TJvJoystick, TJvSoundControl, TJvPerfStat95, TJvComputerInfoEx, TJvDebugHandler]); RegisterComponents(RsPaletteInternetWork, [TJvRas32, TJvCommStatus]); Property changes on: trunk/jvcl/examples/JvMailSlots ___________________________________________________________________ Added: tsvn:projectlanguage + 1033 Added: bugtraq:url + http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID% Added: bugtraq:message + (Mantis #%BUGID%) Added: tsvn:logminsize + 5 Added: bugtraq:logregex + [Mm]antis #?(\d+)(,? ?#?(\d+))+ (\d+) Added: trunk/jvcl/examples/JvMailSlots/FrmMain.dfm =================================================================== --- trunk/jvcl/examples/JvMailSlots/FrmMain.dfm (rev 0) +++ trunk/jvcl/examples/JvMailSlots/FrmMain.dfm 2008-11-02 22:23:34 UTC (rev 12024) @@ -0,0 +1,112 @@ +object FormMain: TFormMain + Left = 0 + Top = 0 + BorderStyle = bsSingle + Caption = 'JvMailSlots Demo' + ClientHeight = 115 + ClientWidth = 486 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object grpClient: TGroupBox + Left = 8 + Top = 8 + Width = 233 + Height = 65 + Caption = ' MailSlot Client ' + TabOrder = 0 + object edtClientText: TEdit + Left = 16 + Top = 28 + Width = 121 + Height = 21 + TabOrder = 0 + Text = 'Hallo World!' + end + object btnClientSendText: TButton + Left = 143 + Top = 26 + Width = 75 + Height = 25 + Caption = 'Send &Text' + TabOrder = 1 + OnClick = btnClientSendTextClick + end + end + object pnlBottom: TPanel + Left = 0 + Top = 78 + Width = 486 + Height = 37 + Align = alBottom + BevelOuter = bvNone + TabOrder = 1 + DesignSize = ( + 486 + 37) + object bvlSplitter: TBevel + Left = 0 + Top = 0 + Width = 486 + Height = 3 + Align = alTop + Shape = bsTopLine + end + object lblInfo: TLabel + Left = 8 + Top = 12 + Width = 189 + Height = 13 + Caption = 'Sending data can take some time' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object btnQuit: TButton + Left = 404 + Top = 7 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Quit' + TabOrder = 0 + OnClick = btnQuitClick + end + end + object grpServer: TGroupBox + Left = 247 + Top = 8 + Width = 234 + Height = 65 + Caption = ' MailSlot Server ' + TabOrder = 2 + object edtServerText: TEdit + Left = 16 + Top = 28 + Width = 207 + Height = 21 + TabOrder = 0 + end + end + object msServer: TJvMailSlotServer + MailSlotName = 'MailSlotDemo' + OnNewMessage = msServerNewMessage + Left = 448 + Top = 8 + end + object msClient: TJvMailSlotClient + MailSlotName = 'MailSlotDemo' + Left = 200 + end +end Added: trunk/jvcl/examples/JvMailSlots/FrmMain.pas =================================================================== --- trunk/jvcl/examples/JvMailSlots/FrmMain.pas (rev 0) +++ trunk/jvcl/examples/JvMailSlots/FrmMain.pas 2008-11-02 22:23:34 UTC (rev 12024) @@ -0,0 +1,59 @@ +unit FrmMain; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, JvMailslots, StdCtrls, JvComponentBase, ExtCtrls; + +type + TFormMain = class(TForm) + msServer: TJvMailSlotServer; + msClient: TJvMailSlotClient; + grpClient: TGroupBox; + edtClientText: TEdit; + btnClientSendText: TButton; + pnlBottom: TPanel; + bvlSplitter: TBevel; + btnQuit: TButton; + grpServer: TGroupBox; + edtServerText: TEdit; + lblInfo: TLabel; + procedure btnQuitClick(Sender: TObject); + procedure btnClientSendTextClick(Sender: TObject); + procedure msServerNewMessage(Sender: TObject; MessageText: string); + procedure FormCreate(Sender: TObject); + private + { Private-Deklarationen } + public + { Public-Deklarationen } + end; + +var + FormMain: TFormMain; + +implementation + +{$R *.dfm} + +procedure TFormMain.btnClientSendTextClick(Sender: TObject); +begin + msClient.Send(edtClientText.Text); +end; + +procedure TFormMain.btnQuitClick(Sender: TObject); +begin + Close; +end; + +procedure TFormMain.FormCreate(Sender: TObject); +begin + msServer.Open; +end; + +procedure TFormMain.msServerNewMessage(Sender: TObject; MessageText: string); +begin + edtServerText.Text := MessageText; +end; + +end. Added: trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dpr =================================================================== --- trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dpr (rev 0) +++ trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dpr 2008-11-02 22:23:34 UTC (rev 12024) @@ -0,0 +1,15 @@ +program JvMailSlotsDemo; + +uses + Forms, + FrmMain in 'FrmMain.pas' {FormMain}, + JvMailSlots in '..\..\run\JvMailSlots.pas'; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TFormMain, FormMain); + Application.Run; +end. Added: trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dproj =================================================================== --- trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dproj (rev 0) +++ trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.dproj 2008-11-02 22:23:34 UTC (rev 12024) @@ -0,0 +1,107 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{BF17A318-202C-4F7F-A66D-4B6EBE14C941}</ProjectGuid> + <ProjectVersion>12.0</ProjectVersion> + <MainSource>JvMailSlotsDemo.dpr</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Basis' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>JvMailSlotsDemo.exe</DCC_DependencyCheckOutputName> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Platform>x86</DCC_Platform> + <DCC_E>false</DCC_E> + <DCC_N>false</DCC_N> + <DCC_S>false</DCC_S> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="JvMailSlotsDemo.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="FrmMain.pas"> + <Form>FormMain</Form> + </DCCReference> + <DCCReference Include="..\..\run\JvMailSlots.pas"/> + <BuildConfiguration Include="Basis"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType/> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">JvMailSlotsDemo.dpr</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1031</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Added: trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.res =================================================================== (Binary files differ) Property changes on: trunk/jvcl/examples/JvMailSlots/JvMailSlotsDemo.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/jvcl/images/JvGlobusReg.rc =================================================================== --- trunk/jvcl/images/JvGlobusReg.rc 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/images/JvGlobusReg.rc 2008-11-02 22:23:34 UTC (rev 12024) @@ -29,8 +29,6 @@ TJVGLISTBOX BITMAP "TJVGLISTBOX.BMP" TJVGCHECKLISTBOX BITMAP "TJVGCHECKLISTBOX.BMP" TJVGLOGICPRODUCER BITMAP "TJVGLOGICPRODUCER.BMP" -TJVGMAILSLOTCLIENT BITMAP "TJVGMAILSLOTCLIENT.BMP" -TJVGMAILSLOTSERVER BITMAP "TJVGMAILSLOTSERVER.BMP" TJVGMYQRPREVIEW BITMAP "TJVGMYQRPREVIEW.BMP" TJVGPAGECONTROL BITMAP "TJVGPAGECONTROL.BMP" TJVGPRINTCROSSTABLE BITMAP "TJVGPRINTCROSSTABLE.BMP" Modified: trunk/jvcl/images/JvSystemReg.rc =================================================================== --- trunk/jvcl/images/JvSystemReg.rc 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/images/JvSystemReg.rc 2008-11-02 22:23:34 UTC (rev 12024) @@ -41,4 +41,6 @@ TJVDEBUGHANDLER BITMAP "TJVDEBUGHANDLER.BMP" TJVAPPCOMMAND BITMAP "TJVAPPCOMMAND.BMP" TJVSCREENSAVESUPPRESSOR BITMAP "TJVSCREENSAVESUPPRESSOR.BMP" -TJVSYSREQUIREMENTS BITMAP "TJVSYSREQUIREMENTS.BMP" \ No newline at end of file +TJVSYSREQUIREMENTS BITMAP "TJVSYSREQUIREMENTS.BMP" +TJVMAILSLOTCLIENT BITMAP "TJVMAILSLOTCLIENT.BMP" +TJVMAILSLOTSERVER BITMAP "TJVMAILSLOTSERVER.BMP" Deleted: trunk/jvcl/images/TJVGMAILSLOTCLIENT.BMP =================================================================== (Binary files differ) Deleted: trunk/jvcl/images/TJVGMAILSLOTSERVER.BMP =================================================================== (Binary files differ) Copied: trunk/jvcl/images/TJVMAILSLOTCLIENT.BMP (from rev 12011, trunk/jvcl/images/TJVGMAILSLOTCLIENT.BMP) =================================================================== (Binary files differ) Property changes on: trunk/jvcl/images/TJVMAILSLOTCLIENT.BMP ___________________________________________________________________ Added: svn:mime-type + image/bmp Added: svn:mergeinfo + Copied: trunk/jvcl/images/TJVMAILSLOTSERVER.BMP (from rev 12011, trunk/jvcl/images/TJVGMAILSLOTSERVER.BMP) =================================================================== (Binary files differ) Property changes on: trunk/jvcl/images/TJVMAILSLOTSERVER.BMP ___________________________________________________________________ Added: svn:mime-type + image/bmp Added: svn:mergeinfo + Modified: trunk/jvcl/packages/c5/JvGlobusC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/JvGlobusC5R.bpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5/JvGlobusC5R.bpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 21-02-2007 14:20:01 UTC + Last generated: 02-11-2008 22:15:17 UTC ***************************************************************************** --> <PROJECT> @@ -59,7 +59,6 @@ ..\..\lib\c5\JvgLanguageLoader.obj ..\..\lib\c5\JvgListBox.obj ..\..\lib\c5\JvgLogics.obj - ..\..\lib\c5\JvgMailSlots.obj ..\..\lib\c5\JvgPage.obj ..\..\lib\c5\JvgProgress.obj ..\..\lib\c5\JvgReport.obj Modified: trunk/jvcl/packages/c5/JvGlobusC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/JvGlobusC5R.cpp 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5/JvGlobusC5R.cpp 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:09 UTC + Last generated: 02-11-2008 22:15:17 UTC ----------------------------------------------------------------------------- */ @@ -56,7 +56,6 @@ USEUNIT("..\..\run\JvgLanguageLoader.pas"); USEUNIT("..\..\run\JvgListBox.pas"); USEUNIT("..\..\run\JvgLogics.pas"); -USEUNIT("..\..\run\JvgMailSlots.pas"); USEUNIT("..\..\run\JvgPage.pas"); USEUNIT("..\..\run\JvgProgress.pas"); USEUNIT("..\..\run\JvgReport.pas"); Modified: trunk/jvcl/packages/c5/JvGlobusC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/JvGlobusC5R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5/JvGlobusC5R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:10 UTC + Last generated: 02-11-2008 22:15:17 UTC ----------------------------------------------------------------------------- } @@ -93,7 +93,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/c5/JvSystemC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/JvSystemC5R.bpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5/JvSystemC5R.bpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 02-11-2008 22:15:17 UTC ***************************************************************************** --> <PROJECT> @@ -56,6 +56,7 @@ ..\..\lib\c5\JvAppCommand.obj ..\..\lib\c5\JvScreenSaveSuppress.obj ..\..\lib\c5\JvSysRequirements.obj + ..\..\lib\c5\JvMailSlots.obj "/> <RESFILES value="JvSystemC5R.res"/> <IDLFILES value=""/> Modified: trunk/jvcl/packages/c5/JvSystemC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/JvSystemC5R.cpp 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5/JvSystemC5R.cpp 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 02-11-2008 22:15:17 UTC ----------------------------------------------------------------------------- */ @@ -53,6 +53,7 @@ USEUNIT("..\..\run\JvAppCommand.pas"); USEUNIT("..\..\run\JvScreenSaveSuppress.pas"); USEUNIT("..\..\run\JvSysRequirements.pas"); +USEUNIT("..\..\run\JvMailSlots.pas"); USEPACKAGE("JvCoreC5R.bpi"); USEPACKAGE("JclC50.bpi"); USEPACKAGE("vcl50.bpi"); Modified: trunk/jvcl/packages/c5/JvSystemC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/JvSystemC5R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5/JvSystemC5R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 02-11-2008 22:15:17 UTC ----------------------------------------------------------------------------- } @@ -86,7 +86,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/c5std/JvGlobusC5R.bpk =================================================================== --- trunk/jvcl/packages/c5std/JvGlobusC5R.bpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5std/JvGlobusC5R.bpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 21-02-2007 14:20:01 UTC + Last generated: 02-11-2008 22:15:17 UTC ***************************************************************************** --> <PROJECT> @@ -54,7 +54,6 @@ ..\..\lib\c5\JvgLanguageLoader.obj ..\..\lib\c5\JvgListBox.obj ..\..\lib\c5\JvgLogics.obj - ..\..\lib\c5\JvgMailSlots.obj ..\..\lib\c5\JvgPage.obj ..\..\lib\c5\JvgProgress.obj ..\..\lib\c5\JvgReport.obj @@ -73,6 +72,7 @@ <SPARELIBS value=""/> <PACKAGES value=" JvCoreC5R.bpi + JvSystemC5R.bpi JclC50.bpi vcl50.bpi vclx50.bpi Modified: trunk/jvcl/packages/c5std/JvGlobusC5R.cpp =================================================================== --- trunk/jvcl/packages/c5std/JvGlobusC5R.cpp 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5std/JvGlobusC5R.cpp 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:09 UTC + Last generated: 02-11-2008 22:15:17 UTC ----------------------------------------------------------------------------- */ @@ -51,13 +51,13 @@ USEUNIT("..\..\run\JvgLanguageLoader.pas"); USEUNIT("..\..\run\JvgListBox.pas"); USEUNIT("..\..\run\JvgLogics.pas"); -USEUNIT("..\..\run\JvgMailSlots.pas"); USEUNIT("..\..\run\JvgPage.pas"); USEUNIT("..\..\run\JvgProgress.pas"); USEUNIT("..\..\run\JvgReport.pas"); USEUNIT("..\..\run\JvgXMLSerializer.pas"); USEUNIT("..\..\run\JvgFixFont.pas"); USEPACKAGE("JvCoreC5R.bpi"); +USEPACKAGE("JvSystemC5R.bpi"); USEPACKAGE("JclC50.bpi"); USEPACKAGE("vcl50.bpi"); USEPACKAGE("vclx50.bpi"); Modified: trunk/jvcl/packages/c5std/JvGlobusC5R.dpk =================================================================== --- trunk/jvcl/packages/c5std/JvGlobusC5R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c5std/JvGlobusC5R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:10 UTC + Last generated: 02-11-2008 22:15:17 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ requires JvCoreC5R, + JvSystemC5R, JclC50, vcl50, vclx50, @@ -87,7 +88,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/c6/JvGlobusC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvGlobusC6R.bpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c6/JvGlobusC6R.bpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 21-02-2007 14:13:44 UTC + Last generated: 02-11-2008 22:15:18 UTC ***************************************************************************** --> <PROJECT> @@ -59,7 +59,6 @@ ..\..\lib\c6\JvgLanguageLoader.obj ..\..\lib\c6\JvgListBox.obj ..\..\lib\c6\JvgLogics.obj - ..\..\lib\c6\JvgMailSlots.obj ..\..\lib\c6\JvgPage.obj ..\..\lib\c6\JvgProgress.obj ..\..\lib\c6\JvgReport.obj @@ -184,7 +183,6 @@ <FILE FILENAME="..\..\run\JvgLanguageLoader.pas" FORMNAME="" UNITNAME="JvgLanguageLoader" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgListBox.pas" FORMNAME="" UNITNAME="JvgListBox" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgLogics.pas" FORMNAME="" UNITNAME="JvgLogics" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\run\JvgMailSlots.pas" FORMNAME="" UNITNAME="JvgMailSlots" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgPage.pas" FORMNAME="" UNITNAME="JvgPage" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgProgress.pas" FORMNAME="" UNITNAME="JvgProgress" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgReport.pas" FORMNAME="" UNITNAME="JvgReport" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jvcl/packages/c6/JvGlobusC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvGlobusC6R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c6/JvGlobusC6R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:13 UTC + Last generated: 02-11-2008 22:15:18 UTC ----------------------------------------------------------------------------- } @@ -95,7 +95,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/c6/JvSystemC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvSystemC6R.bpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c6/JvSystemC6R.bpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 02-11-2008 22:15:18 UTC ***************************************************************************** --> <PROJECT> @@ -56,6 +56,7 @@ ..\..\lib\c6\JvAppCommand.obj ..\..\lib\c6\JvScreenSaveSuppress.obj ..\..\lib\c6\JvSysRequirements.obj + ..\..\lib\c6\JvMailSlots.obj "/> <RESFILES value="JvSystemC6R.res"/> <IDLFILES value=""/> @@ -166,6 +167,7 @@ <FILE FILENAME="..\..\run\JvAppCommand.pas" FORMNAME="" UNITNAME="JvAppCommand" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvScreenSaveSuppress.pas" FORMNAME="" UNITNAME="JvScreenSaveSuppress" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvSysRequirements.pas" FORMNAME="" UNITNAME="JvSysRequirements" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvMailSlots.pas" FORMNAME="" UNITNAME="JvMailSlots" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jvcl/packages/c6/JvSystemC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvSystemC6R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c6/JvSystemC6R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:16 UTC + Last generated: 02-11-2008 22:15:18 UTC ----------------------------------------------------------------------------- } @@ -87,7 +87,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/c6per/JvGlobusC6R.bpk =================================================================== --- trunk/jvcl/packages/c6per/JvGlobusC6R.bpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c6per/JvGlobusC6R.bpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 21-02-2007 14:13:44 UTC + Last generated: 02-11-2008 22:15:18 UTC ***************************************************************************** --> <PROJECT> @@ -54,7 +54,6 @@ ..\..\lib\c6\JvgLanguageLoader.obj ..\..\lib\c6\JvgListBox.obj ..\..\lib\c6\JvgLogics.obj - ..\..\lib\c6\JvgMailSlots.obj ..\..\lib\c6\JvgPage.obj ..\..\lib\c6\JvgProgress.obj ..\..\lib\c6\JvgReport.obj @@ -73,6 +72,7 @@ <SPARELIBS value=""/> <PACKAGES value=" JvCoreC6R.bpi + JvSystemC6R.bpi Jcl.bpi rtl.bpi vcl.bpi @@ -122,6 +122,7 @@ <FILE FILENAME="JvGlobusC6R.res" FORMNAME="" UNITNAME="JvGlobusC6R.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="JvGlobusC6R.cpp" FORMNAME="" UNITNAME="JvGlobusC6R" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="JvCoreC6R.bpi" FORMNAME="" UNITNAME="JvCoreC6R" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="JvSystemC6R.bpi" FORMNAME="" UNITNAME="JvSystemC6R" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="Jcl.bpi" FORMNAME="" UNITNAME="Jcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="rtl.bpi" FORMNAME="" UNITNAME="rtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="vcl.bpi" FORMNAME="" UNITNAME="vcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> @@ -167,7 +168,6 @@ <FILE FILENAME="..\..\run\JvgLanguageLoader.pas" FORMNAME="" UNITNAME="JvgLanguageLoader" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgListBox.pas" FORMNAME="" UNITNAME="JvgListBox" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgLogics.pas" FORMNAME="" UNITNAME="JvgLogics" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\run\JvgMailSlots.pas" FORMNAME="" UNITNAME="JvgMailSlots" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgPage.pas" FORMNAME="" UNITNAME="JvgPage" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgProgress.pas" FORMNAME="" UNITNAME="JvgProgress" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvgReport.pas" FORMNAME="" UNITNAME="JvgReport" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jvcl/packages/c6per/JvGlobusC6R.dpk =================================================================== --- trunk/jvcl/packages/c6per/JvGlobusC6R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/c6per/JvGlobusC6R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:13 UTC + Last generated: 02-11-2008 22:15:18 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ requires JvCoreC6R, + JvSystemC6R, Jcl, rtl, vcl, @@ -88,7 +89,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d10/JvGlobusD10R.dpk =================================================================== --- trunk/jvcl/packages/d10/JvGlobusD10R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d10/JvGlobusD10R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:15 UTC + Last generated: 02-11-2008 21:50:09 UTC ----------------------------------------------------------------------------- } @@ -95,7 +95,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d10/JvSystemD10R.dpk =================================================================== --- trunk/jvcl/packages/d10/JvSystemD10R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d10/JvSystemD10R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 02-11-2008 21:50:09 UTC ----------------------------------------------------------------------------- } @@ -87,7 +87,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/d10per/JvGlobusD10R.dpk =================================================================== --- trunk/jvcl/packages/d10per/JvGlobusD10R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d10per/JvGlobusD10R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:15 UTC + Last generated: 02-11-2008 22:15:18 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ requires JvCoreD10R, + JvSystemD10R, Jcl, rtl, vcl, @@ -88,7 +89,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d11/JvGlobusD11R.dpk =================================================================== --- trunk/jvcl/packages/d11/JvGlobusD11R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d11/JvGlobusD11R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 15-04-2007 11:00:14 UTC + Last generated: 02-11-2008 21:50:50 UTC ----------------------------------------------------------------------------- } @@ -95,7 +95,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d11/JvSystemD11R.dpk =================================================================== --- trunk/jvcl/packages/d11/JvSystemD11R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d11/JvSystemD11R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 02-11-2008 21:50:50 UTC ----------------------------------------------------------------------------- } @@ -87,7 +87,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/d12/JvGlobusD12R.dpk =================================================================== --- trunk/jvcl/packages/d12/JvGlobusD12R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d12/JvGlobusD12R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-08-2008 16:26:51 UTC + Last generated: 02-11-2008 21:52:24 UTC ----------------------------------------------------------------------------- } @@ -95,7 +95,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d12/JvSystemD12R.dpk =================================================================== --- trunk/jvcl/packages/d12/JvSystemD12R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d12/JvSystemD12R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 05-08-2008 16:26:52 UTC + Last generated: 02-11-2008 21:52:24 UTC ----------------------------------------------------------------------------- } @@ -87,7 +87,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/d5/JvGlobusD5R.dpk =================================================================== --- trunk/jvcl/packages/d5/JvGlobusD5R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d5/JvGlobusD5R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:17 UTC + Last generated: 02-11-2008 21:40:56 UTC ----------------------------------------------------------------------------- } @@ -93,7 +93,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d5/JvSystemD5R.dpk =================================================================== --- trunk/jvcl/packages/d5/JvSystemD5R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d5/JvSystemD5R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 02-11-2008 21:40:56 UTC ----------------------------------------------------------------------------- } @@ -86,7 +86,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/d5std/JvGlobusD5R.dpk =================================================================== --- trunk/jvcl/packages/d5std/JvGlobusD5R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d5std/JvGlobusD5R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:17 UTC + Last generated: 02-11-2008 22:15:18 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ requires JvCoreD5R, + JvSystemD5R, JclD50, vcl50, vclx50, @@ -87,7 +88,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d6/JvGlobusD6R.dpk =================================================================== --- trunk/jvcl/packages/d6/JvGlobusD6R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d6/JvGlobusD6R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:19 UTC + Last generated: 02-11-2008 21:48:56 UTC ----------------------------------------------------------------------------- } @@ -95,7 +95,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d6/JvSystemD6R.dpk =================================================================== --- trunk/jvcl/packages/d6/JvSystemD6R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d6/JvSystemD6R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:17 UTC + Last generated: 02-11-2008 21:48:56 UTC ----------------------------------------------------------------------------- } @@ -87,7 +87,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/d6per/JvGlobusD6R.dpk =================================================================== --- trunk/jvcl/packages/d6per/JvGlobusD6R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d6per/JvGlobusD6R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:19 UTC + Last generated: 02-11-2008 22:15:18 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ requires JvCoreD6R, + JvSystemD6R, Jcl, rtl, vcl, @@ -88,7 +89,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d7/JvGlobusD7R.dpk =================================================================== --- trunk/jvcl/packages/d7/JvGlobusD7R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d7/JvGlobusD7R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:20 UTC + Last generated: 02-11-2008 21:49:31 UTC ----------------------------------------------------------------------------- } @@ -95,7 +95,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d7/JvSystemD7R.dpk =================================================================== --- trunk/jvcl/packages/d7/JvSystemD7R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d7/JvSystemD7R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:18 UTC + Last generated: 02-11-2008 21:49:31 UTC ----------------------------------------------------------------------------- } @@ -87,7 +87,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/d7per/JvGlobusD7R.dpk =================================================================== --- trunk/jvcl/packages/d7per/JvGlobusD7R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d7per/JvGlobusD7R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:20 UTC + Last generated: 02-11-2008 22:15:18 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ requires JvCoreD7R, + JvSystemD7R, Jcl, rtl, vcl, @@ -88,7 +89,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d9/JvGlobusD9R.dpk =================================================================== --- trunk/jvcl/packages/d9/JvGlobusD9R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d9/JvGlobusD9R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:23 UTC + Last generated: 02-11-2008 22:15:19 UTC ----------------------------------------------------------------------------- } @@ -95,7 +95,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/d9/JvSystemD9R.dpk =================================================================== --- trunk/jvcl/packages/d9/JvSystemD9R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d9/JvSystemD9R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvSystem-R.xml) - Last generated: 17-07-2008 16:01:18 UTC + Last generated: 02-11-2008 22:15:19 UTC ----------------------------------------------------------------------------- } @@ -87,7 +87,8 @@ JvComputerInfoEx in '..\..\run\JvComputerInfoEx.pas' , JvAppCommand in '..\..\run\JvAppCommand.pas' , JvScreenSaveSuppress in '..\..\run\JvScreenSaveSuppress.pas' , - JvSysRequirements in '..\..\run\JvSysRequirements.pas' + JvSysRequirements in '..\..\run\JvSysRequirements.pas' , + JvMailSlots in '..\..\run\JvMailSlots.pas' ; end. Modified: trunk/jvcl/packages/d9per/JvGlobusD9R.dpk =================================================================== --- trunk/jvcl/packages/d9per/JvGlobusD9R.dpk 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/d9per/JvGlobusD9R.dpk 2008-11-02 22:23:34 UTC (rev 12024) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvGlobus-R.xml) - Last generated: 05-12-2006 08:07:23 UTC + Last generated: 02-11-2008 22:15:19 UTC ----------------------------------------------------------------------------- } @@ -40,6 +40,7 @@ requires JvCoreD9R, + JvSystemD9R, Jcl, rtl, vcl, @@ -88,7 +89,6 @@ JvgLanguageLoader in '..\..\run\JvgLanguageLoader.pas' , JvgListBox in '..\..\run\JvgListBox.pas' , JvgLogics in '..\..\run\JvgLogics.pas' , - JvgMailSlots in '..\..\run\JvgMailSlots.pas' , JvgPage in '..\..\run\JvgPage.pas' , JvgProgress in '..\..\run\JvgProgress.pas' , JvgReport in '..\..\run\JvgReport.pas' , Modified: trunk/jvcl/packages/xml/JvGlobus-R.xml =================================================================== --- trunk/jvcl/packages/xml/JvGlobus-R.xml 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/xml/JvGlobus-R.xml 2008-11-02 22:23:34 UTC (rev 12024) @@ -13,7 +13,7 @@ <BuildNumber>0</BuildNumber> <Requires> <Package Name="JvCore-R" Targets="VCL" Condition=""/> - <Package Name="JvSystem-R" Targets="DB" Condition=""/> + <Package Name="JvSystem-R" Targets="VCL" Condition=""/> <Package Name="JclD50" Targets="Dv5" Condition=""/> <Package Name="JclC50" Targets="Cv5" Condition=""/> <Package Name="Jcl" Targets="allv6up" Condition=""/> @@ -86,7 +86,6 @@ <File Name="..\..\run\JvgLanguageLoader.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvgListBox.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvgLogics.pas" Targets="VCL" Formname="" Condition=""/> - <File Name="..\..\run\JvgMailSlots.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvgPage.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvgProgress.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvgQPrintPreviewForm.pas" Targets="DB" Formname="JvgfPrintPreview" Condition="JVCL_UseQuickReport"/> Modified: trunk/jvcl/packages/xml/JvSystem-R.xml =================================================================== --- trunk/jvcl/packages/xml/JvSystem-R.xml 2008-11-02 21:14:20 UTC (rev 12023) +++ trunk/jvcl/packages/xml/JvSystem-R.xml 2008-11-02 22:23:34 UTC (rev 12024) @@ -68,5 +68,6 @@ <File Name="..\..\run\JvAppCommand.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvScreenSaveSuppress.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvSysRequirements.pas" Targets="VCL" Formname="" Condition=""/> + <File Name="..\..\run\JvMailSlots.pas" Targets="VCL" Formname="" Condition=""/> </Contains> </Package> Modified: trunk/jvcl/resources/JvGlobusReg.dcr =================================================================== (Binary files differ) Modified: trunk/jvcl/resources/JvSystemReg.dcr =================================================================== (Binary files differ) Modified: trunk/jvcl/resources/JvXPCore.res =================================================================== (Binary files differ) Copied: trunk/jvcl/run/JvMailSlots.pas (from rev 12011, trunk/jvcl/run/JvgMailSlots.pas) =================================================================== --- trunk/jvcl/run/JvMailSlots.pas (rev 0) +++ trunk/jvcl/run/JvMailSlots.pas 2008-11-02 22:23:34 UTC (rev 12024) @@ -0,0 +1,266 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JvgMailSlots.PAS, released on 2003-01-15. + +The Initial Developer of the Original Code is Andrey V. Chudin, [chudin att yandex dott ru] +Portions created by Andrey V. Chudin are Copyright (C) 2003 Andrey V. Chudin. +All Rights Reserved. + +Contributor(s): +Michael Beck [mbeck att bigfoot dott com]. +Burov Dmitry, translation of russian text. + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net + +Known Issues: +Delivery network messages longer then 424 bytes requires installation of +NetBEUI protocol. There is no direct support of this old protocol in XP +but driver is available for manual installation (search for 'NetBEUI' on +www.microsoft.com). Delivery network messages longer then 1365 bytes can be +problem too (if it's possible at all). +-----------------------------------------------------------------------------} +// $Id$ + +unit JvMailSlots; + +{$I jvcl.inc} + +interface + +uses + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + Windows, Messages, SysUtils, Classes, Graphics, + Controls, Forms, Dialogs, ExtCtrls, + JvComponentBase; + +type + TOnNewMessage = procedure(Sender: TObject; MessageText: string) of object; + + TJvMailSlotServer = class(TJvComponent) + private + FMailSlotName: string; + FLastMessage: string; + FOnNewMessage: TOnNewMessage; + FOnError: TNotifyEvent; + FTimer: TTimer; + FDeliveryCheckInterval: Integer; + FHandle: THandle; + FData: TMemoryStream; + procedure SetMailSlotName(const SlotName: string); + procedure SetDeliveryCheckInterval(Value: Integer); + procedure OnTimer(Sender: TObject); + function GetMessageDataPointer: Pointer; + function GetMessageLength: LongWord; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Open; + procedure Close; + // Message as binary data: + property MessageData: Pointer read GetMessageDataPointer; + property MessageLength: LongWord read GetMessageLength; + published + property MailSlotName: string read FMailSlotName write SetMailSlotName; + property DeliveryCheckInterval: Integer read FDeliveryCheckInterval write SetDeliveryCheckInterval default 1000; + property OnN... [truncated message content] |
From: <ah...@us...> - 2008-11-03 22:47:27
|
Revision: 12032 http://jvcl.svn.sourceforge.net/jvcl/?rev=12032&view=rev Author: ahuser Date: 2008-11-03 22:47:18 +0000 (Mon, 03 Nov 2008) Log Message: ----------- - Removed Jv3rd-R package, file(s) moved to JvCore-R - Added JVCLInstallStarter as workaround for Vista's behavior that sends the Installer to the back instead of the front. - Added default jvcld12.inc - Added SVN properties to lib\d12, lib\d12\debug - Installer now allows to compile even if the packages are loaded - Installer now allows to delete removed package/unit before the compilation - Removed CLX support from the installer - Compile dialog now stays on top of the main form Modified Paths: -------------- trunk/jvcl/install/JVCLInstall/Compile.pas trunk/jvcl/install/JVCLInstall/Frames/FrmInstall.pas trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.dfm trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.pas trunk/jvcl/install/JVCLInstall/InstallerConsts.pas trunk/jvcl/install/JVCLInstall/Intf.pas trunk/jvcl/install/JVCLInstall/JVCLData.pas trunk/jvcl/install/JVCLInstall/PackageUtils.pas trunk/jvcl/install/JVCLInstall/Pages/PgSummary.pas trunk/jvcl/install.bat trunk/jvcl/packages/c5/JvCoreC5R.bpk trunk/jvcl/packages/c5/JvCoreC5R.cpp trunk/jvcl/packages/c5/JvCoreC5R.dpk trunk/jvcl/packages/c5std/JvCoreC5R.bpk trunk/jvcl/packages/c5std/JvCoreC5R.cpp trunk/jvcl/packages/c5std/JvCoreC5R.dpk trunk/jvcl/packages/c6/JvCoreC6R.bpk trunk/jvcl/packages/c6/JvCoreC6R.dpk trunk/jvcl/packages/c6per/JvCoreC6R.bpk trunk/jvcl/packages/c6per/JvCoreC6R.dpk trunk/jvcl/packages/d10/JvCoreD10R.dpk trunk/jvcl/packages/d10per/JvCoreD10R.dpk trunk/jvcl/packages/d11/JvCoreD11R.dpk trunk/jvcl/packages/d12/JvCoreD12R.dpk trunk/jvcl/packages/d5/JvCoreD5R.dpk trunk/jvcl/packages/d5std/JvCoreD5R.dpk trunk/jvcl/packages/d6/JvCoreD6R.dpk trunk/jvcl/packages/d6per/JvCoreD6R.dpk trunk/jvcl/packages/d7/JvCoreD7R.dpk trunk/jvcl/packages/d7per/JvCoreD7R.dpk trunk/jvcl/packages/d9/JvCoreD9R.dpk trunk/jvcl/packages/d9per/JvCoreD9R.dpk trunk/jvcl/packages/xml/JvCore-R.xml Added Paths: ----------- trunk/jvcl/common/jvcld12.inc Removed Paths: ------------- trunk/jvcl/packages/c5/Jv3rdC5R.bpk trunk/jvcl/packages/c5/Jv3rdC5R.cpp trunk/jvcl/packages/c5/Jv3rdC5R.dpk trunk/jvcl/packages/c5/Jv3rdC5R.rc trunk/jvcl/packages/c5/Jv3rdC5R.res trunk/jvcl/packages/c6/Jv3rdC6R.bpk trunk/jvcl/packages/c6/Jv3rdC6R.cpp trunk/jvcl/packages/c6/Jv3rdC6R.dpk trunk/jvcl/packages/c6/Jv3rdC6R.rc trunk/jvcl/packages/c6/Jv3rdC6R.res trunk/jvcl/packages/d10/Jv3rdD10R.bdsproj trunk/jvcl/packages/d10/Jv3rdD10R.dof trunk/jvcl/packages/d10/Jv3rdD10R.dpk trunk/jvcl/packages/d10/Jv3rdD10R.rc trunk/jvcl/packages/d10/Jv3rdD10R.res trunk/jvcl/packages/d11/Jv3rdD11R.dpk trunk/jvcl/packages/d11/Jv3rdD11R.dproj trunk/jvcl/packages/d11/Jv3rdD11R.rc trunk/jvcl/packages/d11/Jv3rdD11R.res trunk/jvcl/packages/d12/Jv3rdD12R.dpk trunk/jvcl/packages/d12/Jv3rdD12R.dproj trunk/jvcl/packages/d12/Jv3rdD12R.rc trunk/jvcl/packages/d12/Jv3rdD12R.res trunk/jvcl/packages/d5/Jv3rdD5R.dof trunk/jvcl/packages/d5/Jv3rdD5R.dpk trunk/jvcl/packages/d5/Jv3rdD5R.rc trunk/jvcl/packages/d5/Jv3rdD5R.res trunk/jvcl/packages/d6/Jv3rdD6R.dof trunk/jvcl/packages/d6/Jv3rdD6R.dpk trunk/jvcl/packages/d6/Jv3rdD6R.rc trunk/jvcl/packages/d6/Jv3rdD6R.res trunk/jvcl/packages/d7/Jv3rdD7R.dof trunk/jvcl/packages/d7/Jv3rdD7R.dpk trunk/jvcl/packages/d7/Jv3rdD7R.rc trunk/jvcl/packages/d7/Jv3rdD7R.res trunk/jvcl/packages/d9/Jv3rdD9R.bdsproj trunk/jvcl/packages/d9/Jv3rdD9R.dof trunk/jvcl/packages/d9/Jv3rdD9R.dpk trunk/jvcl/packages/d9/Jv3rdD9R.rc trunk/jvcl/packages/d9/Jv3rdD9R.res trunk/jvcl/packages/xml/Jv3rd-R.xml Property Changed: ---------------- trunk/jvcl/lib/d12/ trunk/jvcl/lib/d12/debug/ Added: trunk/jvcl/common/jvcld12.inc =================================================================== --- trunk/jvcl/common/jvcld12.inc (rev 0) +++ trunk/jvcl/common/jvcld12.inc 2008-11-03 22:47:18 UTC (rev 12032) @@ -0,0 +1,152 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JVCL.INC, released on 2004-12-22. + +Last Modified: 2004-12-22 + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net + +Known Issues: +-----------------------------------------------------------------------------} + +{------------------------------------------------------------------------------} +{ This file contains the default JVCL configuration. } +{------------------------------------------------------------------------------} + +{%hidden%} +{ Activate this define if you are using Delphi 5 Standard or one of the D6/D7 Personal Editions. } +{.$DEFINE DelphiPersonalEdition} + +{ Some new libraries and packages (currently JvUIB, JvWizard and JvTimeFrameWork) can be +installed either in "stand-alone" mode or in "JVCL" mode. These packages use the +USEJVCL define to determine whether they are installed in JVCL mode or not. +By default, this define is enabled. +NOTE: if you undefine USEJVCL, you can/should remove JvCoreXXX.dcp from the +requires node in the affected package(s). } +{$DEFINE USEJVCL} + +{ Enable this define if you have the dxgettext (http://dxgettext.sourceforge.net) +translation tool installed and want to use it with the JVCL. } +{.$DEFINE USE_DXGETTEXT} + +{ Enable this define if you use/have QuickReport } +{.$DEFINE JVCL_UseQuickReport} + +{ Enable this define if you have QReport 4 installed. This will require qr4rund7 instead +of qrpt. NB! JVCL_UseQuickReport must also be defined} +{.$DEFINE QREPORT4} + +{ Enable this define if you have installed the Internet Components with the Delphi installer } +{.$DEFINE INTERNET_COMPONENTS} + +{ Activate this define if you have Mike Lischke's Theme Manager +(http://www.lischke-online.de) installed and available and +you are using D6/BCB6 or below. The ThemeManager package must +be compiled as "never-build package". } +{$DEFINE JVCLThemesEnabled} + +{ Activates MIDAS components (DBRemoteLogin). +NOTE: if you activate this, you must also manually add JvDlgsXXX.dcp to +the requires node of JvDBXXX.bpk !!! } +{.$DEFINE Jv_MIDAS} + +{ This define enables GIF image support. Deactivate this define +if you are using another GIF image support library. } +{$DEFINE USE_JV_GIF} + +{ Activate this define if you do not want to use TGauge Borland sample +component in TDBProgress component and FileUtil routines. In this case +TProgressBar component will be used. } +{$DEFINE USE_PROGRESSBAR} + +{ This define controls whether FourDigitYear variable is used to control +date format in TDateEdit, TDBDateEdit components. When this define is not +active the ShortDateFormat variable is used instead. } +{$DEFINE USE_FOUR_DIGIT_YEAR} + +{ This define controls whether a popup calendar is used as default +instead of a modal dialog in TDateEdit, TDBDateEdit components. } +{$DEFINE DEFAULT_POPUP_CALENDAR} + +{ This define controls whether JvInterpreter handles +OLE automation calls (for VCL only). } +{$DEFINE JvInterpreter_OLEAUTO} + +{ Used by JvTimeFrameWork, see JvTFDays.pas for more info on time blocks. } +{$DEFINE Jv_TIMEBLOCKS} + +{ This activates the unit versioning system where each JVCL unit gets a record that defines +which revision, date and filename the unit has. } +{.$DEFINE UNITVERSIONING} + +// ********************************************************************* +// Start Definition of Third Party Components +// ********************************************************************* + +{ Activates SM-Export Wrapper Components (in DBActions) +For further informations have a look at http://www.scalabium.com +ATTENTION : +BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE +SMEXPORT PACKAGE FROM AUTOMATIC COMPILE NO MANUAL COMPILE } +{.$DEFINE USE_3RDPARTY_SMEXPORT} + +{ Activates SM-Import Wrapper Components (in DBActions) +For further informations have a look at http://www.scalabium.com +ATTENTION : +BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE +SMIMPORT PACKAGE FROM AUTOMATIC COMPILE NO MANUAL COMPILE } +{.$DEFINE USE_3RDPARTY_SMIMPORT} + +{ Activates Support for the DevExpress cxEditor-Controls +For further informations have a look at http://www.devexpress.com } +{.$DEFINE USE_3RDPARTY_DEVEXPRESS_CXEDITOR} + +{ Activates Support for the DevExpress cxGrid-Controls +For further informations have a look at http://www.devexpress.com } +{.$DEFINE USE_3RDPARTY_DEVEXPRESS_CXGRID} + +{ Activates Support for the DevExpress cxVerticalGrid-Controls +For further informations have a look at http://www.devexpress.com } +{.$DEFINE USE_3RDPARTY_DEVEXPRESS_CXVERTICALGRID} + +{ Activates Support for the DevExpress cxPivotGrid-Controls +For further informations have a look at http://www.devexpress.com } +{.$DEFINE USE_3RDPARTY_DEVEXPRESS_CXPIVOTGRID} + +{ Activates Support for the DevExpress cxTreeList-Controls +For further informations have a look at http://www.devexpress.com } +{.$DEFINE USE_3RDPARTY_DEVEXPRESS_CXTREELIST} + +{ Activates the Internet Direct (Indy)-Components +For further informations have a look at http://www.indyproject.org } +{.$DEFINE USE_3RDPARTY_INDY} + +{ Activates the Internet Direct (Indy)-Components version 10. +You MUST also activate $DEFINE USE_3RDPARTY_INDY for the compilation to work +For further informations have a look at http://www.indyproject.org } +{.$DEFINE USE_3RDPARTY_INDY10} + +{ Activates Support for the ICS-Components (Internet component suite +For further informations have a look at http://www.overbyte.be/ +ATTENTION : +BEFORE YOU ACTIVATE THIS OPTION YOU MUST CHANGE THE +ICS* PACKAGE FROM AUTOMATIC COMPILE TO MANUAL COMPILE } +{.$DEFINE USE_3RDPARTY_ICS} + +{ Activates Support for Direct Oracle Access Components +For further informations have a look at http://www.allroundautomations.com } +{.$DEFINE USE_3RDPARTY_DOA} + +{ Activates Support for the CoreLabs VCL Oracle Data Access Components +For further informations have a look at http://www.crlab.com } +{.$DEFINE USE_3RDPARTY_CORELAB_ODAC} + Modified: trunk/jvcl/install/JVCLInstall/Compile.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Compile.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/Compile.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -34,7 +34,8 @@ uses Windows, SysUtils, Classes, CapExec, JVCLData, DelphiData, GenerateUtils, PackageUtils, Intf, PackageInformation, ConditionParser, - JclBase, JvVCL5Utils, JVCLVer; + JclBase, JclSysInfo, + JvVCL5Utils, JVCLVer; type TProgressKind = ( @@ -136,6 +137,7 @@ function GeneratePackages(const Group, Targets, PackagesPath: string): Boolean; overload; function GenerateAllPackages: Boolean; overload; function CompileTarget(TargetConfig: TTargetConfig; PackageGroupKind: TPackageGroupKind): Boolean; + procedure DeleteRemovedFiles(TargetConfig: TTargetConfig); //procedure AlterHppFiles(TargetConfig: ITargetConfig; Project: TPackageTarget); public @@ -437,6 +439,7 @@ SearchPaths, S: string; i: Integer; OutDirs: TOutputDirs; + Target: TCompileTarget; begin OutDirs := TargetConfig.GetOutputDirs(DebugUnits); @@ -461,18 +464,18 @@ // search paths SearchPaths := ''; - with TargetConfig do - for i := 0 to TargetConfig.Target.SearchPaths.Count - 1 do + Target := TargetConfig.Target; + for i := 0 to Target.SearchPaths.Count - 1 do + begin + S := ExcludeTrailingPathDelimiter(Target.ExpandDirMacros(Target.SearchPaths[i])); + if DirectoryExists(S) then begin - S := ExcludeTrailingPathDelimiter(Target.ExpandDirMacros(Target.SearchPaths[i])); - if DirectoryExists(S) then - begin - if SearchPaths <> '' then - SearchPaths := SearchPaths + ';' + S - else - SearchPaths := S; - end; + if SearchPaths <> '' then + SearchPaths := SearchPaths + ';' + S + else + SearchPaths := S; end; + end; Lines.Add('-U"' + SearchPaths + '"'); Lines.Add('-I"' + SearchPaths + '"'); Lines.Add('-R"' + SearchPaths + '"'); @@ -514,8 +517,9 @@ MaxCmdLineLength = 2048 - 1; var Dcc32Cfg, PrjFilename: string; - Filename, Args, CmdLine, S: string; + BplFilename, BplBakFilename, Filename, Args, CmdLine, S: string; OutDirs: TOutputDirs; + ExistingBplRenamed: Boolean; begin OutDirs := TargetConfig.GetOutputDirs(DebugUnits); PrjFilename := Project.SourceDir + PathDelim + ExtractFileName(Project.SourceName); @@ -562,14 +566,42 @@ CaptureLinePackageCompilation(#1 + CmdLine, FAborted); end; - if TargetConfig.Target.Version <= 9 then - Result := CaptureExecute('"' + TargetConfig.Target.Dcc32 + '"', Args, - ExtractFileDir(PrjFilename), CaptureLinePackageCompilation, DoIdle, - False, TargetConfig.GetPathEnvVar, Dcc32SpeedInjection) - else - Result := CaptureExecute('"' + TargetConfig.Target.Dcc32 + '"', Args, - ExtractFileDir(PrjFilename), CaptureLinePackageCompilation, DoIdle, - False, TargetConfig.GetPathEnvVar, nil); + { Get the target file out of the way, in case it is still used by the IDE or + an application. } + BplFilename := OutDirs.BplDir + PathDelim + Project.TargetName; + BplBakFilename := BplFilename + '.bak'; + ExistingBplRenamed := False; + if FileExists(BplFilename) then + begin + if SetFileAttributes(PChar(BplBakFilename), FILE_ATTRIBUTE_NORMAL) then + DeleteFile(BplBakFilename); + ExistingBplRenamed := RenameFile(BplFilename, BplBakFilename); + end; + Result := -1; + try + { Compile the project } + if TargetConfig.Target.Version <= 9 then + Result := CaptureExecute('"' + TargetConfig.Target.Dcc32 + '"', Args, + ExtractFileDir(PrjFilename), CaptureLinePackageCompilation, DoIdle, + False, TargetConfig.GetPathEnvVar, Dcc32SpeedInjection) + else + Result := CaptureExecute('"' + TargetConfig.Target.Dcc32 + '"', Args, + ExtractFileDir(PrjFilename), CaptureLinePackageCompilation, DoIdle, + False, TargetConfig.GetPathEnvVar, nil); + finally + { Restore original file if there was an error or an exception } + if ExistingBplRenamed then + begin + if Result <> 0 then + RenameFile(BplBakFilename, BplFilename); + if FileExists(BplBakFilename) then + begin + SetFileAttributes(PChar(BplBakFilename), FILE_ATTRIBUTE_NORMAL); + if not DeleteFile(BplBakFilename) then + MoveFileEx(PChar(BplBakFilename), nil, MOVEFILE_DELAY_UNTIL_REBOOT); + end; + end; + end; if Result <> 0 then Break; end; @@ -579,9 +611,7 @@ end; if Result < 0 then // command not found - MessageBox(0, PChar(Format(RsCommandNotFound, - [CmdLine, - ExtractFileDir(PrjFilename)])), + MessageBox(0, PChar(Format(RsCommandNotFound, [CmdLine, ExtractFileDir(PrjFilename)])), 'JVCL Installer', MB_OK or MB_ICONERROR); end; @@ -1184,7 +1214,7 @@ end; /// <summary> -/// Compile() prepares for compiling and decides if the VCL or CLX framework +/// Compile() prepares for compiling and decides if the VCL framework /// should be compiled. /// </summary> function TCompiler.Compile: Boolean; @@ -1197,30 +1227,7 @@ Result := True; FAborted := False; - SysInfo := ''; - case Win32Platform of - VER_PLATFORM_WIN32_WINDOWS: - begin - case Win32MinorVersion of - 0..9: SysInfo := 'Windows 95'; - 10..89: SysInfo := 'Windows 98'; - 90: SysInfo := 'Windows ME'; - end; - end; - VER_PLATFORM_WIN32_NT: - begin - case Win32MajorVersion of - 4: SysInfo := 'Windows NT4'; - 5: - begin - case Win32MinorVersion of - 0: SysInfo := 'Windows 2000'; - 1: SysInfo := 'Windows XP'; - end; - end; - end; - end; - end; + SysInfo := GetWindowsProductString; if SysInfo <> '' then begin @@ -1230,8 +1237,8 @@ CaptureLine(SysInfo, FAborted); CaptureLine('', FAborted); end; - CaptureLine(Format('JVCL %d.%d.%d.%d', - [JVCLVersionMajor, JVCLVersionMinor, JVCLVersionRelease, JVCLVersionBuild]), + CaptureLine(Format('JVCL %d.%d.%d.%d', + [JVCLVersionMajor, JVCLVersionMinor, JVCLVersionRelease, JVCLVersionBuild]), FAborted); CaptureLine('', FAborted); @@ -1248,8 +1255,6 @@ Inc(Count); if pkVCL in Data.TargetConfig[i].InstallMode then Inc(Frameworks); - if pkCLX in Data.TargetConfig[i].InstallMode then - Inc(Frameworks); end; end; SetLength(TargetConfigs, Count); @@ -1267,15 +1272,98 @@ Inc(Index); end; DoTargetProgress(TargetConfigs[i], Index, Frameworks); - if pkClx in TargetConfigs[i].InstallMode then + end; +end; + +/// <summary> +/// DeleteRemovedFiles deletes the removed packages and units from the output directories. +/// </summary> +procedure TCompiler.DeleteRemovedFiles(TargetConfig: TTargetConfig); +var + I: Integer; + Filename, Path: string; +begin + { Delete removed package files .dcp, .lib, .bpi, .dcu, .hpp file } + for I := 0 to High(sRemovedPackages) do + begin + { Release } + Filename := TargetConfig.VersionedJVCLXmlDcp(sRemovedPackages[I]); + Path := IncludeTrailingPathDelimiter(TargetConfig.DcpDir); + if Path = '' then + IncludeTrailingPathDelimiter(TargetConfig.Target.DcpDir); + if FileExists(Path + Filename) then begin - Result := CompileTarget(TargetConfigs[i], pkCLX); - if not Result then - Break; - Inc(Index); + DeleteFile(Path + Filename); + DeleteFile(Path + ChangeFileExt(Filename, '.dcu')); + DeleteFile(Path + ChangeFileExt(Filename, '.lib')); + DeleteFile(Path + ChangeFileExt(Filename, '.bpi')); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); + if TargetConfig.HppDir <> '' then + Path := IncludeTrailingPathDelimiter(TargetConfig.HppDir); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); end; - DoTargetProgress(TargetConfigs[i], Index, Frameworks); + + { Debug } + Filename := TargetConfig.VersionedJVCLXmlDcp(sRemovedPackages[I]); + Path := IncludeTrailingPathDelimiter(TargetConfig.DebugDcpDir); + if Path = '' then + IncludeTrailingPathDelimiter(TargetConfig.Target.DcpDir); + if FileExists(Path + Filename) then + begin + DeleteFile(Path + Filename); + DeleteFile(Path + ChangeFileExt(Filename, '.dcu')); + DeleteFile(Path + ChangeFileExt(Filename, '.lib')); + DeleteFile(Path + ChangeFileExt(Filename, '.bpi')); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); + if TargetConfig.DebugHppDir <> '' then + Path := IncludeTrailingPathDelimiter(TargetConfig.DebugHppDir); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); + end; + + { Delete package .bpl } + Filename := TargetConfig.VersionedJVCLXmlBpl(sRemovedPackages[I]); + Path := IncludeTrailingPathDelimiter(TargetConfig.BplDir); + if Path = '' then + Path := IncludeTrailingPathDelimiter(TargetConfig.Target.BplDir); + DeleteFile(Path + Filename); end; + + + { Delete removed unit files .dcu, .dfm, .hpp } + for I := 0 to High(sRemovedUnits) do + begin + { Release } + Path := IncludeTrailingPathDelimiter(TargetConfig.UnitOutDir); + if Path <> '' then + begin + Filename := sRemovedUnits[I] + '.dcu'; + if FileExists(Path + Filename) then + begin + DeleteFile(Path + Filename); + DeleteFile(Path + ChangeFileExt(Filename, '.dfm')); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); + if TargetConfig.HppDir <> '' then + Path := IncludeTrailingPathDelimiter(TargetConfig.HppDir); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); + end; + end; + + { Debug } + Path := IncludeTrailingPathDelimiter(TargetConfig.DebugUnitOutDir); + if Path <> '' then + begin + Filename := sRemovedUnits[I] + '.dcu'; + if FileExists(Path + Filename) then + begin + DeleteFile(Path + Filename); + DeleteFile(Path + ChangeFileExt(Filename, '.dfm')); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); + if TargetConfig.DebugHppDir <> '' then + Path := IncludeTrailingPathDelimiter(TargetConfig.DebugHppDir); + DeleteFile(Path + ChangeFileExt(Filename, '.hpp')); + end; + end; + end; end; /// <summary> @@ -1284,18 +1372,16 @@ /// </summary> function TCompiler.CompileTarget(TargetConfig: TTargetConfig; PackageGroupKind: TPackageGroupKind): Boolean; var - //ObjFiles: TStrings; - //i: Integer; Aborted: Boolean; - DoClx: Boolean; begin - DoClx := PackageGroupKind = pkClx; Result := True; Aborted := False; FOutput.Clear; + DeleteRemovedFiles(TargetConfig); + // VCL - if Result and (pkVCL in TargetConfig.InstallMode) and not DoClx then + if Result and (pkVCL in TargetConfig.InstallMode) then begin if not TargetConfig.DeveloperInstall then begin @@ -1307,41 +1393,15 @@ end; if Result then + begin // compile Result := CompileProjectGroup( TargetConfig.Frameworks.Items[TargetConfig.Target.IsPersonal, pkVCL], False); + end; if Result then CaptureLine('[Finished JVCL for VCL installation]', Aborted); // do not localize end; - - // CLX - if Result and (pkClx in TargetConfig.InstallMode) and DoClx then - begin - if not FileExists(TargetConfig.BplDir + '\clxdesigner.dcp') then - begin - // Delphi 7 has no clxdesigner.dcp so we compile it from Delphi's property - // editor source. - CaptureExecute(Data.JVCLPackagesDir + '\bin\MakeClxDesigner.bat', '', - Data.JVCLPackagesDir + '\bin', CaptureLine, nil, False); - end; - - if not TargetConfig.DeveloperInstall then - begin - // debug units - if TargetConfig.Target.SupportsPersonalities([persDelphi]) and TargetConfig.DebugUnits then - Result := CompileProjectGroup( - TargetConfig.Frameworks.Items[TargetConfig.Target.IsPersonal, pkClx], True); - end; - - if Result then - // compile - Result := CompileProjectGroup( - TargetConfig.Frameworks.Items[TargetConfig.Target.IsPersonal, pkClx], False); - - if Result then - CaptureLine('[Finished JVCL for CLX installation]', Aborted); // do not localize - end; end; /// <summary> @@ -1421,16 +1481,8 @@ DestDir := ProjectGroup.TargetConfig.UnitOutDir; DebugDestDir := ProjectGroup.TargetConfig.DebugUnitOutDir; - if ProjectGroup.IsVCLX then - begin - Dir := ProjectGroup.TargetConfig.JVCLDir + PathDelim + 'qrun'; - FindFiles(Dir, '*.xfm', False, Files, ['.xfm']); - end - else - begin - Dir := ProjectGroup.TargetConfig.JVCLDir + PathDelim + 'run'; - FindFiles(Dir, '*.dfm', False, Files, ['.dfm']); - end; + Dir := ProjectGroup.TargetConfig.JVCLDir + PathDelim + 'run'; + FindFiles(Dir, '*.dfm', False, Files, ['.dfm']); CaptureLine(RsCopyingFiles, FAborted); for i := 0 to Files.Count - 1 do @@ -1454,18 +1506,6 @@ end; end; -function GetWindowsDir: string; -begin - SetLength(Result, MAX_PATH); - SetLength(Result, GetWindowsDirectory(PChar(Result), Length(Result))); -end; - -function GetSystemDir: string; -begin - SetLength(Result, MAX_PATH); - SetLength(Result, GetSystemDirectory(PChar(Result), Length(Result))); -end; - procedure TCompiler.SortProjectGroup(Group: TProjectGroup; List: TList); procedure SortProject(Project: TPackageTarget; var ProjectIndex: Integer); @@ -1580,8 +1620,6 @@ FPkgIndex := 0; Edition := TargetConfig.TargetSymbol; - if ProjectGroup.IsVCLX then - Edition := Edition + 'clx'; JVCLPackagesDir := TargetConfig.JVCLPackagesDir; DccOpt := '-M'; // make modified units, output 'never build' DCPs @@ -1794,7 +1832,7 @@ end; /// <summary> -/// AlterHppFiles corrects the *.hpp files that the dcc32.exe compiler generated. +/// AlterHppFiles corrects the *.hpp files that the dcc32.exe compiler has generated. /// - Converts every '#define constant "string"' to "static const char /// </summary> (*procedure TCompiler.AlterHppFiles(TargetConfig: ITargetConfig; Project: TPackageTarget); Modified: trunk/jvcl/install/JVCLInstall/Frames/FrmInstall.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Frames/FrmInstall.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/Frames/FrmInstall.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -149,8 +149,7 @@ Application.ProcessMessages; end; -procedure TFrameInstall.EvCaptureLine(const Text: string; - var AAborted: Boolean); +procedure TFrameInstall.EvCaptureLine(const Text: string; var AAborted: Boolean); var Line: string; @@ -344,6 +343,7 @@ FormCompileMessages.Top := ParentForm.BoundsRect.Bottom; FormCompileMessages.Left := ParentForm.Left + (ParentForm.Width - FormCompileMessages.Width) div 2; + SetWindowLong(FormCompile.Handle, GWL_HWNDPARENT, ParentForm.Handle); FormCompile.CompileMessages := FormCompileMessages; {$IFDEF USE_DXGETTEXT} @@ -361,7 +361,6 @@ finally Compiler.Free; end; - SetWindowLong(FormCompile.Handle, GWL_HWNDPARENT, 0); if Success and Installer.Data.IgnoreMakeErrors then Success := FormCompileMessages.Count = 0; @@ -393,7 +392,7 @@ // register packages into IDE with Installer do for i := 0 to SelTargetCount - 1 do - if SelTargets[i].InstallJVCL and (not SelTargets[i].CompileOnly) then + if SelTargets[i].InstallJVCL and not SelTargets[i].CompileOnly then begin if SelTargets[i].CleanPalettes then SelTargets[i].CleanJVCLPalette(False); Modified: trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.dfm =================================================================== --- trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.dfm 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.dfm 2008-11-03 22:47:18 UTC (rev 12032) @@ -22,7 +22,7 @@ object LblIDEs: TLabel Left = 8 Top = 8 - Width = 69 + Width = 68 Height = 13 Caption = '&Available IDEs' FocusControl = ListViewTargetIDEs @@ -31,15 +31,15 @@ object LblFrameworks: TLabel Left = 356 Top = 49 - Width = 60 + Width = 62 Height = 13 Caption = '&Frameworks:' FocusControl = CheckListBoxFrameworks end object LblShowMode: TLabel - Left = 322 + Left = 324 Top = 101 - Width = 80 + Width = 78 Height = 13 Alignment = taRightJustify Caption = '&Show packages:' Modified: trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/Frames/FrmPackageSelection.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -233,8 +233,6 @@ CheckListBoxFrameworks.ItemIndex := -1; for Kind := pkFirst to pkLast do begin - if (Kind = pkCLX) and not CLXSupport then - Continue; // find first selected item Group := TargetConfig.Frameworks.Items[TargetConfig.Target.IsPersonal, Kind]; if Group <> nil then @@ -640,11 +638,9 @@ inherited Create(AOwner); FOrgWndProc := CheckListBoxPackages.WindowProc; CheckListBoxPackages.WindowProc := HookWndProc; - if not CLXSupport then - begin - LblFrameworks.Visible := False; - CheckListBoxFrameworks.Visible := False; - end; + + LblFrameworks.Visible := False; + CheckListBoxFrameworks.Visible := False; {$IFDEF COMPILER12_UP} CheckListBoxPackages.ParentDoubleBuffered := False; CheckListBoxFrameworks.ParentDoubleBuffered := False; Modified: trunk/jvcl/install/JVCLInstall/InstallerConsts.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/InstallerConsts.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/InstallerConsts.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -33,7 +33,6 @@ sJVCLMacroCommonDir = '$(JVCL)\common'; // do not localize sJVCLMacroRunDir = '$(JVCL)\run'; // do not localize sJVCLMacroResourcesDir = '$(JVCL)\Resources'; // do not localize - sJVCLMacroClxDirs = '$(JVCL)\qcommon;$(JVCL)\qrun;$(JVCL)\Resources'; // do not localize resourcestring // JVCL3Install.pas Modified: trunk/jvcl/install/JVCLInstall/Intf.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Intf.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/Intf.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -34,13 +34,13 @@ SysUtils, Classes, Contnrs, DelphiData, JVCLConfiguration, RegConfig; type - TPackageGroupKind = (pkVcl, pkClx); + TPackageGroupKind = (pkVcl); const pkFirst = Low(TPackageGroupKind); pkLast = High(TPackageGroupKind); PackageGroupKindToStr: array[TPackageGroupKind] of string = ( - 'VCL', 'VisualCLX' + 'VCL' ); type Modified: trunk/jvcl/install/JVCLInstall/JVCLData.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLData.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/JVCLData.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -42,8 +42,14 @@ sJvclIncFile = '%s\common\jvcl.inc'; sBCBIncludeDir = '%s\Include\Vcl'; -const - CLXSupport = False; { Switch this to True if the Installer should support CLX } + { Before any package is compiled these package files and units are deleted from the + output directories. } + sRemovedPackages: array[0..0] of string = ( + 'Jv3rd-R' + ); + sRemovedUnits: array[0..0] of string = ( + 'JvgMailSlots' + ); type TJVCLData = class; @@ -718,21 +724,8 @@ Include(FInstallMode, pkVCL); FInstalledJVCLVersion := 3; end; - if Target.FindPackageEx('JvQCore') <> nil then // CLX // do not localize - begin - Include(FInstallMode, pkCLX); - FInstalledJVCLVersion := 3; - end; - if not CLXSupport then - begin - Exclude(FInstallMode, pkCLX); - Include(FInstallMode, pkVCL); - end - else - if FInstallMode = [] then // if no VCL and no CLX than it is VCL - Include(FInstallMode, pkVCL); + Include(FInstallMode, pkVCL); - // find JCL by looking into the (new) JEDI Registry key FOutdatedJcl := False; FMissingJCL := True; @@ -839,7 +832,7 @@ /// </summary> function TTargetConfig.GetBpgFilename(Personal: Boolean; Kind: TPackageGroupKind): string; var - Pers, Clx: string; + Pers: string; begin if Personal then begin @@ -849,22 +842,19 @@ Pers := 'Per'; // do not localize end; - if Kind = pkClx then - Clx := 'Clx'; - if Target.IsBDS then begin if Target.Version >= 11 then // Delphi 2007 and upper use groupproj files - Result := Owner.JVCLPackagesDir + Format('\%s%d%s%s Packages.groupproj', // do not localize - [Target.TargetType, Target.Version, Pers, Clx]) + Result := Owner.JVCLPackagesDir + Format('\%s%d%s Packages.groupproj', // do not localize + [Target.TargetType, Target.Version, Pers]) else - Result := Owner.JVCLPackagesDir + Format('\%s%d%s%s Packages.bdsgroup', // do not localize - [Target.TargetType, Target.Version, Pers, Clx]); + Result := Owner.JVCLPackagesDir + Format('\%s%d%s Packages.bdsgroup', // do not localize + [Target.TargetType, Target.Version, Pers]); end else begin - Result := Owner.JVCLPackagesDir + Format('\%s%d%s%s Packages.bpg', // do not localize - [Target.TargetType, Target.Version, Pers, Clx]); + Result := Owner.JVCLPackagesDir + Format('\%s%d%s Packages.bpg', // do not localize + [Target.TargetType, Target.Version, Pers]); end; end; @@ -1053,8 +1043,6 @@ begin if Value <> FInstallMode then begin - if not CLXSupport then - Exclude(Value, pkCLX); if Value = [] then FInstallMode := [pkVcl] else @@ -1498,13 +1486,6 @@ AddPaths(Target.SearchPaths, {Add:=}DeveloperInstall, Owner.JVCLDir, ['run']); // do not localize end; - if pkCLX in InstallMode then - begin - AddPaths(Target.BrowsingPaths, True, Owner.JVCLDir, - ['qcommon', 'qrun']); // do not localize - AddPaths(Target.SearchPaths, {Add:=}DeveloperInstall, Owner.JVCLDir, - ['qcommon', 'qrun']); // do not localize - end; AllPackages := TProjectGroup.Create(Self, ''); try Modified: trunk/jvcl/install/JVCLInstall/PackageUtils.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/PackageUtils.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/PackageUtils.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -116,7 +116,6 @@ function GetPackages(Index: Integer): TPackageTarget; function GetTarget: TCompileTarget; protected - function GetIsVCLX: Boolean; override; procedure DoInstallChange; virtual; function GetPackageTargetClass: TBpgPackageTargetClass; override; public @@ -172,10 +171,6 @@ for Kind := pkFirst to pkLast do begin - { Delphi 5 and the Personal Editions do not have CLX support. } - if (Kind = pkClx) and ((TargetConfig.Target.Version < 6) or (TargetConfig.Target.IsPersonal)) then - Continue; - if FileExists(TargetConfig.GetBpgFilename(False, Kind)) then FItems[False, Kind] := TProjectGroup.Create(TargetConfig, TargetConfig.GetBpgFilename(False, Kind)); if FileExists(TargetConfig.GetBpgFilename(True, Kind)) then @@ -233,11 +228,6 @@ Result := Package.Name; end; -function TProjectGroup.GetIsVCLX: Boolean; -begin - Result := Pos('clx', LowerCase(BpgName)) > 0; -end; - function TProjectGroup.GetPackages(Index: Integer): TPackageTarget; begin Result := TPackageTarget(inherited Packages[Index]); Modified: trunk/jvcl/install/JVCLInstall/Pages/PgSummary.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Pages/PgSummary.pas 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install/JVCLInstall/Pages/PgSummary.pas 2008-11-03 22:47:18 UTC (rev 12032) @@ -133,8 +133,6 @@ S := sJVCLMacroCommonDir; if pkVCL in InstallMode then S := S + ';' + sJVCLMacroRunDir; - if pkClx in InstallMode then - S := S + ';' + sJVCLMacroClxDirs; Add(RsAddToBrowsePath, S); if not DeveloperInstall then S := sJVCLMacroCommonDir; Modified: trunk/jvcl/install.bat =================================================================== --- trunk/jvcl/install.bat 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/install.bat 2008-11-03 22:47:18 UTC (rev 12032) @@ -10,9 +10,12 @@ if EXIST JVCLInstall.cfg del JVCLInstall.cfg ..\..\packages\bin\dcc32ex.exe --runtime-package-rtl --runtime-package-vcl --requires-jcl=%JCLVERSION% -Q -B -DJVCLINSTALLER -DUSE_DXGETTEXT -E..\..\bin -I.;..\..\common -U..\..\common;..\..\run -n..\..\dcu JVCLInstall.dpr if ERRORLEVEL 1 goto Failed +..\..\packages\bin\dcc32ex.exe -Q -B -E..\..\bin JVCLInstallStarter.dpr >NUL +::if ERRORLEVEL 1 goto Failed cd ..\.. :: create mo files, if possible (msgfmt must be in the PATH environment variable) +echo. cd locale msgfmt --help 1> tmp1.txt 2> tmp2.txt if errorlevel 1 goto MsgFmtNotFound @@ -25,6 +28,7 @@ goto CleanLocale :MsgFmtNotFound +echo. echo Warning: msgfmt not found in PATH, no language support in the installer :CleanLocale @@ -32,8 +36,11 @@ cd .. :: start installer +echo. echo [Starting installer...] -start bin\JVCLInstall.exe %2 %3 %4 %5 %6 %7 %8 %9 +echo bin\JVCLInstall.exe %2 %3 %4 %5 %6 %7 %8 %9 +if not exist bin\JVCLInstallStarter.exe goto :FailStart +bin\JVCLInstallStarter.exe bin\JVCLInstall.exe %2 %3 %4 %5 %6 %7 %8 %9 if ERRORLEVEL 1 goto FailStart goto Leave Property changes on: trunk/jvcl/lib/d12 ___________________________________________________________________ Modified: svn:ignore - *.dcu + *.dcpil *.dcuil *.ddp *.bpl *.dcp *.dfm *.xfm *.lib *.bpi *.obj *.dcu *.hpp include Added: bugtraq:url + http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID% Added: bugtraq:message + (Mantis #%BUGID%) Added: tsvn:logminsize + 5 Added: bugtraq:logregex + [Mm]antis #?(\d+)(,? ?#?(\d+))+ (\d+) Property changes on: trunk/jvcl/lib/d12/debug ___________________________________________________________________ Added: bugtraq:url + http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID% Added: bugtraq:message + (Mantis #%BUGID%) Added: svn:ignore + *.dcpil *.dcuil *.ddp *.bpl *.dcp *.dfm *.xfm *.lib *.bpi *.obj *.dcu *.hpp include Added: tsvn:logminsize + 5 Added: bugtraq:logregex + [Mm]antis #?(\d+)(,? ?#?(\d+))+ (\d+) Deleted: trunk/jvcl/packages/c5/Jv3rdC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/Jv3rdC5R.bpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5/Jv3rdC5R.bpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,89 +0,0 @@ -<?xml version='1.0' encoding='utf-8' ?> -<!-- C++Builder XML Project --> -<!-- -***************************************************************************** - DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR - ALWAYS EDIT THE RELATED XML FILE (Jv3rd-R.xml) - - Last generated: 21-02-2007 14:20:01 UTC -***************************************************************************** ---> -<PROJECT> - <MACROS> - <VERSION value="BCB.05.03"/> - <PROJECT value="Jv3rdC5R.bpl"/> - <OBJFILES value=" - ..\..\lib\c5\Jv3rdC5R.obj - ..\..\lib\c5\JvGnugettext.obj - ..\..\lib\c5\JvGnugettextD5.obj - "/> - <RESFILES value="Jv3rdC5R.res"/> - <IDLFILES value=""/> - <IDLGENFILES value=""/> - <DEFFILE value=""/> - <RESDEPEN value="$(RESFILES) - "/> - <LIBFILES value=" - "/> - <LIBRARIES value=""/> - <SPARELIBS value=""/> - <PACKAGES value=" - vcl50.bpi - "/> - <PATHCPP value=".;"/> - <PATHPAS value=".;..\..\common;..\..\run;..\..\design"/> - <PATHRC value=".;"/> - <PATHASM value=".;"/> - <DEBUGLIBPATH value="$(BCB)\lib\debug"/> - <RELEASELIBPATH value="$(BCB)\lib\release"/> - <LINKER value="ilink32"/> - <USERDEFINES value="_DEBUG"/> - <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> - <MAINSOURCE value="Jv3rdC5R.cpp"/> - <INCLUDEPATH value="..\..\design;..\..\run;..\..\common;$(BCB)\include;$(BCB)\include\vcl"/> - <LIBPATH value="..\..\run;..\..\design;..\..\common;..\..\resources;..\..\lib\c5;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> - <WARNINGS value="-w-par"/> - <OTHERFILES value=""/> - </MACROS> - <OPTIONS> - <IDLCFLAGS value="-I..\..\design -I..\..\run -I..\..\common - -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -D_DEBUG -boa"/> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c - -tWM"/> - <PFLAGS value="-N2..\..\lib\c5 -N0..\..\lib\c5 -$YD -$W -$O- -$A8 -v -JPHNE -M - -U$(BCB)\Lib\Obj - -LUvcl50 - -U$(BCB)\Projects\Bpl - -R..\..\Resources - "/> - <RFLAGS value=""/> - <AFLAGS value="/mx /w2 /zd"/> - <LFLAGS value="-I..\..\lib\c5 -L$(BCB)\Projects\Lib -L$(BCB)\Projects\Bpl - -b:0x49000000 -D"JVCL 3rd party Runtime Package" - -aa -Tpp -Gpr -x -Gn -Gl -Gi -v"/> - <OTHERFILES value=""/> - </OPTIONS> - <LINKER> - <ALLOBJ value="c0pkg32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/> - <ALLRES value="$(RESFILES)"/> - <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/> - <OTHERFILES value=""/> - </LINKER> - <BUILDTOOLS> - </BUILDTOOLS> - - <IDEOPTIONS> -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=3 -MinorVer=31 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=1 -Private=0 -DLL=0 - </IDEOPTIONS> -</PROJECT> Deleted: trunk/jvcl/packages/c5/Jv3rdC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/Jv3rdC5R.cpp 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5/Jv3rdC5R.cpp 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,31 +0,0 @@ -//--------------------------------------------------------------------------- -/* ------------------------------------------------------------------------------ - DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR - ALWAYS EDIT THE RELATED XML FILE (Jv3rd-R.xml) - - Last generated: 17-07-2008 16:01:16 UTC ------------------------------------------------------------------------------ -*/ - -#include <vcl.h> -#pragma hdrstop -USERES("Jv3rdC5R.res"); -USEUNIT("..\..\run\JvGnugettext.pas"); -USEUNIT("..\..\run\JvGnugettextD5.pas"); -USEPACKAGE("vcl50.bpi"); - -//--------------------------------------------------------------------------- -#pragma package(smart_init) -//--------------------------------------------------------------------------- - -// Package source. -//--------------------------------------------------------------------------- - -#pragma argsused -int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) -{ - return 1; -} -//--------------------------------------------------------------------------- - Deleted: trunk/jvcl/packages/c5/Jv3rdC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/Jv3rdC5R.dpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5/Jv3rdC5R.dpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,48 +0,0 @@ -package Jv3rdC5R; -{ ------------------------------------------------------------------------------ - DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR - ALWAYS EDIT THE RELATED XML FILE (Jv3rd-R.xml) - - Last generated: 17-07-2008 16:01:16 UTC ------------------------------------------------------------------------------ -} - -{$R *.res} -{$ALIGN ON} -{$ASSERTIONS OFF} -{$BOOLEVAL OFF} -{$DEBUGINFO OFF} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS OFF} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS ON} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $49000000} -{$DESCRIPTION 'JVCL 3rd party Runtime Package'} -{$RUNONLY} -{$IMPLICITBUILD OFF} - -{$I jvcl.inc} - -requires - vcl50 - ; - -contains - JvGnugettext in '..\..\run\JvGnugettext.pas' , - JvGnugettextD5 in '..\..\run\JvGnugettextD5.pas' - ; - -end. Deleted: trunk/jvcl/packages/c5/Jv3rdC5R.rc =================================================================== --- trunk/jvcl/packages/c5/Jv3rdC5R.rc 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5/Jv3rdC5R.rc 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,32 +0,0 @@ -VS_VERSION_INFO VERSIONINFO -FILEVERSION 3,31,0,0 -PRODUCTVERSION 3,31,0,0 - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_DLL - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - BEGIN - VALUE "CompanyName", "Project JEDI\0" - VALUE "FileDescription", "JVCL 3rd party Runtime Package\0" - VALUE "FileVersion", "3.31.0.0\0" - VALUE "InternalName", "Jv3rdC5R\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2007 Project JEDI\0" - VALUE "OriginalFilename", "Jv3rdC5R.bpl\0" - VALUE "ProductName", "JEDI Visual Component Library\0" - VALUE "ProductVersion", "3.31 Build 0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0409, 1252 - END -END Deleted: trunk/jvcl/packages/c5/Jv3rdC5R.res =================================================================== (Binary files differ) Modified: trunk/jvcl/packages/c5/JvCoreC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.bpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5/JvCoreC5R.bpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 02-11-2008 19:28:30 UTC + Last generated: 03-11-2008 19:56:09 UTC ***************************************************************************** --> <PROJECT> @@ -14,6 +14,8 @@ <PROJECT value="JvCoreC5R.bpl"/> <OBJFILES value=" ..\..\lib\c5\JvCoreC5R.obj + ..\..\lib\c5\JvGnugettext.obj + ..\..\lib\c5\JvGnugettextD5.obj ..\..\lib\c5\JvExButtons.obj ..\..\lib\c5\JvExCheckLst.obj ..\..\lib\c5\JvExComCtrls.obj Modified: trunk/jvcl/packages/c5/JvCoreC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.cpp 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5/JvCoreC5R.cpp 2008-11-03 22:47:18 UTC (rev 12032) @@ -4,13 +4,15 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 02-11-2008 19:28:31 UTC + Last generated: 03-11-2008 19:56:09 UTC ----------------------------------------------------------------------------- */ #include <vcl.h> #pragma hdrstop USERES("JvCoreC5R.res"); +USEUNIT("..\..\run\JvGnugettext.pas"); +USEUNIT("..\..\run\JvGnugettextD5.pas"); USEUNIT("..\..\run\JvExButtons.pas"); USEUNIT("..\..\run\JvExCheckLst.pas"); USEUNIT("..\..\run\JvExComCtrls.pas"); Modified: trunk/jvcl/packages/c5/JvCoreC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/JvCoreC5R.dpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5/JvCoreC5R.dpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 02-11-2008 19:28:31 UTC + Last generated: 03-11-2008 19:56:09 UTC ----------------------------------------------------------------------------- } @@ -46,6 +46,8 @@ ; contains + JvGnugettext in '..\..\run\JvGnugettext.pas' , + JvGnugettextD5 in '..\..\run\JvGnugettextD5.pas' , JvExButtons in '..\..\run\JvExButtons.pas' , JvExCheckLst in '..\..\run\JvExCheckLst.pas' , JvExComCtrls in '..\..\run\JvExComCtrls.pas' , Modified: trunk/jvcl/packages/c5std/JvCoreC5R.bpk =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.bpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5std/JvCoreC5R.bpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 02-11-2008 19:28:30 UTC + Last generated: 03-11-2008 19:56:09 UTC ***************************************************************************** --> <PROJECT> @@ -14,6 +14,8 @@ <PROJECT value="JvCoreC5R.bpl"/> <OBJFILES value=" ..\..\lib\c5\JvCoreC5R.obj + ..\..\lib\c5\JvGnugettext.obj + ..\..\lib\c5\JvGnugettextD5.obj ..\..\lib\c5\JvExButtons.obj ..\..\lib\c5\JvExCheckLst.obj ..\..\lib\c5\JvExComCtrls.obj Modified: trunk/jvcl/packages/c5std/JvCoreC5R.cpp =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.cpp 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5std/JvCoreC5R.cpp 2008-11-03 22:47:18 UTC (rev 12032) @@ -4,13 +4,15 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 02-11-2008 19:28:31 UTC + Last generated: 03-11-2008 19:56:09 UTC ----------------------------------------------------------------------------- */ #include <vcl.h> #pragma hdrstop USERES("JvCoreC5R.res"); +USEUNIT("..\..\run\JvGnugettext.pas"); +USEUNIT("..\..\run\JvGnugettextD5.pas"); USEUNIT("..\..\run\JvExButtons.pas"); USEUNIT("..\..\run\JvExCheckLst.pas"); USEUNIT("..\..\run\JvExComCtrls.pas"); Modified: trunk/jvcl/packages/c5std/JvCoreC5R.dpk =================================================================== --- trunk/jvcl/packages/c5std/JvCoreC5R.dpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c5std/JvCoreC5R.dpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 02-11-2008 19:28:31 UTC + Last generated: 03-11-2008 19:56:09 UTC ----------------------------------------------------------------------------- } @@ -47,6 +47,8 @@ ; contains + JvGnugettext in '..\..\run\JvGnugettext.pas' , + JvGnugettextD5 in '..\..\run\JvGnugettextD5.pas' , JvExButtons in '..\..\run\JvExButtons.pas' , JvExCheckLst in '..\..\run\JvExCheckLst.pas' , JvExComCtrls in '..\..\run\JvExComCtrls.pas' , Deleted: trunk/jvcl/packages/c6/Jv3rdC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/Jv3rdC6R.bpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c6/Jv3rdC6R.bpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,93 +0,0 @@ -<?xml version='1.0' encoding='utf-8' ?> -<!-- C++Builder XML Project --> -<!-- -***************************************************************************** - DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR - ALWAYS EDIT THE RELATED XML FILE (Jv3rd-R.xml) - - Last generated: 17-07-2008 16:01:16 UTC -***************************************************************************** ---> -<PROJECT> - <MACROS> - <VERSION value="BCB.06.00"/> - <PROJECT value="Jv3rdC6R.bpl"/> - <OBJFILES value=" - ..\..\lib\c6\Jv3rdC6R.obj - ..\..\lib\c6\JvGnugettext.obj - "/> - <RESFILES value="Jv3rdC6R.res"/> - <IDLFILES value=""/> - <IDLGENFILES value=""/> - <DEFFILE value=""/> - <RESDEPEN value="$(RESFILES) - "/> - <LIBFILES value=" - "/> - <LIBRARIES value=""/> - <SPARELIBS value=""/> - <PACKAGES value=" - rtl.bpi - "/> - <PATHCPP value=".;"/> - <PATHPAS value=".;..\..\common;..\..\run;..\..\design"/> - <PATHRC value=".;"/> - <PATHASM value=".;"/> - <DEBUGLIBPATH value="$(BCB)\lib\debug"/> - <RELEASELIBPATH value="$(BCB)\lib\release"/> - <LINKER value="ilink32"/> - <USERDEFINES value="_DEBUG"/> - <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> - <MAINSOURCE value="Jv3rdC6R.cpp"/> - <INCLUDEPATH value="..\..\design;..\..\run;..\..\common;$(BCB)\include;$(BCB)\include\vcl"/> - <LIBPATH value="..\..\run;..\..\design;..\..\common;..\..\resources;..\..\lib\c6;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> - <WARNINGS value="-w-par"/> - <OTHERFILES value=""/> - </MACROS> - <OPTIONS> - <IDLCFLAGS value="-I..\..\design -I..\..\run -I..\..\common - -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -D_DEBUG -boa"/> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c - -tWM"/> - <PFLAGS value="-N2..\..\lib\c6 -N0..\..\lib\c6 -$YD -$W -$O- -$A8 -v -JPHNE -M - - -U$(BCB)\Projects\Bpl - -R..\..\Resources - "/> - <RFLAGS value=""/> - <AFLAGS value="/mx /w2 /zd"/> - <LFLAGS value="-I..\..\lib\c6 - -b:0x49000000 -D"JVCL 3rd party Runtime Package" - -aa -Tpp -Gpr -x -Gn -Gl -Gi -v"/> - <OTHERFILES value=""/> - </OPTIONS> - <LINKER> - <ALLOBJ value="c0pkg32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/> - <ALLRES value="$(RESFILES)"/> - <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/> - <OTHERFILES value=""/> - </LINKER> - <FILELIST> - <FILE FILENAME="Jv3rdC6R.res" FORMNAME="" UNITNAME="Jv3rdC6R.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="Jv3rdC6R.cpp" FORMNAME="" UNITNAME="Jv3rdC6R" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="rtl.bpi" FORMNAME="" UNITNAME="rtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\run\JvGnugettext.pas" FORMNAME="" UNITNAME="JvGnugettext" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - </FILELIST> - <BUILDTOOLS> - </BUILDTOOLS> - - <IDEOPTIONS> -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=3 -MinorVer=31 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=1 -Private=0 -DLL=0 - </IDEOPTIONS> -</PROJECT> Deleted: trunk/jvcl/packages/c6/Jv3rdC6R.cpp =================================================================== --- trunk/jvcl/packages/c6/Jv3rdC6R.cpp 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c6/Jv3rdC6R.cpp 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,26 +0,0 @@ -//--------------------------------------------------------------------------- -/* ------------------------------------------------------------------------------ - DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR - ALWAYS EDIT THE RELATED XML FILE (Jv3rd-R.xml) - - Last generated: 14-05-2004 10:16:07 UTC ------------------------------------------------------------------------------ -*/ - -#include <basepch.h> -#pragma hdrstop -//--------------------------------------------------------------------------- -#pragma package(smart_init) -//--------------------------------------------------------------------------- - -// Package source. -//--------------------------------------------------------------------------- - -#pragma argsused -int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) -{ - return 1; -} -//--------------------------------------------------------------------------- - Deleted: trunk/jvcl/packages/c6/Jv3rdC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/Jv3rdC6R.dpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c6/Jv3rdC6R.dpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,47 +0,0 @@ -package Jv3rdC6R; -{ ------------------------------------------------------------------------------ - DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR - ALWAYS EDIT THE RELATED XML FILE (Jv3rd-R.xml) - - Last generated: 17-07-2008 16:01:16 UTC ------------------------------------------------------------------------------ -} - -{$R *.res} -{$ALIGN 8} -{$ASSERTIONS OFF} -{$BOOLEVAL OFF} -{$DEBUGINFO OFF} -{$EXTENDEDSYNTAX ON} -{$IMPORTEDDATA ON} -{$IOCHECKS ON} -{$LOCALSYMBOLS OFF} -{$LONGSTRINGS ON} -{$OPENSTRINGS ON} -{$OPTIMIZATION ON} -{$OVERFLOWCHECKS OFF} -{$RANGECHECKS ON} -{$REFERENCEINFO OFF} -{$SAFEDIVIDE OFF} -{$STACKFRAMES OFF} -{$TYPEDADDRESS OFF} -{$VARSTRINGCHECKS ON} -{$WRITEABLECONST OFF} -{$MINENUMSIZE 1} -{$IMAGEBASE $49000000} -{$DESCRIPTION 'JVCL 3rd party Runtime Package'} -{$RUNONLY} -{$IMPLICITBUILD OFF} - -{$I jvcl.inc} - -requires - rtl - ; - -contains - JvGnugettext in '..\..\run\JvGnugettext.pas' - ; - -end. Deleted: trunk/jvcl/packages/c6/Jv3rdC6R.rc =================================================================== --- trunk/jvcl/packages/c6/Jv3rdC6R.rc 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c6/Jv3rdC6R.rc 2008-11-03 22:47:18 UTC (rev 12032) @@ -1,32 +0,0 @@ -VS_VERSION_INFO VERSIONINFO -FILEVERSION 3,31,0,0 -PRODUCTVERSION 3,31,0,0 - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_DLL - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - BEGIN - VALUE "CompanyName", "Project JEDI\0" - VALUE "FileDescription", "JVCL 3rd party Runtime Package\0" - VALUE "FileVersion", "3.31.0.0\0" - VALUE "InternalName", "Jv3rdC6R\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2007 Project JEDI\0" - VALUE "OriginalFilename", "Jv3rdC6R.bpl\0" - VALUE "ProductName", "JEDI Visual Component Library\0" - VALUE "ProductVersion", "3.31 Build 0\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0409, 1252 - END -END Deleted: trunk/jvcl/packages/c6/Jv3rdC6R.res =================================================================== (Binary files differ) Modified: trunk/jvcl/packages/c6/JvCoreC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvCoreC6R.bpk 2008-11-03 20:49:06 UTC (rev 12031) +++ trunk/jvcl/packages/c6/JvCoreC6R.bpk 2008-11-03 22:47:18 UTC (rev 12032) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCore-R.xml) - Last generated: 02-11-2008 19:28:31 UTC + Last generated: 03-11-2008 19:56:10 UTC ***************************************************************************** --> <PROJECT> @@ -14,6 +14,7 @@ <PROJECT value="JvCoreC6R.bpl"/> <OBJFILES value=" ..\..\lib\c6\JvCoreC6R.obj + ..\..\lib\c6\JvGnugettext.obj ..\..\lib\c6\JvExButtons.obj ..\..\lib\c6\JvExCheckLst.obj ..\..\lib\c6\JvExComCtrls.obj @@ -140,6 +141,7 @@ <FILE FILENAME="vcljpg.bpi" FORMNAME="" UNITNAME="vcljpg" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="dbrtl.bpi" FORMNAME="" UNITNAME="dbrtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="vcldb.bpi" FORMNAME="" UNITNAME="vcldb" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvGnugettext.pas" FORMNAME="" UNITNAME="JvGnugettext" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvExButtons.pas" FORMNAME="" UNITNAME="JvExButtons" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvExCheckLst.pas" FORMNAME="" UNITNAME="JvExCheckLst" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvExComCtrls.pas" FORMNAME="" UNITNAME="JvExComCtrls" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jvcl/packages/c6/JvCoreC6R.dpk =================================================================... [truncated message content] |
From: <ah...@us...> - 2008-11-03 22:51:10
|
Revision: 12033 http://jvcl.svn.sourceforge.net/jvcl/?rev=12033&view=rev Author: ahuser Date: 2008-11-03 22:51:04 +0000 (Mon, 03 Nov 2008) Log Message: ----------- Changed min. required JCL version to 1.103.0.3110 Modified Paths: -------------- trunk/jvcl/install/JVCLInstall/JCLData.pas trunk/jvcl/install.bat Modified: trunk/jvcl/install/JVCLInstall/JCLData.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/JCLData.pas 2008-11-03 22:47:18 UTC (rev 12032) +++ trunk/jvcl/install/JVCLInstall/JCLData.pas 2008-11-03 22:51:04 UTC (rev 12033) @@ -35,8 +35,8 @@ requires the user to install or compile the JCL. Changing this constant will only change the displayed string but not the JCL version testing code. } - JCLMinVersion = '1.101.0.2647'; - JCLVersion = '1.101'; + JCLMinVersion = '1.103.0.3110'; + JCLVersion = '1.103'; { JCLDcpFiles specifies the .dcp files that must exist in the JCLDcpDir in order to mark the JCL installation as valid. } Modified: trunk/jvcl/install.bat =================================================================== --- trunk/jvcl/install.bat 2008-11-03 22:47:18 UTC (rev 12032) +++ trunk/jvcl/install.bat 2008-11-03 22:51:04 UTC (rev 12033) @@ -1,6 +1,6 @@ @echo off -SET JCLVERSION=1.101 +SET JCLVERSION=1.103 SET DELPHIVERSION=%1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-11 18:15:27
|
Revision: 12044 http://jvcl.svn.sourceforge.net/jvcl/?rev=12044&view=rev Author: ahuser Date: 2008-11-11 18:15:17 +0000 (Tue, 11 Nov 2008) Log Message: ----------- - Removed CLX from the jvcl.inc - Removed special Installer jvcl.inc, installer now defines DEFAULT_JVCL_INC - JvGIF no longer registered for .gif under Delphi 2009 by default - Installer is statically compiled against RTL, VCL - Added missing JVCLInstallStarter source code Modified Paths: -------------- trunk/jvcl/common/jvcl.inc trunk/jvcl/common/jvcld12.inc trunk/jvcl/install/JVCLInstall/Main.pas trunk/jvcl/install.bat Added Paths: ----------- trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj Removed Paths: ------------- trunk/jvcl/install/JVCLInstall/jvcl.inc Modified: trunk/jvcl/common/jvcl.inc =================================================================== --- trunk/jvcl/common/jvcl.inc 2008-11-11 17:54:45 UTC (rev 12043) +++ trunk/jvcl/common/jvcl.inc 2008-11-11 18:15:17 UTC (rev 12044) @@ -10,26 +10,19 @@ The Original Code is: JVCL.INC, released on 2002-07-04. -Last Modified: 2004-12-22 +Last Modified: 2008-11-11 You may retrieve the latest version of this file at the Project JEDI's JVCL home page, located at http://jvcl.sourceforge.net Known Issues: -----------------------------------------------------------------------------} +{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} + {$IFDEF JVCL_NO_DEBUGINFO} // set by the Installer {$D-} -{$ELSE} - // default - {$D+} {$ENDIF JVCL_NO_DEBUGINFO} -{$IFDEF JVCLINSTALLER} -{$I ..\install\JVCLInstall\jvcl.inc} -{$ELSE} - -{$A+,B-,C+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} - {$I jedi.inc} {$IFNDEF JEDI_INC} @@ -48,30 +41,17 @@ {$ObjExportAll ON} {$ENDIF BCB} -{$IFDEF QUnit} - {$UNDEF VCL} - {$DEFINE VisualCLX} -{$ENDIF} -// jedi.inc does not define VCL nor VisualCLX if the application is a console -// But the JVCL code requires that VCL or VisualCLX be defined (but not both, -// of course). So we define those symbols ourselves as it is not a matter -// for all JEDI projects. -{$IFDEF CONSOLE} - {$IFNDEF VCL} - {$IFNDEF VisualCLX} - {$IFDEF LINUX} - {$DEFINE VisualCLX} - {$ENDIF LINUX} - {$IFNDEF VisualCLX} - {$DEFINE VCL} - {$ENDIF !VisualCLX} - {$ENDIF !VisualCLX} - {$ENDIF !VCL} -{$ENDIF CONSOLE} +{$UNDEF JVCL_CONFIGURED} -{$IFNDEF DEFAULT_JVCL_INC} +{$IFDEF DEFAULT_JVCL_INC} {-----------------------------------------------------------------------------} +{ Default configuration } +{-----------------------------------------------------------------------------} + {$I jvclbase.inc} + {$DEFINE JVCL_CONFIGURED} +{$ELSE} +{-----------------------------------------------------------------------------} { Delphi } {-----------------------------------------------------------------------------} {$IFDEF DELPHI5} @@ -135,18 +115,11 @@ {$I jvcld12.inc} // same include file for BDS based C++ {$DEFINE JVCL_CONFIGURED} {$ENDIF BCB12} -{-----------------------------------------------------------------------------} -{ Default configuration } -{-----------------------------------------------------------------------------} -{$ELSE} - {$I jvclbase.inc} - {$DEFINE JVCL_CONFIGURED} + {$ENDIF DEFAULT_JVCL_INC} {-----------------------------------------------------------------------------} -// check configuration - {$IFNDEF JVCL_CONFIGURED} {$IFDEF SUPPORTS_COMPILETIME_MESSAGES} {$MESSAGE FATAL 'Your Delphi/BCB version is not supported by this JVCL version!'} @@ -156,6 +129,8 @@ {$ENDIF !JVCL_CONFIGURED} +// check configuration dependencies + {$IFNDEF JVCL_UseQuickReport} {$UNDEF QREPORT4} {$ENDIF !JVCL_UseQuickReport} @@ -194,4 +169,3 @@ {$DEFINE MSWINDOWS} {$ENDIF CLR} -{$ENDIF INSTALLER} Modified: trunk/jvcl/common/jvcld12.inc =================================================================== --- trunk/jvcl/common/jvcld12.inc 2008-11-11 17:54:45 UTC (rev 12043) +++ trunk/jvcl/common/jvcld12.inc 2008-11-11 18:15:17 UTC (rev 12044) @@ -61,7 +61,7 @@ { This define enables GIF image support. Deactivate this define if you are using another GIF image support library. } -{$DEFINE USE_JV_GIF} +{.$DEFINE USE_JV_GIF} { Activate this define if you do not want to use TGauge Borland sample component in TDBProgress component and FileUtil routines. In this case Added: trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr (rev 0) +++ trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr 2008-11-11 18:15:17 UTC (rev 12044) @@ -0,0 +1,124 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JVCLInstallStarter.dpr, released on 2008-11-03. + +The Initial Developer of the Original Code is Andreas Hausladen +Portions created by Andreas Hausladen are Copyright (C) 2008 Andreas Hausladen +All Rights Reserved. + +Contributor(s): + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net + +Known Issues: +-----------------------------------------------------------------------------} +// $Id$ + +program JVCLInstallStarter; + +{$APPTYPE CONSOLE} + +{ JVCLInstallStarter is used to get the JVCLInstaller into the forground under Windows Vista. + Under Vista a GUI application will be send to the back if it is started from a console window + that is closing after triggering the start of the GUI application. + + JVCLInstallStarter waits until the GUI application is idle and then terminates. It is also + a replacement for Windows's "start" command. } + +uses + Windows; + +{$R CommCtrlAsInvoker.res} + +function SysErrorMessage(ErrorCode: Cardinal): string; +var + Buffer: array[0..1024] of Char; +var + Len: Integer; +begin + Len := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or + FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, ErrorCode, 0, Buffer, Length(Buffer), nil); + while (Len > 0) and ((Buffer[Len - 1] <= #32) or (Buffer[Len - 1] = '.')) do + Dec(Len); + SetString(Result, Buffer, Len); +end; + +var + P: PChar; + InStr: Boolean; + ProcessInfo: TProcessInformation; + StartupInfo: TStartupInfo; + S: string; + SecAttr: TSecurityAttributes; + LastError: Cardinal; +begin + P := GetCommandLine; + if P = nil then + begin + WriteLn(ErrOutput, 'GetCommandLine returned NULL'); + Halt(1); + end; + + InStr := False; + while P[0] <> #0 do + begin + if P[0] = '"' then + begin + if InStr and (P[1] = '"') then + Inc(P) + else + InStr := not InStr; + end + else if (P[0] <= ' ') and not InStr then + Break; + Inc(P); + end; + + if P[0] <> #0 then + begin + while (P[0] <> #0) and (P[0] <= #32) do + Inc(P); + end; + + if P[0] <> #0 then + begin + S := P; + + FillChar(SecAttr, SizeOf(SecAttr), 0); + SecAttr.nLength := SizeOf(SecAttr); + SecAttr.bInheritHandle := False; + + FillChar(StartupInfo, SizeOf(StartupInfo), 0); + if CreateProcess(nil, PChar(S), @SecAttr, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then + begin + CloseHandle(ProcessInfo.hThread); + WaitForInputIdle(ProcessInfo.hProcess, INFINITE); + CloseHandle(ProcessInfo.hProcess); + end + else + begin + LastError := GetLastError; + + SetLength(S, 1024); + SetLength(S, FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or + FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, LastError, 0, PChar(S), Length(S), nil)); + WriteLn(ErrOutput, S); + end; + + ExitCode := 0; + end + else + begin + WriteLn(ErrOutput, 'No executable specified'); + ExitCode := 1; + end; +end. Added: trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj (rev 0) +++ trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj 2008-11-11 18:15:17 UTC (rev 12044) @@ -0,0 +1,104 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{02676ECE-0BB1-4801-8014-5E99A122F5B1}</ProjectGuid> + <MainSource>JVCLInstallStarter.dpr</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Basis' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_E>false</DCC_E> + <DCC_Platform>x86</DCC_Platform> + <DCC_DependencyCheckOutputName>JVCLInstallStarter.exe</DCC_DependencyCheckOutputName> + <DCC_N>false</DCC_N> + <DCC_S>false</DCC_S> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="JVCLInstallStarter.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <BuildConfiguration Include="Basis"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">JVCLInstallStarter.dpr</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + <Parameters Name="RunParams">bin\JVCLInstall.exe</Parameters> + <Parameters Name="DebugCWD">Z:\Jedi\JVCL3</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1031</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Modified: trunk/jvcl/install/JVCLInstall/Main.pas =================================================================== --- trunk/jvcl/install/JVCLInstall/Main.pas 2008-11-11 17:54:45 UTC (rev 12043) +++ trunk/jvcl/install/JVCLInstall/Main.pas 2008-11-11 18:15:17 UTC (rev 12044) @@ -32,13 +32,6 @@ unit Main; {$I jvcl.inc} -{$IFNDEF INSTALLER} - {$IFDEF COMPILER6_UP} - {$MESSAGE FATAL 'Wrong jvcl.inc was used. The jvcl3\install\JVCLInstall\jvcl.inc should have been used.'} - {$ELSE} - 'Wrong jvcl.inc was used. The jvcl3\install\JVCLInstall\jvcl.inc should have been used.' - {$ENDIF COMPILER6_UP} -{$ENDIF !INSTALLER} interface Deleted: trunk/jvcl/install/JVCLInstall/jvcl.inc =================================================================== --- trunk/jvcl/install/JVCLInstall/jvcl.inc 2008-11-11 17:54:45 UTC (rev 12043) +++ trunk/jvcl/install/JVCLInstall/jvcl.inc 2008-11-11 18:15:17 UTC (rev 12044) @@ -1,40 +0,0 @@ -{----------------------------------------------------------------------------- -The contents of this file are subject to the Mozilla Public License -Version 1.1 (the "License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at -http://www.mozilla.org/MPL/MPL-1.1.html - -Software distributed under the License is distributed on an "AS IS" basis, -WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for -the specific language governing rights and limitations under the License. - -The Original Code is: JVCL.INC, released on 2004-04-14. - -You may retrieve the latest version of this file at the Project JEDI's JVCL home page, -located at http://jvcl.sourceforge.net - -Known Issues: ------------------------------------------------------------------------------} -// $Id$ - -{***************************************************************************} -{* THIS IS A SPECIAL VERSION OF THE jvcl.inc THAT IS ONLY USED BY THE JVCL *} -{* INSTALLER. *} -{***************************************************************************} - - -{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} - -{$I jedi.inc} - -{$DEFINE INSTALLER} - -{$DEFINE NO_JCL} -{$DEFINE VCL} - -// Reduces warnings on D7: -{$IFDEF COMPILER7_UP} - {$WARN UNSAFE_TYPE OFF} - {$WARN UNSAFE_CODE OFF} - {$WARN UNSAFE_CAST OFF} -{$ENDIF} Modified: trunk/jvcl/install.bat =================================================================== --- trunk/jvcl/install.bat 2008-11-11 17:54:45 UTC (rev 12043) +++ trunk/jvcl/install.bat 2008-11-11 18:15:17 UTC (rev 12044) @@ -7,10 +7,14 @@ :: compile installer echo [Compiling installer...] cd install\JVCLInstall + if EXIST JVCLInstall.cfg del JVCLInstall.cfg -..\..\packages\bin\dcc32ex.exe --runtime-package-rtl --runtime-package-vcl --requires-jcl=%JCLVERSION% -Q -B -DJVCLINSTALLER -DUSE_DXGETTEXT -E..\..\bin -I.;..\..\common -U..\..\common;..\..\run -n..\..\dcu JVCLInstall.dpr +..\..\packages\bin\dcc32ex.exe --requires-jcl=%JCLVERSION% -Q -B -DDEFAULT_JVCL_INC -DUSE_DXGETTEXT -E..\..\bin -I.;..\..\common -U..\..\run -R..\..\resources -n..\..\dcu JVCLInstall.dpr +:: --runtime-package-rtl --runtime-package-vcl if ERRORLEVEL 1 goto Failed -..\..\packages\bin\dcc32ex.exe -Q -B -E..\..\bin JVCLInstallStarter.dpr >NUL + +if EXIST JVCLInstallStarter.cfg del JVCLInstallStarter.cfg +..\..\packages\bin\dcc32ex.exe -Q -B -E..\..\bin -n..\..\dcu JVCLInstallStarter.dpr >NUL ::if ERRORLEVEL 1 goto Failed cd ..\.. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-18 17:06:37
|
Revision: 12052 http://jvcl.svn.sourceforge.net/jvcl/?rev=12052&view=rev Author: ahuser Date: 2008-11-18 17:06:32 +0000 (Tue, 18 Nov 2008) Log Message: ----------- Mantis #4592: TJvGifAnimator is gone from Nov 18th's daily build Modified Paths: -------------- trunk/jvcl/design/JvMMReg.pas trunk/jvcl/packages/d12/JvMMD12R.dpk trunk/jvcl/packages/xml/JvMM-R.xml trunk/jvcl/run/JvGIF.pas Modified: trunk/jvcl/design/JvMMReg.pas =================================================================== --- trunk/jvcl/design/JvMMReg.pas 2008-11-18 16:46:41 UTC (rev 12051) +++ trunk/jvcl/design/JvMMReg.pas 2008-11-18 17:06:32 UTC (rev 12052) @@ -49,9 +49,7 @@ JvImageRotate, JvImageTransform, JvImageSquare, JvPcx, JvStarfield, JvWaitingGradient, JvWaitingProgress, JvSpecialProgress, JvColorTrackBar, JvCursor, - {$IFDEF USE_JV_GIF} JvGIF, JvGIFCtrl, - {$ENDIF USE_JV_GIF} JvSlider, JvAnimatedImage, JvSpecialImage, JvPictureEditors, JvAnimatedEditor, JvPictureEditForm, JvIconListForm, JvFullColorDialogs, JvFullColorCtrls, JvFullColorEditors, @@ -63,7 +61,7 @@ begin RegisterComponents(RsPaletteImageAnimator, [TJvAnimate, TJvBmpAnimator, TJvPicClip, TJvImageRotate, TJvImageTransform, - TJvImageSquare, TJvStarfield, {$IFDEF USE_JV_GIF} TJvGIFAnimator, {$ENDIF} + TJvImageSquare, TJvStarfield, TJvGIFAnimator, TJvAnimatedImage, TJvSpecialImage, TJvAVICapture]); RegisterComponents(RsPaletteBarPanel, [TJvGradientHeaderPanel, TJvGradient, TJvWaitingGradient, TJvSpecialProgress, TJvWaitingProgress, TJvColorTrackBar]); @@ -86,9 +84,7 @@ RegisterPropertyEditor(TypeInfo(TColor), nil, '', TJvFullColorProperty); end; - {$IFDEF USE_JV_GIF} RegisterComponentEditor(TJvGIFAnimator, TJvGraphicsEditor); - {$ENDIF USE_JV_GIF} // JvFullColor components and editors RegisterComponents(RsPaletteBarPanel, [TJvFullColorPanel, TJvFullColorTrackBar, TJvFullColorGroup]); Modified: trunk/jvcl/packages/d12/JvMMD12R.dpk =================================================================== --- trunk/jvcl/packages/d12/JvMMD12R.dpk 2008-11-18 16:46:41 UTC (rev 12051) +++ trunk/jvcl/packages/d12/JvMMD12R.dpk 2008-11-18 17:06:32 UTC (rev 12052) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvMM-R.xml) - Last generated: 16-11-2008 11:18:56 UTC + Last generated: 18-11-2008 16:56:21 UTC ----------------------------------------------------------------------------- } @@ -50,6 +50,8 @@ contains JvAVICapture in '..\..\run\JvAVICapture.pas' , JvBmpAnimator in '..\..\run\JvBmpAnimator.pas' , + JvGIF in '..\..\run\JvGIF.pas' , + JvGIFCtrl in '..\..\run\JvGIFCtrl.pas' , JvGradient in '..\..\run\JvGradient.pas' , JvGradientHeaderPanel in '..\..\run\JvGradientHeaderPanel.pas' , JvIconList in '..\..\run\JvIconList.pas' , Modified: trunk/jvcl/packages/xml/JvMM-R.xml =================================================================== --- trunk/jvcl/packages/xml/JvMM-R.xml 2008-11-18 16:46:41 UTC (rev 12051) +++ trunk/jvcl/packages/xml/JvMM-R.xml 2008-11-18 17:06:32 UTC (rev 12052) @@ -28,8 +28,8 @@ <Contains> <File Name="..\..\run\JvAVICapture.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvBmpAnimator.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\run\JvGIF.pas" Targets="VCL" Formname="" Condition="USE_JV_GIF"/> - <File Name="..\..\run\JvGIFCtrl.pas" Targets="VCL" Formname="" Condition="USE_JV_GIF"/> + <File Name="..\..\run\JvGIF.pas" Targets="VCL" Formname="" Condition=""/> + <File Name="..\..\run\JvGIFCtrl.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvGradient.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvGradientHeaderPanel.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvIconList.pas" Targets="all" Formname="" Condition=""/> Modified: trunk/jvcl/run/JvGIF.pas =================================================================== --- trunk/jvcl/run/JvGIF.pas 2008-11-18 16:46:41 UTC (rev 12051) +++ trunk/jvcl/run/JvGIF.pas 2008-11-18 17:06:32 UTC (rev 12052) @@ -238,7 +238,7 @@ end; var - CF_GIF: UINT; { Clipboard format for GIF image } + CF_JVGIF: UINT; { Clipboard format for GIF image } { Load incomplete or corrupted images without exceptions } @@ -273,13 +273,14 @@ procedure GifError(const Msg: string); - function ReturnAddr: Pointer; - asm - MOV EAX,[EBP+4] + procedure ThrowException(const Msg: string; ReturnAddr: Pointer); + begin + raise EInvalidGraphicOperation.Create(Msg) at ReturnAddr; end; -begin - raise EInvalidGraphicOperation.Create(Msg) at ReturnAddr; +asm + pop edx + jmp ThrowException end; {$IFDEF RANGECHECKS_ON} @@ -2273,7 +2274,7 @@ Data: THandle; begin { !! check for gif clipboard Data, mime type image/gif } - Data := GetClipboardData(CF_GIF); + Data := GetClipboardData(CF_JVGIF); if Data <> 0 then begin Buffer := GlobalLock(Data); @@ -2816,7 +2817,7 @@ Buffer := GlobalLock(Data); try Stream.Read(Buffer^, Stream.Size); - SetClipboardData(CF_GIF, Data); + SetClipboardData(CF_JVGIF, Data); finally GlobalUnlock(Data); end; @@ -3057,7 +3058,7 @@ procedure Init; begin - CF_GIF := RegisterClipboardFormat('GIF Image'); + CF_JVGIF := RegisterClipboardFormat('JvGIF Image'); {$IFDEF COMPILER7_UP} GroupDescendentsWith(TJvGIFFrame, TControl); GroupDescendentsWith(TJvGIFImage, TControl); @@ -3065,8 +3066,10 @@ RegisterClasses([TJvGIFFrame, TJvGIFImage]); {$IFDEF USE_JV_GIF} TPicture.RegisterFileFormat('gif', RsGIFImage, TJvGIFImage); - TPicture.RegisterClipboardFormat(CF_GIF, TJvGIFImage); + {$ELSE} + TPicture.RegisterFileFormat('', '', TJvGIFImage); // register for loading but do not show in FileDialog {$ENDIF USE_JV_GIF} + TPicture.RegisterClipboardFormat(CF_JVGIF, TJvGIFImage); end; initialization This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-24 22:22:06
|
Revision: 12054 http://jvcl.svn.sourceforge.net/jvcl/?rev=12054&view=rev Author: ahuser Date: 2008-11-24 21:32:16 +0000 (Mon, 24 Nov 2008) Log Message: ----------- Renamed JVCLInstallStarter.exe to JVCLCmdStarter.exe to show Vista that this is no installer which requires administrator privileges. Modified Paths: -------------- trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj trunk/jvcl/install.bat Added Paths: ----------- trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dpr trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dproj Removed Paths: ------------- trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj Copied: trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dpr (from rev 12053, trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr) =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dpr (rev 0) +++ trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dpr 2008-11-24 21:32:16 UTC (rev 12054) @@ -0,0 +1,124 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JVCLCmdStarter.dpr, released on 2008-11-03. + +The Initial Developer of the Original Code is Andreas Hausladen +Portions created by Andreas Hausladen are Copyright (C) 2008 Andreas Hausladen +All Rights Reserved. + +Contributor(s): + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net + +Known Issues: +-----------------------------------------------------------------------------} +// $Id$ + +program JVCLCmdStarter; + +{$APPTYPE CONSOLE} + +{ JVCLCmdStarter is used to get the JVCLInstaller into the forground under Windows Vista. + Under Vista a GUI application will be send to the back if it is started from a console window + that is closing after triggering the start of the GUI application. + + JVCLCmdStarter waits until the GUI application is idle and then terminates. It is also + a replacement for Windows's "start" command. } + +uses + Windows; + +{.$R CommCtrlAsInvoker.res} + +function SysErrorMessage(ErrorCode: Cardinal): string; +var + Buffer: array[0..1024] of Char; +var + Len: Integer; +begin + Len := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or + FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, ErrorCode, 0, Buffer, Length(Buffer), nil); + while (Len > 0) and ((Buffer[Len - 1] <= #32) or (Buffer[Len - 1] = '.')) do + Dec(Len); + SetString(Result, Buffer, Len); +end; + +var + P: PChar; + InStr: Boolean; + ProcessInfo: TProcessInformation; + StartupInfo: TStartupInfo; + S: string; + SecAttr: TSecurityAttributes; + LastError: Cardinal; +begin + P := GetCommandLine; + if P = nil then + begin + WriteLn(ErrOutput, 'GetCommandLine returned NULL'); + Halt(1); + end; + + InStr := False; + while P[0] <> #0 do + begin + if P[0] = '"' then + begin + if InStr and (P[1] = '"') then + Inc(P) + else + InStr := not InStr; + end + else if (P[0] <= ' ') and not InStr then + Break; + Inc(P); + end; + + if P[0] <> #0 then + begin + while (P[0] <> #0) and (P[0] <= #32) do + Inc(P); + end; + + if P[0] <> #0 then + begin + S := P; + + FillChar(SecAttr, SizeOf(SecAttr), 0); + SecAttr.nLength := SizeOf(SecAttr); + SecAttr.bInheritHandle := False; + + FillChar(StartupInfo, SizeOf(StartupInfo), 0); + if CreateProcess(nil, PChar(S), @SecAttr, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then + begin + CloseHandle(ProcessInfo.hThread); + WaitForInputIdle(ProcessInfo.hProcess, INFINITE); + CloseHandle(ProcessInfo.hProcess); + end + else + begin + LastError := GetLastError; + + SetLength(S, 1024); + SetLength(S, FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or + FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, LastError, 0, PChar(S), Length(S), nil)); + WriteLn(ErrOutput, S); + end; + + ExitCode := 0; + end + else + begin + WriteLn(ErrOutput, 'No executable specified'); + ExitCode := 1; + end; +end. Property changes on: trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dpr ___________________________________________________________________ Added: svn:mergeinfo + Copied: trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dproj (from rev 12053, trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj) =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dproj (rev 0) +++ trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dproj 2008-11-24 21:32:16 UTC (rev 12054) @@ -0,0 +1,104 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{02676ECE-0BB1-4801-8014-5E99A122F5B1}</ProjectGuid> + <MainSource>JVCLCmdStarter.dpr</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Basis' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_E>false</DCC_E> + <DCC_Platform>x86</DCC_Platform> + <DCC_DependencyCheckOutputName>JVCLCmdStarter.exe</DCC_DependencyCheckOutputName> + <DCC_N>false</DCC_N> + <DCC_S>false</DCC_S> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="JVCLCmdStarter.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <BuildConfiguration Include="Basis"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">JVCLCmdStarter.dpr</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + <Parameters Name="RunParams">bin\JVCLInstall.exe</Parameters> + <Parameters Name="DebugCWD">Z:\Jedi\JVCL3</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1031</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/jvcl/install/JVCLInstall/JVCLCmdStarter.dproj ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj 2008-11-18 17:15:04 UTC (rev 12053) +++ trunk/jvcl/install/JVCLInstall/JVCLInstall.dproj 2008-11-24 21:32:16 UTC (rev 12054) @@ -1,141 +1,175 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectGuid>{27a7b005-bb66-4856-a972-9934f6ba8f43}</ProjectGuid> - <MainSource>JVCLInstall.dpr</MainSource> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <Version>7.0</Version> - <DCC_DebugInformation>False</DCC_DebugInformation> - <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> - <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_MapFile>3</DCC_MapFile> - <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> - <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> - <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> - <DCC_HppOutput>..\..\dcu</DCC_HppOutput> - <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;RELEASE</DCC_Define> - <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> - <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> - <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <Version>7.0</Version> - <DCC_MapFile>3</DCC_MapFile> - <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> - <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> - <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> - <DCC_HppOutput>..\..\dcu</DCC_HppOutput> - <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;DEBUG</DCC_Define> - <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> - <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> - <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> - </PropertyGroup> - <ProjectExtensions> - <Borland.Personality>Delphi.Personality</Borland.Personality> - <Borland.ProjectType /> - <BorlandProject> -<BorlandProject xmlns=""> <Delphi.Personality> <Parameters> - <Parameters Name="RunParams">--ignore-ide</Parameters> - <Parameters Name="UseLauncher">False</Parameters> - <Parameters Name="LoadAllSymbols">True</Parameters> - <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> - </Parameters> - <VersionInfo> - <VersionInfo Name="IncludeVerInfo">False</VersionInfo> - <VersionInfo Name="AutoIncBuild">False</VersionInfo> - <VersionInfo Name="MajorVer">1</VersionInfo> - <VersionInfo Name="MinorVer">0</VersionInfo> - <VersionInfo Name="Release">0</VersionInfo> - <VersionInfo Name="Build">0</VersionInfo> - <VersionInfo Name="Debug">False</VersionInfo> - <VersionInfo Name="PreRelease">False</VersionInfo> - <VersionInfo Name="Special">False</VersionInfo> - <VersionInfo Name="Private">False</VersionInfo> - <VersionInfo Name="DLL">False</VersionInfo> - <VersionInfo Name="Locale">1031</VersionInfo> - <VersionInfo Name="CodePage">1252</VersionInfo> - </VersionInfo> - <VersionInfoKeys> - <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> - </VersionInfoKeys> - <Source> - <Source Name="MainSource">JVCLInstall.dpr</Source> - </Source> - </Delphi.Personality> </BorlandProject></BorlandProject> - </ProjectExtensions> - <ItemGroup /> - <ItemGroup> - <DelphiCompile Include="JVCLInstall.dpr"> - <MainSource>MainSource</MainSource> - </DelphiCompile> - <DCCReference Include="..\..\devtools\common\PackageInformation.pas" /> - <DCCReference Include="..\..\devtools\PackagesGenerator\ConditionParser.pas" /> - <DCCReference Include="..\..\devtools\PackagesGenerator\FileUtils.pas" /> - <DCCReference Include="..\..\devtools\PackagesGenerator\GenerateUtils.pas" /> - <DCCReference Include="CmdLineUtils.pas" /> - <DCCReference Include="Compile.pas" /> - <DCCReference Include="Core.pas" /> - <DCCReference Include="Dcc32FileAgePatch.pas" /> - <DCCReference Include="DelphiData.pas" /> - <DCCReference Include="Frames\FrmConfigPage.pas"> - <Form>FrameConfigPage</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmDirEditBrowse.pas"> - <Form>FrameDirEditBrowse</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmInstall.pas"> - <Form>FrameInstall</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmPackageSelection.pas"> - <Form>FramePackageSelection</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Frames\FrmUninstall.pas"> - <Form>FrameUninstall</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="FrmCompile.pas"> - <Form>FormCompile</Form> - </DCCReference> - <DCCReference Include="FrmCompileMessages.pas"> - <Form>FormCompileMessages</Form> - </DCCReference> - <DCCReference Include="Helpers\AHCompBrowseFolderDlg.pas" /> - <DCCReference Include="Helpers\CapExec.pas" /> - <DCCReference Include="Helpers\dpp_PascalParser.pas" /> - <DCCReference Include="Helpers\HtHint.pas" /> - <DCCReference Include="Helpers\JVCLConfiguration.pas" /> - <DCCReference Include="Helpers\MainConfig.pas"> - <Form>FormJvclIncConfig</Form> - </DCCReference> - <DCCReference Include="InstallerConsts.pas" /> - <DCCReference Include="Intf.pas" /> - <DCCReference Include="JCLData.pas" /> - <DCCReference Include="JediRegInfo.pas" /> - <DCCReference Include="JVCL3Install.pas" /> - <DCCReference Include="JVCLData.pas" /> - <DCCReference Include="Main.pas"> - <Form>FormMain</Form> - </DCCReference> - <DCCReference Include="MissingPropertyFix.pas" /> - <DCCReference Include="PackageUtils.pas" /> - <DCCReference Include="PageBuilder.pas" /> - <DCCReference Include="Pages\PgConfig.pas" /> - <DCCReference Include="Pages\PgIDESelection.pas" /> - <DCCReference Include="Pages\PgInstall.pas" /> - <DCCReference Include="Pages\PgPackageSelection.pas" /> - <DCCReference Include="Pages\PgSummary.pas" /> - <DCCReference Include="Pages\PgUninstall.pas" /> - <DCCReference Include="RegConfig.pas" /> - <DCCReference Include="Utils.pas" /> - </ItemGroup> - <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> -</Project> \ No newline at end of file + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{27a7b005-bb66-4856-a972-9934f6ba8f43}</ProjectGuid> + <MainSource>JVCLInstall.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Basis' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>JVCLInstall.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_MapFile>3</DCC_MapFile> + <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> + <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> + <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> + <DCC_HppOutput>..\..\dcu</DCC_HppOutput> + <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;RELEASE;$(DCC_Define)</DCC_Define> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_DependencyCheckOutputName>..\..\bin\JVCLInstall.exe</DCC_DependencyCheckOutputName> + <Version>7.0</Version> + <DCC_MapFile>3</DCC_MapFile> + <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> + <DCC_DcuOutput>..\..\dcu</DCC_DcuOutput> + <DCC_ObjOutput>..\..\dcu</DCC_ObjOutput> + <DCC_HppOutput>..\..\dcu</DCC_HppOutput> + <DCC_Define>NO_JCL;USE_DXGETTEXT;DEFAULT_JVCL_INC;DEBUG;DEBUG;$(DCC_Define)</DCC_Define> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType/> + <BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + <Parameters Name="RunParams">--ignore-ide</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1031</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">JVCLInstall.dpr</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="JVCLInstall.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Main.pas"> + <Form>FormMain</Form> + </DCCReference> + <DCCReference Include="Core.pas"/> + <DCCReference Include="JVCL3Install.pas"/> + <DCCReference Include="PageBuilder.pas"/> + <DCCReference Include="DelphiData.pas"/> + <DCCReference Include="JCLData.pas"/> + <DCCReference Include="JVCLData.pas"/> + <DCCReference Include="Helpers\AHCompBrowseFolderDlg.pas"/> + <DCCReference Include="Pages\PgIDESelection.pas"/> + <DCCReference Include="Pages\PgConfig.pas"/> + <DCCReference Include="Frames\FrmConfigPage.pas"> + <Form>FrameConfigPage</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Helpers\dpp_PascalParser.pas"/> + <DCCReference Include="Helpers\JVCLConfiguration.pas"/> + <DCCReference Include="Frames\FrmDirEditBrowse.pas"> + <Form>FrameDirEditBrowse</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Frames\FrmUninstall.pas"> + <Form>FrameUninstall</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Pages\PgSummary.pas"/> + <DCCReference Include="Frames\FrmPackageSelection.pas"> + <Form>FramePackageSelection</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="..\..\devtools\PackagesGenerator\FileUtils.pas"/> + <DCCReference Include="..\..\devtools\PackagesGenerator\GenerateUtils.pas"/> + <DCCReference Include="..\..\devtools\PackagesGenerator\ConditionParser.pas"/> + <DCCReference Include="..\..\devtools\common\PackageInformation.pas"/> + <DCCReference Include="Utils.pas"/> + <DCCReference Include="Compile.pas"/> + <DCCReference Include="Intf.pas"/> + <DCCReference Include="PackageUtils.pas"/> + <DCCReference Include="Helpers\CapExec.pas"/> + <DCCReference Include="Pages\PgPackageSelection.pas"/> + <DCCReference Include="Helpers\HtHint.pas"/> + <DCCReference Include="MissingPropertyFix.pas"/> + <DCCReference Include="Frames\FrmInstall.pas"> + <Form>FrameInstall</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Pages\PgInstall.pas"/> + <DCCReference Include="Pages\PgUninstall.pas"/> + <DCCReference Include="Helpers\MainConfig.pas"> + <Form>FormJvclIncConfig</Form> + </DCCReference> + <DCCReference Include="CmdLineUtils.pas"/> + <DCCReference Include="InstallerConsts.pas"/> + <DCCReference Include="FrmCompile.pas"> + <Form>FormCompile</Form> + </DCCReference> + <DCCReference Include="FrmCompileMessages.pas"> + <Form>FormCompileMessages</Form> + </DCCReference> + <DCCReference Include="JediRegInfo.pas"/> + <DCCReference Include="RegConfig.pas"/> + <DCCReference Include="Dcc32FileAgePatch.pas"/> + <BuildConfiguration Include="Basis"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ItemGroup/> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Deleted: trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr 2008-11-18 17:15:04 UTC (rev 12053) +++ trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dpr 2008-11-24 21:32:16 UTC (rev 12054) @@ -1,124 +0,0 @@ -{----------------------------------------------------------------------------- -The contents of this file are subject to the Mozilla Public License -Version 1.1 (the "License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at -http://www.mozilla.org/MPL/MPL-1.1.html - -Software distributed under the License is distributed on an "AS IS" basis, -WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for -the specific language governing rights and limitations under the License. - -The Original Code is: JVCLInstallStarter.dpr, released on 2008-11-03. - -The Initial Developer of the Original Code is Andreas Hausladen -Portions created by Andreas Hausladen are Copyright (C) 2008 Andreas Hausladen -All Rights Reserved. - -Contributor(s): - -You may retrieve the latest version of this file at the Project JEDI's JVCL home page, -located at http://jvcl.sourceforge.net - -Known Issues: ------------------------------------------------------------------------------} -// $Id$ - -program JVCLInstallStarter; - -{$APPTYPE CONSOLE} - -{ JVCLInstallStarter is used to get the JVCLInstaller into the forground under Windows Vista. - Under Vista a GUI application will be send to the back if it is started from a console window - that is closing after triggering the start of the GUI application. - - JVCLInstallStarter waits until the GUI application is idle and then terminates. It is also - a replacement for Windows's "start" command. } - -uses - Windows; - -{$R CommCtrlAsInvoker.res} - -function SysErrorMessage(ErrorCode: Cardinal): string; -var - Buffer: array[0..1024] of Char; -var - Len: Integer; -begin - Len := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or - FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, ErrorCode, 0, Buffer, Length(Buffer), nil); - while (Len > 0) and ((Buffer[Len - 1] <= #32) or (Buffer[Len - 1] = '.')) do - Dec(Len); - SetString(Result, Buffer, Len); -end; - -var - P: PChar; - InStr: Boolean; - ProcessInfo: TProcessInformation; - StartupInfo: TStartupInfo; - S: string; - SecAttr: TSecurityAttributes; - LastError: Cardinal; -begin - P := GetCommandLine; - if P = nil then - begin - WriteLn(ErrOutput, 'GetCommandLine returned NULL'); - Halt(1); - end; - - InStr := False; - while P[0] <> #0 do - begin - if P[0] = '"' then - begin - if InStr and (P[1] = '"') then - Inc(P) - else - InStr := not InStr; - end - else if (P[0] <= ' ') and not InStr then - Break; - Inc(P); - end; - - if P[0] <> #0 then - begin - while (P[0] <> #0) and (P[0] <= #32) do - Inc(P); - end; - - if P[0] <> #0 then - begin - S := P; - - FillChar(SecAttr, SizeOf(SecAttr), 0); - SecAttr.nLength := SizeOf(SecAttr); - SecAttr.bInheritHandle := False; - - FillChar(StartupInfo, SizeOf(StartupInfo), 0); - if CreateProcess(nil, PChar(S), @SecAttr, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then - begin - CloseHandle(ProcessInfo.hThread); - WaitForInputIdle(ProcessInfo.hProcess, INFINITE); - CloseHandle(ProcessInfo.hProcess); - end - else - begin - LastError := GetLastError; - - SetLength(S, 1024); - SetLength(S, FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or - FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, LastError, 0, PChar(S), Length(S), nil)); - WriteLn(ErrOutput, S); - end; - - ExitCode := 0; - end - else - begin - WriteLn(ErrOutput, 'No executable specified'); - ExitCode := 1; - end; -end. Deleted: trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj =================================================================== --- trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj 2008-11-18 17:15:04 UTC (rev 12053) +++ trunk/jvcl/install/JVCLInstall/JVCLInstallStarter.dproj 2008-11-24 21:32:16 UTC (rev 12054) @@ -1,104 +0,0 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectGuid>{02676ECE-0BB1-4801-8014-5E99A122F5B1}</ProjectGuid> - <MainSource>JVCLInstallStarter.dpr</MainSource> - <Config Condition="'$(Config)'==''">Debug</Config> - <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <ProjectVersion>12.0</ProjectVersion> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Basis' or '$(Base)'!=''"> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> - <Cfg_1>true</Cfg_1> - <CfgParent>Base</CfgParent> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> - <Cfg_2>true</Cfg_2> - <CfgParent>Base</CfgParent> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_ImageBase>00400000</DCC_ImageBase> - <DCC_E>false</DCC_E> - <DCC_Platform>x86</DCC_Platform> - <DCC_DependencyCheckOutputName>JVCLInstallStarter.exe</DCC_DependencyCheckOutputName> - <DCC_N>false</DCC_N> - <DCC_S>false</DCC_S> - <DCC_F>false</DCC_F> - <DCC_K>false</DCC_K> - </PropertyGroup> - <PropertyGroup Condition="'$(Cfg_1)'!=''"> - <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> - <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> - <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_DebugInformation>false</DCC_DebugInformation> - </PropertyGroup> - <PropertyGroup Condition="'$(Cfg_2)'!=''"> - <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> - </PropertyGroup> - <ItemGroup> - <DelphiCompile Include="JVCLInstallStarter.dpr"> - <MainSource>MainSource</MainSource> - </DelphiCompile> - <BuildConfiguration Include="Basis"> - <Key>Base</Key> - </BuildConfiguration> - <BuildConfiguration Include="Debug"> - <Key>Cfg_2</Key> - <CfgParent>Base</CfgParent> - </BuildConfiguration> - <BuildConfiguration Include="Release"> - <Key>Cfg_1</Key> - <CfgParent>Base</CfgParent> - </BuildConfiguration> - </ItemGroup> - <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> - <ProjectExtensions> - <Borland.Personality>Delphi.Personality.12</Borland.Personality> - <Borland.ProjectType>VCLApplication</Borland.ProjectType> - <BorlandProject> - <Delphi.Personality> - <Source> - <Source Name="MainSource">JVCLInstallStarter.dpr</Source> - </Source> - <Parameters> - <Parameters Name="UseLauncher">False</Parameters> - <Parameters Name="LoadAllSymbols">True</Parameters> - <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> - <Parameters Name="RunParams">bin\JVCLInstall.exe</Parameters> - <Parameters Name="DebugCWD">Z:\Jedi\JVCL3</Parameters> - </Parameters> - <VersionInfo> - <VersionInfo Name="IncludeVerInfo">False</VersionInfo> - <VersionInfo Name="AutoIncBuild">False</VersionInfo> - <VersionInfo Name="MajorVer">1</VersionInfo> - <VersionInfo Name="MinorVer">0</VersionInfo> - <VersionInfo Name="Release">0</VersionInfo> - <VersionInfo Name="Build">0</VersionInfo> - <VersionInfo Name="Debug">False</VersionInfo> - <VersionInfo Name="PreRelease">False</VersionInfo> - <VersionInfo Name="Special">False</VersionInfo> - <VersionInfo Name="Private">False</VersionInfo> - <VersionInfo Name="DLL">False</VersionInfo> - <VersionInfo Name="Locale">1031</VersionInfo> - <VersionInfo Name="CodePage">1252</VersionInfo> - </VersionInfo> - <VersionInfoKeys> - <VersionInfoKeys Name="CompanyName"/> - <VersionInfoKeys Name="FileDescription"/> - <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="InternalName"/> - <VersionInfoKeys Name="LegalCopyright"/> - <VersionInfoKeys Name="LegalTrademarks"/> - <VersionInfoKeys Name="OriginalFilename"/> - <VersionInfoKeys Name="ProductName"/> - <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="Comments"/> - </VersionInfoKeys> - </Delphi.Personality> - </BorlandProject> - <ProjectFileVersion>12</ProjectFileVersion> - </ProjectExtensions> - </Project> Modified: trunk/jvcl/install.bat =================================================================== --- trunk/jvcl/install.bat 2008-11-18 17:15:04 UTC (rev 12053) +++ trunk/jvcl/install.bat 2008-11-24 21:32:16 UTC (rev 12054) @@ -13,8 +13,8 @@ :: --runtime-package-rtl --runtime-package-vcl if ERRORLEVEL 1 goto Failed -if EXIST JVCLInstallStarter.cfg del JVCLInstallStarter.cfg -..\..\packages\bin\dcc32ex.exe -Q -B -E..\..\bin -n..\..\dcu JVCLInstallStarter.dpr >NUL +if EXIST JVCLCmdStarter.cfg del JVCLCmdStarter.cfg +..\..\packages\bin\dcc32ex.exe -Q -B -E..\..\bin -n..\..\dcu JVCLCmdStarter.dpr >NUL ::if ERRORLEVEL 1 goto Failed cd ..\.. @@ -43,8 +43,8 @@ echo. echo [Starting installer...] echo bin\JVCLInstall.exe %2 %3 %4 %5 %6 %7 %8 %9 -if not exist bin\JVCLInstallStarter.exe goto :FailStart -bin\JVCLInstallStarter.exe bin\JVCLInstall.exe %2 %3 %4 %5 %6 %7 %8 %9 +if not exist bin\JVCLCmdStarter.exe goto :FailStart +bin\JVCLCmdStarter.exe bin\JVCLInstall.exe %2 %3 %4 %5 %6 %7 %8 %9 if ERRORLEVEL 1 goto FailStart goto Leave This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-25 18:33:33
|
Revision: 12058 http://jvcl.svn.sourceforge.net/jvcl/?rev=12058&view=rev Author: ahuser Date: 2008-11-25 18:33:16 +0000 (Tue, 25 Nov 2008) Log Message: ----------- The JvSpellChecker units are now compiled and installed by the JvCmp package. Modified Paths: -------------- trunk/jvcl/design/JvCmpReg.pas trunk/jvcl/packages/c5/JvCmpC5R.bpk trunk/jvcl/packages/c5/JvCmpC5R.cpp trunk/jvcl/packages/c5/JvCmpC5R.dpk trunk/jvcl/packages/c6/JvCmpC6R.bpk trunk/jvcl/packages/c6/JvCmpC6R.dpk trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk trunk/jvcl/packages/d10/JvCmpD10R.dpk trunk/jvcl/packages/d11/JvCmpD11R.dpk trunk/jvcl/packages/d12/JvCmpD12R.dpk trunk/jvcl/packages/d5/JvCmpD5R.dpk trunk/jvcl/packages/d6/JvCmpD6R.dpk trunk/jvcl/packages/d7/JvCmpD7R.dpk trunk/jvcl/packages/d9/JvCmpD9R.dpk trunk/jvcl/packages/xml/JvCmp-R.xml trunk/jvcl/run/JvSpellChecker.pas trunk/jvcl/run/JvSpellerForm.pas Modified: trunk/jvcl/design/JvCmpReg.pas =================================================================== --- trunk/jvcl/design/JvCmpReg.pas 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/design/JvCmpReg.pas 2008-11-25 18:33:16 UTC (rev 12058) @@ -47,7 +47,7 @@ JvPageManager, JvPatchFile, JvStringHolder, JvTimeLimit, JvTranslator, JvPrint, JvEasterEgg, JvMouseGesture, JvLogFile, JvDataEmbeddedEditor, JvPatcherEditor, JvProfilerForm, JvPageManagerForm, - JvDsgnEditors; + JvDsgnEditors, JvSpellChecker, JvspellerForm; {$R JvCmpReg.dcr} @@ -65,7 +65,8 @@ TJvDataEmbedded, TJvEnterAsTab, TJvMergeManager, TJvPageManager, TJvPatchFile, TJvProfiler, TJvStrHolder, TJvMultiStringHolder, TJvTimeLimit, TJvTranslator, TJvTranslatorStrings, - TJvPrint, TJvEasterEgg, TJvMouseGesture, TJvMouseGestureHook, TJvLogFile]); + TJvPrint, TJvEasterEgg, TJvMouseGesture, TJvMouseGestureHook, TJvLogFile, + TJvSpellChecker, TJvSpeller]); RegisterComponents(RsPaletteNonVisual, [TJvCreateProcess, TJvWinHelp]); RegisterPropertyEditor(TypeInfo(string), TJvCreateProcess, Modified: trunk/jvcl/packages/c5/JvCmpC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/JvCmpC5R.bpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/c5/JvCmpC5R.bpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:11 UTC + Last generated: 25-11-2008 18:25:21 UTC ***************************************************************************** --> <PROJECT> @@ -33,6 +33,9 @@ ..\..\lib\c5\JvLogForm.obj ..\..\lib\c5\JvMergeManager.obj ..\..\lib\c5\JvControlComponent.obj + ..\..\lib\c5\JvSpellChecker.obj + ..\..\lib\c5\JvSpellerForm.obj + ..\..\lib\c5\JvSpellIntf.obj "/> <RESFILES value="JvCmpC5R.res"/> <IDLFILES value=""/> Modified: trunk/jvcl/packages/c5/JvCmpC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/JvCmpC5R.cpp 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/c5/JvCmpC5R.cpp 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 01-03-2006 08:42:36 UTC + Last generated: 25-11-2008 18:25:22 UTC ----------------------------------------------------------------------------- */ @@ -30,6 +30,9 @@ USEUNIT("..\..\run\JvLogForm.pas"); USEUNIT("..\..\run\JvMergeManager.pas"); USEUNIT("..\..\run\JvControlComponent.pas"); +USEUNIT("..\..\run\JvSpellChecker.pas"); +USEUNIT("..\..\run\JvSpellerForm.pas"); +USEUNIT("..\..\run\JvSpellIntf.pas"); USEPACKAGE("JvCoreC5R.bpi"); USEPACKAGE("JvSystemC5R.bpi"); USEPACKAGE("JclC50.bpi"); Modified: trunk/jvcl/packages/c5/JvCmpC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/JvCmpC5R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/c5/JvCmpC5R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:14 UTC + Last generated: 25-11-2008 18:25:22 UTC ----------------------------------------------------------------------------- } @@ -62,7 +62,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/c6/JvCmpC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvCmpC6R.bpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/c6/JvCmpC6R.bpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:15 UTC + Last generated: 25-11-2008 18:25:23 UTC ***************************************************************************** --> <PROJECT> @@ -33,6 +33,9 @@ ..\..\lib\c6\JvLogForm.obj ..\..\lib\c6\JvMergeManager.obj ..\..\lib\c6\JvControlComponent.obj + ..\..\lib\c6\JvSpellChecker.obj + ..\..\lib\c6\JvSpellerForm.obj + ..\..\lib\c6\JvSpellIntf.obj "/> <RESFILES value="JvCmpC6R.res"/> <IDLFILES value=""/> @@ -120,6 +123,9 @@ <FILE FILENAME="..\..\run\JvLogForm.pas" FORMNAME="FoLog" UNITNAME="JvLogForm" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvMergeManager.pas" FORMNAME="" UNITNAME="JvMergeManager" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvControlComponent.pas" FORMNAME="" UNITNAME="JvControlComponent" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvSpellChecker.pas" FORMNAME="" UNITNAME="JvSpellChecker" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvSpellerForm.pas" FORMNAME="" UNITNAME="JvSpellerForm" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\run\JvSpellIntf.pas" FORMNAME="" UNITNAME="JvSpellIntf" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> </FILELIST> <BUILDTOOLS> </BUILDTOOLS> Modified: trunk/jvcl/packages/c6/JvCmpC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvCmpC6R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/c6/JvCmpC6R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:19 UTC + Last generated: 25-11-2008 18:25:24 UTC ----------------------------------------------------------------------------- } @@ -64,7 +64,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/c6/JvRuntimeDesignC6R.bpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvRuntimeDesign-R.xml) - Last generated: 09-11-2008 21:42:09 UTC + Last generated: 25-11-2008 18:25:24 UTC ***************************************************************************** --> <PROJECT> @@ -14,7 +14,6 @@ <PROJECT value="JvRuntimeDesignC6R.bpl"/> <OBJFILES value=" ..\..\lib\c6\JvRuntimeDesignC6R.obj - ..\..\lib\c6\JvInspDB.obj ..\..\lib\c6\JvInspector.obj ..\..\lib\c6\JvDynControlEngineJVCLInspector.obj ..\..\lib\c6\JvInspExtraEditors.obj @@ -40,8 +39,6 @@ Jcl.bpi rtl.bpi vcl.bpi - dbrtl.bpi - vcldb.bpi vclx.bpi "/> <PATHCPP value=".;"/> @@ -90,10 +87,7 @@ <FILE FILENAME="Jcl.bpi" FORMNAME="" UNITNAME="Jcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="rtl.bpi" FORMNAME="" UNITNAME="rtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="vcl.bpi" FORMNAME="" UNITNAME="vcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="dbrtl.bpi" FORMNAME="" UNITNAME="dbrtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="vcldb.bpi" FORMNAME="" UNITNAME="vcldb" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="vclx.bpi" FORMNAME="" UNITNAME="vclx" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\run\JvInspDB.pas" FORMNAME="" UNITNAME="JvInspDB" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvInspector.pas" FORMNAME="" UNITNAME="JvInspector" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvDynControlEngineJVCLInspector.pas" FORMNAME="" UNITNAME="JvDynControlEngineJVCLInspector" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvInspExtraEditors.pas" FORMNAME="" UNITNAME="JvInspExtraEditors" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/c6/JvRuntimeDesignC6R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvRuntimeDesign-R.xml) - Last generated: 09-11-2008 21:42:10 UTC + Last generated: 25-11-2008 18:25:24 UTC ----------------------------------------------------------------------------- } @@ -42,13 +42,10 @@ Jcl, rtl, vcl, - dbrtl, - vcldb, vclx ; contains - JvInspDB in '..\..\run\JvInspDB.pas' , JvInspector in '..\..\run\JvInspector.pas' , JvDynControlEngineJVCLInspector in '..\..\run\JvDynControlEngineJVCLInspector.pas' , JvInspExtraEditors in '..\..\run\JvInspExtraEditors.pas' , Modified: trunk/jvcl/packages/d10/JvCmpD10R.dpk =================================================================== --- trunk/jvcl/packages/d10/JvCmpD10R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/d10/JvCmpD10R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:22 UTC + Last generated: 25-11-2008 18:25:10 UTC ----------------------------------------------------------------------------- } @@ -64,7 +64,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/d11/JvCmpD11R.dpk =================================================================== --- trunk/jvcl/packages/d11/JvCmpD11R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/d11/JvCmpD11R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:25 UTC + Last generated: 25-11-2008 18:25:25 UTC ----------------------------------------------------------------------------- } @@ -64,7 +64,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/d12/JvCmpD12R.dpk =================================================================== --- trunk/jvcl/packages/d12/JvCmpD12R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/d12/JvCmpD12R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 03-11-2008 19:44:39 UTC + Last generated: 25-11-2008 18:25:25 UTC ----------------------------------------------------------------------------- } @@ -64,7 +64,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/d5/JvCmpD5R.dpk =================================================================== --- trunk/jvcl/packages/d5/JvCmpD5R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/d5/JvCmpD5R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:27 UTC + Last generated: 25-11-2008 17:21:02 UTC ----------------------------------------------------------------------------- } @@ -62,7 +62,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/d6/JvCmpD6R.dpk =================================================================== --- trunk/jvcl/packages/d6/JvCmpD6R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/d6/JvCmpD6R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:29 UTC + Last generated: 25-11-2008 18:24:37 UTC ----------------------------------------------------------------------------- } @@ -64,7 +64,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/d7/JvCmpD7R.dpk =================================================================== --- trunk/jvcl/packages/d7/JvCmpD7R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/d7/JvCmpD7R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:31 UTC + Last generated: 25-11-2008 18:24:53 UTC ----------------------------------------------------------------------------- } @@ -64,7 +64,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/d9/JvCmpD9R.dpk =================================================================== --- trunk/jvcl/packages/d9/JvCmpD9R.dpk 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/d9/JvCmpD9R.dpk 2008-11-25 18:33:16 UTC (rev 12058) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvCmp-R.xml) - Last generated: 28-10-2007 10:44:34 UTC + Last generated: 25-11-2008 18:25:27 UTC ----------------------------------------------------------------------------- } @@ -64,7 +64,10 @@ JvLogFile in '..\..\run\JvLogFile.pas' , JvLogForm in '..\..\run\JvLogForm.pas' {FoLog}, JvMergeManager in '..\..\run\JvMergeManager.pas' , - JvControlComponent in '..\..\run\JvControlComponent.pas' + JvControlComponent in '..\..\run\JvControlComponent.pas' , + JvSpellChecker in '..\..\run\JvSpellChecker.pas' , + JvSpellerForm in '..\..\run\JvSpellerForm.pas' , + JvSpellIntf in '..\..\run\JvSpellIntf.pas' ; end. Modified: trunk/jvcl/packages/xml/JvCmp-R.xml =================================================================== --- trunk/jvcl/packages/xml/JvCmp-R.xml 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/packages/xml/JvCmp-R.xml 2008-11-25 18:33:16 UTC (rev 12058) @@ -42,5 +42,8 @@ <File Name="..\..\run\JvLogForm.pas" Targets="all" Formname="FoLog" Condition=""/> <File Name="..\..\run\JvMergeManager.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvControlComponent.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\run\JvSpellChecker.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\run\JvSpellerForm.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\run\JvSpellIntf.pas" Targets="all" Formname="" Condition=""/> </Contains> </Package> Modified: trunk/jvcl/run/JvSpellChecker.pas =================================================================== --- trunk/jvcl/run/JvSpellChecker.pas 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/run/JvSpellChecker.pas 2008-11-25 18:33:16 UTC (rev 12058) @@ -83,7 +83,7 @@ implementation uses - JclStrings, // StrAddRef, StrDecRef +// JclStrings, // StrAddRef, StrDecRef JvTypes, JvResources; // NOTE: hash table and soundex lookup code originally from Julian Bucknall's @@ -99,7 +99,7 @@ // default implementation of the IJvSpellChecker interface. To provide a new implementation, // assign a function to the CreateSpellChecker function variable in JvSpellIntf that returns an // instance of your implementation. For more info, see InternalSpellChecker in this unit. - TJvDefaultSpellChecker = class(TInterfacedObject, IInterface, IJvSpellChecker) + TJvDefaultSpellChecker = class(TInterfacedObject, IJvSpellChecker) private FText: string; FCurrentWord: string; @@ -131,8 +131,8 @@ procedure ClearTables; virtual; function GetCurrentWord: string; virtual; procedure GetWordSuggestions(const Value: string; AStrings: TStrings); virtual; - procedure AddSoundex(ASoundex: TSoundex; Value: string); virtual; - procedure AddWord(Value: string); virtual; + procedure AddSoundex(ASoundex: TSoundex; const Value: string); virtual; + procedure AddWord(const Value: string); virtual; function WordExists(const Value: string): Boolean; virtual; function CanIgnore(const Value: string): Boolean; virtual; { IJvSpellChecker } @@ -158,33 +158,36 @@ function Soundex(const Value: string): TSoundex; const - Encode: array ['A'..'Z'] of Char = + Encode: array ['A'..'Z'] of AnsiChar = ('0', '1', '2', '3', '0', '1', '2', '/', '0', '2', '2', '4', '5', '5', '0', '1', '2', '6', '2', '3', '0', '1', '/', '2', '0', '2'); var Ch: Char; - Code, OldCode: Char; + Code, OldCode: AnsiChar; SxInx: Integer; I: Integer; + UpperValue: string; begin Result := 'A000'; if Value = '' then Exit; // raise Exception.Create('Soundex: input string is empty'); - Ch := UpCase(Value[1]); - if not ('A' <= Ch) and (Ch <= 'Z') then + UpperValue := AnsiUpperCase(Value); + + Ch := UpperValue[1]; + if (Ch < 'A') or (Ch > 'Z') then Ch := 'A'; // raise Exception.Create('Soundex: unknown character in input string'); - Result[1] := Ch; + Result[1] := AnsiChar(Ch); Code := Encode[Ch]; OldCode := Code; SxInx := 2; - for I := 2 to Length(Value) do + for I := 2 to Length(UpperValue) do begin if (Code <> '/') then OldCode := Code; - Ch := UpCase(Value[I]); + Ch := UpperValue[I]; if not ('A' <= Ch) and (Ch <= 'Z') then Code := '0' else @@ -220,15 +223,15 @@ ((Ord(S[1]) - Ord('A')) * 343) + ((Ord(S[2]) - Ord('0')) * 49) + ((Ord(S[3]) - Ord('0')) * 7) + - (Ord(S[4]) - Ord('0')); + (Ord(S[4]) - Ord('0')); end; -function GetNextWord(var S: PAnsiChar; out Word: AnsiString; Delimiters: TSysCharSet): Boolean; +function GetNextWord(var S: PChar; out Word: string; Delimiters: TSysCharSet): Boolean; var - Start: PAnsiChar; + Start: PChar; begin Word := ''; - Result := (S = nil); + Result := S = nil; if Result then Exit; Start := nil; @@ -241,7 +244,7 @@ Exit; end else - if S^ in Delimiters then + if ((S^ <= #255) and (AnsiChar(S^) in Delimiters)) then begin if Start <> nil then begin @@ -249,7 +252,7 @@ Exit; end else - while (S^ in Delimiters) and (S^ <> #0) do + while ((S^ <= #255) and (AnsiChar(S^) in Delimiters)) and (S^ <> #0) do Inc(S); end else @@ -290,24 +293,24 @@ inherited Destroy; end; -procedure TJvDefaultSpellChecker.AddSoundex(ASoundex: TSoundex; Value: string); +procedure TJvDefaultSpellChecker.AddSoundex(ASoundex: TSoundex; const Value: string); var Hash: Integer; begin Hash := SoundexHash(ASoundex) mod SoundexTableSize; if FSoundexTable[Hash] = nil then - FSoundexTable[Hash] := TList.Create; - TList(FSoundexTable[Hash]).Add(Pointer(Value)); + FSoundexTable[Hash] := TStringList.Create; + TStringList(FSoundexTable[Hash]).Add(Value); end; -procedure TJvDefaultSpellChecker.AddWord(Value: string); +procedure TJvDefaultSpellChecker.AddWord(const Value: string); var Hash: Integer; begin Hash := ELFHash(Value) mod WordTableSize; if FWordTable[Hash] = nil then - FWordTable[Hash] := TList.Create; - TList(FWordTable[Hash]).Add(Pointer(Value)); + FWordTable[Hash] := TStringList.Create; + TStringList(FWordTable[Hash]).Add(Value); end; procedure TJvDefaultSpellChecker.BuildTables; @@ -326,7 +329,7 @@ System.Reset(AFile); try repeat - Readln(AFile, Value); + ReadLn(AFile, Value); if Value <> '' then begin // (rom) simple compession for dictionary @@ -337,7 +340,6 @@ LastValue := Value; Value := AnsiLowerCase(Value); - StrAddRef(Value); AddWord(Value); SoundexVal := Soundex(Value); AddSoundex(SoundexVal, Value); @@ -350,7 +352,6 @@ if UserDictionary[I] <> '' then begin Value := AnsiLowerCase(UserDictionary[I]); - StrAddRef(Value); AddWord(Value); SoundexVal := Soundex(Value); AddSoundex(SoundexVal, Value); @@ -360,34 +361,21 @@ procedure TJvDefaultSpellChecker.ClearTables; var - I, J: Integer; - List: TList; - S: string; + I: Integer; begin if FSoundexTable <> nil then for I := 0 to FSoundexTable.Count - 1 do begin - TList(FSoundexTable[I]).Free; + TObject(FSoundexTable[I]).Free; FSoundexTable[I] := nil; end; -// FSoundexTable.Clear; if FWordTable <> nil then for I := 0 to FWordTable.Count - 1 do begin - List := TList(FWordTable[I]); - if List <> nil then - begin - for J := 0 to List.Count - 1 do - begin - Pointer(S) := List[J]; - StrDecRef(S); - end; - TList(FWordTable[I]).Free; - FWordTable[I] := nil; - end; + TObject(FWordTable[I]).Free; + FWordTable[I] := nil; end; -// FWordTable.Clear; end; function TJvDefaultSpellChecker.GetSuggestions: TStrings; @@ -403,24 +391,20 @@ procedure TJvDefaultSpellChecker.GetWordSuggestions(const Value: string; AStrings: TStrings); var SoundexVal: TSoundex; - I, Hash: Integer; - List: TList; + Hash: Integer; begin - if AStrings = nil then - Exit; - AStrings.BeginUpdate; - try - AStrings.Clear; - SoundexVal := Soundex(Value); - Hash := SoundexHash(SoundexVal) mod SoundexTableSize; - if FSoundexTable[Hash] <> nil then - begin - List := TList(FSoundexTable[Hash]); - for I := 0 to List.Count - 1 do - AStrings.Add(string(List[I])); + if AStrings <> nil then + begin + AStrings.BeginUpdate; + try + AStrings.Clear; + SoundexVal := Soundex(Value); + Hash := SoundexHash(SoundexVal) mod SoundexTableSize; + if FSoundexTable[Hash] <> nil then + AStrings.AddStrings(TStringList(FSoundexTable[Hash])); + finally + AStrings.EndUpdate; end; - finally - AStrings.EndUpdate; end; end; @@ -436,7 +420,7 @@ if FPosition >= Length(FText) then Exit; S := PChar(Text) + FPosition - 1; - if (S = nil) or (S^ = #0) or (trim(S) = '') then + if (S = nil) or (S^ = #0) or (Trim(S) = '') then Exit; while True do begin @@ -455,7 +439,7 @@ Break; end; end; - if (S = nil) or (S^ = #0) or (trim(S) = '') then + if (S = nil) or (S^ = #0) or (Trim(S) = '') then begin Result := False; Break; @@ -478,14 +462,14 @@ var I: Integer; Hash: Integer; - List: TList; + List: TStringList; FWord: string; begin FWord := AnsiLowerCase(Value); Hash := ELFHash(FWord) mod WordTableSize; if FWordTable[Hash] <> nil then begin - List := TList(FWordTable[Hash]); + List := TStringList(FWordTable[Hash]); for I := 0 to List.Count - 1 do if AnsiSameText(PChar(List[I]), FWord) then begin @@ -589,9 +573,10 @@ begin if FSpellChecker = nil then begin - if not Assigned(CreateSpellChecker) then - raise EJVCLException.CreateRes(@RsENoSpellCheckerAvailable); - FSpellChecker := CreateSpellChecker; + if Assigned(CreateSpellChecker) then + FSpellChecker := CreateSpellChecker + else + FSpellChecker := InternalCreateSpellChecker; end; Result := FSpellChecker; end; @@ -636,11 +621,10 @@ SpellChecker.UserDictionary := Value; end; +{$IFDEF UNITVERSIONING} initialization - {$IFDEF UNITVERSIONING} RegisterUnitVersion(HInstance, UnitVersioning); - {$ENDIF UNITVERSIONING} - @CreateSpellChecker := @InternalCreateSpellChecker; +{$ENDIF UNITVERSIONING} {$IFDEF UNITVERSIONING} finalization Modified: trunk/jvcl/run/JvSpellerForm.pas =================================================================== --- trunk/jvcl/run/JvSpellerForm.pas 2008-11-25 17:16:26 UTC (rev 12057) +++ trunk/jvcl/run/JvSpellerForm.pas 2008-11-25 18:33:16 UTC (rev 12058) @@ -80,11 +80,11 @@ procedure IndexUserDictionary; procedure SetDictionary(const Value: TFileName); procedure SetUserDictionary(const Value: TFileName); - procedure CreateSpellerDialog(SpellWord: string); + procedure CreateSpellerDialog(const SpellWord: string); public constructor Create(AOwner: TComponent); override; - procedure LoadDictionary(AFile: string); - procedure LoadUserDictionary(AFile: string); + procedure LoadDictionary(const AFile: string); + procedure LoadUserDictionary(const AFile: string); procedure Spell(var SourceText: string); published property Dictionary: TFileName read FDictionary write SetDictionary; @@ -111,7 +111,7 @@ {$R *.dfm} -function Q_PosStr(const FindString, SourceString: string; StartPos: Integer): Integer; +function Q_PosEx(const FindString, SourceString: string; StartPos: Integer): Integer; asm PUSH ESI PUSH EDI @@ -133,8 +133,34 @@ MOV EBX,EAX XCHG EAX,EDX NOP +{$IFDEF UNICODE} ADD EDI,ECX + ADD EDI,ECX MOV ECX,EAX + MOV AX,WORD PTR [ESI] +@@lp1: CMP AX,WORD PTR [EDI] + JE @@uu +@@fr: ADD EDI,2 + DEC ECX + JNZ @@lp1 +@@qt0: XOR EAX,EAX + JMP @@qt +@@ms: MOV AX,WORD PTR [ESI] + MOV EBX,EDX + JMP @@fr +@@uu: TEST EDX,EDX + JE @@fd +@@lp2: MOV AX,WORD PTR [ESI+EBX*2] + XOR AX,WORD PTR [EDI+EBX*2] + JNE @@ms + DEC EBX + JNE @@lp2 +@@fd: LEA EAX,[EDI+2] + SUB EAX,[ESP] + SHR EAX,1 +{$ELSE} + ADD EDI,ECX + MOV ECX,EAX MOV AL,BYTE PTR [ESI] @@lp1: CMP AL,BYTE PTR [EDI] JE @@uu @@ -155,31 +181,39 @@ JNE @@lp2 @@fd: LEA EAX,[EDI+1] SUB EAX,[ESP] +{$ENDIF UNICODE} @@qt: POP ECX POP EBX POP EDI POP ESI end; -procedure SaveString(AFile, AText: string); +procedure SaveAnsiFileFromString(const AFile, AText: string); +var + AnsiText: AnsiString; begin + AnsiText := AnsiString(AText); with TFileStream.Create(AFile, fmCreate) do try - WriteBuffer(AText[1], Length(AText)); + WriteBuffer(AnsiText[1], Length(AnsiText)); finally Free; end; end; -function LoadString(AFile: string): string; +function LoadAnsiFileToString(const AFile: string): string; +var + AnsiText: AnsiString; begin with TFileStream.Create(AFile, fmOpenRead) do try - SetLength(Result, Size); - ReadBuffer(Result[1], Size); + SetLength(AnsiText, Size); + if AnsiText <> '' then + ReadBuffer(AnsiText[1], Size); finally Free; end; + Result := string(AnsiText); end; //=== { TJvSpeller } ========================================================= @@ -222,12 +256,13 @@ S: string; begin S := FSpellerDialog.TxtSpell.Text; - if S = '' then - Exit; - FSourceText := Copy(FSourceText, 1, FWordBegin - 1) + S + - Copy(FSourceText, FWordEnd, Length(FSourceText)); - FWordEnd := FWordEnd + (Length(S) - (FWordEnd - FWordBegin)); - Skip(Sender); + if S <> '' then + begin + FSourceText := Copy(FSourceText, 1, FWordBegin - 1) + S + + Copy(FSourceText, FWordEnd, Length(FSourceText)); + FWordEnd := FWordEnd + (Length(S) - (FWordEnd - FWordBegin)); + Skip(Sender); + end; end; procedure TJvSpeller.IndexDictionary; @@ -241,7 +276,7 @@ StartPos := FDicIndex[I - 1] else StartPos := 1; - P := Q_PosStr(Cr + Chr(96 + I), FDict, StartPos); + P := Q_PosEx(Cr + Chr(96 + I), FDict, StartPos); if P <> 0 then FDicIndex[I] := P else @@ -260,7 +295,7 @@ StartPos := FUserDicIndex[I - 1] else StartPos := 1; - P := Q_PosStr(Cr + Chr(96 + I), FUserDic, StartPos); + P := Q_PosEx(Cr + Chr(96 + I), FUserDic, StartPos); if P <> 0 then FUserDicIndex[I] := P else @@ -268,21 +303,21 @@ end; end; -procedure TJvSpeller.LoadDictionary(AFile: string); +procedure TJvSpeller.LoadDictionary(const AFile: string); begin if FileExists(AFile) then - FDict := LoadString(AFile) + FDict := LoadAnsiFileToString(AFile) else FDict := ''; IndexDictionary; end; -procedure TJvSpeller.LoadUserDictionary(AFile: string); +procedure TJvSpeller.LoadUserDictionary(const AFile: string); begin UserDictionary := AFile; FUserDicChanged := False; if FileExists(AFile) then - FUserDic := LoadString(AFile) + FUserDic := LoadAnsiFileToString(AFile) else FUserDic := ''; IndexUserDictionary; @@ -290,12 +325,10 @@ function TJvSpeller.ParseWord: string; begin - Result := ''; - if not WordBegin then - Exit; - if not WordEnd then - Exit; - Result := Copy(FSourceText, FWordBegin, FWordEnd - FWordBegin); + if WordBegin and WordEnd then + Result := Copy(FSourceText, FWordBegin, FWordEnd - FWordBegin) + else + Result := ''; end; procedure TJvSpeller.SetDictionary(const Value: TFileName); @@ -322,7 +355,7 @@ SpellNext; end; -procedure TJvSpeller.CreateSpellerDialog(SpellWord: string); +procedure TJvSpeller.CreateSpellerDialog(const SpellWord: string); begin FSpellerDialog := TJvSpellerForm.Create(Application); with FSpellerDialog do @@ -331,7 +364,7 @@ BtnSkip.OnClick := Skip; BtnChange.OnClick := Change; BtnAdd.OnClick := Add; - BtnAdd.Enabled := (UserDictionary <> ''); + BtnAdd.Enabled := UserDictionary <> ''; TxtSpell.Text := SpellWord; LblContext.Caption := Copy(FSourceText, FWordBegin, 75); end; @@ -347,40 +380,26 @@ FSourceText := SourceText; FWordEnd := 1; - repeat - Spw := ParseWord; - S := LowerCase(Spw); - if Spw <> '' then + + Spw := ParseWord; + while Spw <> '' do + begin + S := AnsiLowerCase(Spw); + Index := Ord(S[1]) - 96; + if (Index > 0) and (Index < 27) then + StartPos := FDicIndex[Index] + else + StartPos := 1; + + if Q_PosEx(S + Cr, FDict, StartPos) = 0 then begin - Index := Ord(S[1]) - 96; - if (Index > 0) and (Index < 27) then - StartPos := FDicIndex[Index] - else - StartPos := 1; - if Q_PosStr(S + Cr, FDict, StartPos) = 0 then - if FUserDic <> '' then - begin - if (Index > 0) and (Index < 27) then - StartPos := FUserDicIndex[Index] - else - StartPos := 1; - if Q_PosStr(S + Cr, FUserDic, StartPos) = 0 then - begin - CreateSpellerDialog(Spw); - try - if FSpellerDialog.ShowModal = mrOk then - SourceText := FSourceText; - // (rom) the user dictionary has to be saved always! - if FUserDicChanged then - if FUserDic <> '' then - SaveString(UserDictionary, FUserDic); - finally - FSpellerDialog.Free; - end; - Exit; - end - end + if FUserDic <> '' then + begin + if (Index > 0) and (Index < 27) then + StartPos := FUserDicIndex[Index] else + StartPos := 1; + if Q_PosEx(S + Cr, FUserDic, StartPos) = 0 then begin CreateSpellerDialog(Spw); try @@ -389,14 +408,32 @@ // (rom) the user dictionary has to be saved always! if FUserDicChanged then if FUserDic <> '' then - SaveString(UserDictionary, FUserDic); + SaveAnsiFileFromString(UserDictionary, FUserDic); finally FSpellerDialog.Free; end; Exit; + end + end + else + begin + CreateSpellerDialog(Spw); + try + if FSpellerDialog.ShowModal = mrOk then + SourceText := FSourceText; + // (rom) the user dictionary has to be saved always! + if FUserDicChanged then + if FUserDic <> '' then + SaveAnsiFileFromString(UserDictionary, FUserDic); + finally + FSpellerDialog.Free; end; + Exit; + end; end; - until Spw = ''; + + Spw := ParseWord; + end; end; procedure TJvSpeller.SpellNext; @@ -404,38 +441,40 @@ Spw, S: string; Index, StartPos: Integer; begin - repeat - Spw := ParseWord; - S := LowerCase(Spw); - if Spw <> '' then + Spw := ParseWord; + while Spw <> '' do + begin + S := AnsiLowerCase(Spw); + Index := Ord(S[1]) - 96; + if (Index > 0) and (Index < 27) then + StartPos := FDicIndex[Index] + else + StartPos := 1; + + if Q_PosEx(S + Cr, FDict, StartPos) = 0 then begin - Index := Ord(S[1]) - 96; - if (Index > 0) and (Index < 27) then - StartPos := FDicIndex[Index] - else - StartPos := 1; - if Q_PosStr(S + Cr, FDict, StartPos) = 0 then - if FUserDic <> '' then - begin - if (Index > 0) and (Index < 27) then - StartPos := FUserDicIndex[Index] - else - StartPos := 1; - if Q_PosStr(S + Cr, FUserDic, StartPos) = 0 then - begin - FSpellerDialog.TxtSpell.Text := Spw; - FSpellerDialog.LblContext.Caption := Copy(FSourceText, FWordBegin, 75); - Exit; - end; - end + if FUserDic <> '' then + begin + if (Index > 0) and (Index < 27) then + StartPos := FUserDicIndex[Index] else + StartPos := 1; + if Q_PosEx(S + Cr, FUserDic, StartPos) = 0 then begin FSpellerDialog.TxtSpell.Text := Spw; FSpellerDialog.LblContext.Caption := Copy(FSourceText, FWordBegin, 75); Exit; end; + end + else + begin + FSpellerDialog.TxtSpell.Text := Spw; + FSpellerDialog.LblContext.Caption := Copy(FSourceText, FWordBegin, 75); + Exit; + end; end; - until Spw = ''; + Spw := ParseWord; + end; FSpellerDialog.ModalResult := mrOk; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-11-26 16:33:02
|
Revision: 12060 http://jvcl.svn.sourceforge.net/jvcl/?rev=12060&view=rev Author: ahuser Date: 2008-11-26 16:32:58 +0000 (Wed, 26 Nov 2008) Log Message: ----------- JvSpellForm was in two packages Modified Paths: -------------- trunk/jvcl/design/JvJansReg.pas trunk/jvcl/packages/c5/JvJansC5R.bpk trunk/jvcl/packages/c5/JvJansC5R.cpp trunk/jvcl/packages/c5/JvJansC5R.dpk trunk/jvcl/packages/c6/JvJansC6R.bpk trunk/jvcl/packages/c6/JvJansC6R.cpp trunk/jvcl/packages/c6/JvJansC6R.dpk trunk/jvcl/packages/d10/JvJansD10R.dpk trunk/jvcl/packages/d11/JvJansD11R.dpk trunk/jvcl/packages/d12/JvJansD12R.dpk trunk/jvcl/packages/d5/JvJansD5R.dpk trunk/jvcl/packages/d6/JvJansD6R.dpk trunk/jvcl/packages/d7/JvJansD7R.dpk trunk/jvcl/packages/d9/JvJansD9R.dpk trunk/jvcl/packages/xml/JvJans-R.xml Modified: trunk/jvcl/design/JvJansReg.pas =================================================================== --- trunk/jvcl/design/JvJansReg.pas 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/design/JvJansReg.pas 2008-11-26 16:32:58 UTC (rev 12060) @@ -42,7 +42,7 @@ JvSAL, JvSALCore, JvSALMath, JvYearGrid, JvTracker, JvAirBrush, JvGridFilter, JvGridPrinter, JvArrayButton, JvForth, JvTurtle, JvPaintFX, JvDrawImage, JvBitmapButton, JvSimScope, JvSimIndicator, JvSimPID, JvSIMPIDLinker, - JvSimLogic, JvSpellerForm, JvCSVBaseControls, JvCsvBaseEditor; + JvSimLogic, JvCSVBaseControls, JvCsvBaseEditor; procedure Register; @@ -64,7 +64,6 @@ GroupDescendentsWith(TJvForthScript, TControl); GroupDescendentsWith(TJvTurtle, TControl); GroupDescendentsWith(TJvSimPIDLinker, TControl); - GroupDescendentsWith(TJvSpeller, TControl); {$ENDIF COMPILER7_UP} //TODO: Register a TShortCut Property Editor on TTreeKeyMappings class in TJvJanTreeView @@ -73,7 +72,7 @@ TJvSALCore, TJvSALMath, TJvYearGrid, TJvAirBrush, TJvTracker, TJvGridFilter, TJvGridPrinter, TJvJanTreeview, TJvPaintFX, TJvDrawImage, TJvArrayButton, TJvForthScript, TJvTurtle, - TJvBitmapButton, TJvSpeller, TJvShapedButton]); + TJvBitmapButton, TJvShapedButton]); // Simulator Components RegisterComponents(RsPaletteJansSim, [TJvSimScope, TJvSimIndicator, TJvSimPID, TJvSimPIDLinker, TJvSimConnector, TJvLogic, TJvSimButton, TJvSimLight, Modified: trunk/jvcl/packages/c5/JvJansC5R.bpk =================================================================== --- trunk/jvcl/packages/c5/JvJansC5R.bpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/c5/JvJansC5R.bpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 21-02-2007 14:20:01 UTC + Last generated: 26-11-2008 16:27:29 UTC ***************************************************************************** --> <PROJECT> @@ -31,7 +31,6 @@ ..\..\lib\c5\JvSimPID.obj ..\..\lib\c5\JvSimPIDLinker.obj ..\..\lib\c5\JvSimScope.obj - ..\..\lib\c5\JvSpellerForm.obj ..\..\lib\c5\JvSticker.obj ..\..\lib\c5\JvTracker.obj ..\..\lib\c5\JvTurtle.obj @@ -58,7 +57,6 @@ ..\..\run\JvPainterEffectsForm.dfm ..\..\run\JvPainterQBForm.dfm ..\..\run\JvQuickPreviewForm.dfm - ..\..\run\JvSpellerForm.dfm ..\..\run\JvYearGridEditForm.dfm ..\..\run\JvGridPreviewForm.dfm "/> Modified: trunk/jvcl/packages/c5/JvJansC5R.cpp =================================================================== --- trunk/jvcl/packages/c5/JvJansC5R.cpp 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/c5/JvJansC5R.cpp 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:49:45 UTC + Last generated: 26-11-2008 16:27:30 UTC ----------------------------------------------------------------------------- */ @@ -28,7 +28,6 @@ USEUNIT("..\..\run\JvSimPID.pas"); USEUNIT("..\..\run\JvSimPIDLinker.pas"); USEUNIT("..\..\run\JvSimScope.pas"); -USEUNIT("..\..\run\JvSpellerForm.pas"); USEUNIT("..\..\run\JvSticker.pas"); USEUNIT("..\..\run\JvTracker.pas"); USEUNIT("..\..\run\JvTurtle.pas"); Modified: trunk/jvcl/packages/c5/JvJansC5R.dpk =================================================================== --- trunk/jvcl/packages/c5/JvJansC5R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/c5/JvJansC5R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:49:48 UTC + Last generated: 26-11-2008 16:27:30 UTC ----------------------------------------------------------------------------- } @@ -62,7 +62,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/c6/JvJansC6R.bpk =================================================================== --- trunk/jvcl/packages/c6/JvJansC6R.bpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/c6/JvJansC6R.bpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 21-02-2007 14:13:44 UTC + Last generated: 26-11-2008 16:27:31 UTC ***************************************************************************** --> <PROJECT> @@ -31,7 +31,6 @@ ..\..\lib\c6\JvSimPID.obj ..\..\lib\c6\JvSimPIDLinker.obj ..\..\lib\c6\JvSimScope.obj - ..\..\lib\c6\JvSpellerForm.obj ..\..\lib\c6\JvSticker.obj ..\..\lib\c6\JvTracker.obj ..\..\lib\c6\JvTurtle.obj @@ -58,7 +57,6 @@ ..\..\run\JvPainterEffectsForm.dfm ..\..\run\JvPainterQBForm.dfm ..\..\run\JvQuickPreviewForm.dfm - ..\..\run\JvSpellerForm.dfm ..\..\run\JvYearGridEditForm.dfm ..\..\run\JvGridPreviewForm.dfm "/> @@ -138,7 +136,6 @@ <FILE FILENAME="..\..\run\JvSimPID.pas" FORMNAME="" UNITNAME="JvSimPID" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvSimPIDLinker.pas" FORMNAME="" UNITNAME="JvSimPIDLinker" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvSimScope.pas" FORMNAME="" UNITNAME="JvSimScope" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\run\JvSpellerForm.pas" FORMNAME="JvSpellerForm" UNITNAME="JvSpellerForm" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvSticker.pas" FORMNAME="" UNITNAME="JvSticker" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvTracker.pas" FORMNAME="" UNITNAME="JvTracker" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\run\JvTurtle.pas" FORMNAME="" UNITNAME="JvTurtle" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jvcl/packages/c6/JvJansC6R.cpp =================================================================== --- trunk/jvcl/packages/c6/JvJansC6R.cpp 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/c6/JvJansC6R.cpp 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 03-02-2004 01:13:12 UTC + Last generated: 26-11-2008 16:27:31 UTC ----------------------------------------------------------------------------- */ @@ -13,7 +13,6 @@ USEFORMNS("..\..\run\JvPainterEffectsForm.pas", Jvpaintereffectsform, PainterEffectsF); USEFORMNS("..\..\run\JvPainterQBForm.pas", Jvpainterqbform, PainterQBF); USEFORMNS("..\..\run\JvQuickPreviewForm.pas", Jvquickpreviewform, QuickPreviewF); -USEFORMNS("..\..\run\JvSpellerForm.pas", Jvspellerform, JvSpellerForm); USEFORMNS("..\..\run\JvYearGridEditForm.pas", Jvyeargrideditform, YearGridEditF); USEFORMNS("..\..\run\JvGridPreviewForm.pas", Jvgridpreviewform, jvGridPreviewF); //--------------------------------------------------------------------------- Modified: trunk/jvcl/packages/c6/JvJansC6R.dpk =================================================================== --- trunk/jvcl/packages/c6/JvJansC6R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/c6/JvJansC6R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:50:00 UTC + Last generated: 26-11-2008 16:27:31 UTC ----------------------------------------------------------------------------- } @@ -63,7 +63,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/d10/JvJansD10R.dpk =================================================================== --- trunk/jvcl/packages/d10/JvJansD10R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/d10/JvJansD10R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:50:09 UTC + Last generated: 26-11-2008 16:27:31 UTC ----------------------------------------------------------------------------- } @@ -63,7 +63,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/d11/JvJansD11R.dpk =================================================================== --- trunk/jvcl/packages/d11/JvJansD11R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/d11/JvJansD11R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 15-04-2007 11:00:14 UTC + Last generated: 26-11-2008 16:27:32 UTC ----------------------------------------------------------------------------- } @@ -63,7 +63,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/d12/JvJansD12R.dpk =================================================================== --- trunk/jvcl/packages/d12/JvJansD12R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/d12/JvJansD12R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 03-11-2008 19:44:39 UTC + Last generated: 26-11-2008 16:27:32 UTC ----------------------------------------------------------------------------- } @@ -63,7 +63,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/d5/JvJansD5R.dpk =================================================================== --- trunk/jvcl/packages/d5/JvJansD5R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/d5/JvJansD5R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:50:13 UTC + Last generated: 26-11-2008 16:27:32 UTC ----------------------------------------------------------------------------- } @@ -62,7 +62,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/d6/JvJansD6R.dpk =================================================================== --- trunk/jvcl/packages/d6/JvJansD6R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/d6/JvJansD6R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:50:17 UTC + Last generated: 26-11-2008 16:27:32 UTC ----------------------------------------------------------------------------- } @@ -63,7 +63,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/d7/JvJansD7R.dpk =================================================================== --- trunk/jvcl/packages/d7/JvJansD7R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/d7/JvJansD7R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:50:22 UTC + Last generated: 26-11-2008 16:27:32 UTC ----------------------------------------------------------------------------- } @@ -63,7 +63,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/d9/JvJansD9R.dpk =================================================================== --- trunk/jvcl/packages/d9/JvJansD9R.dpk 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/d9/JvJansD9R.dpk 2008-11-26 16:32:58 UTC (rev 12060) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JvJans-R.xml) - Last generated: 13-11-2006 07:50:30 UTC + Last generated: 26-11-2008 16:27:32 UTC ----------------------------------------------------------------------------- } @@ -63,7 +63,6 @@ JvSimPID in '..\..\run\JvSimPID.pas' , JvSimPIDLinker in '..\..\run\JvSimPIDLinker.pas' , JvSimScope in '..\..\run\JvSimScope.pas' , - JvSpellerForm in '..\..\run\JvSpellerForm.pas' {JvSpellerForm}, JvSticker in '..\..\run\JvSticker.pas' , JvTracker in '..\..\run\JvTracker.pas' , JvTurtle in '..\..\run\JvTurtle.pas' , Modified: trunk/jvcl/packages/xml/JvJans-R.xml =================================================================== --- trunk/jvcl/packages/xml/JvJans-R.xml 2008-11-25 23:33:20 UTC (rev 12059) +++ trunk/jvcl/packages/xml/JvJans-R.xml 2008-11-26 16:32:58 UTC (rev 12060) @@ -43,7 +43,6 @@ <File Name="..\..\run\JvSimPID.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvSimPIDLinker.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvSimScope.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\run\JvSpellerForm.pas" Targets="all" Formname="JvSpellerForm" Condition=""/> <File Name="..\..\run\JvSticker.pas" Targets="VCL" Formname="" Condition=""/> <File Name="..\..\run\JvTracker.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvTurtle.pas" Targets="all" Formname="" Condition=""/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |