* MCK: ux visual style mode updated

- MCK: remove pcode / collapse 
- MCK: remove FormCompact
- MCK: source formatting: mckObjs.pas, mckCtrls.pas (by cnpack) 
- KOL: remove codegeneration for MCK FormCompact
* KOL: move some defines from KOL.pas to KOLDEF.inc
* KOL: some refactoring\cleaning
* KOL: remove unused defines (SAFE_CODE, USE_CMOV, COMMANDACTIONS_OBJ, USE_AUTOFREE4CONTROLS, USE_AUTOFREE4CHILDREN, NEW_ALIGN, PROVIDE_EXITCODE - always on; OLD_REFCOUNT, SMALLEST_CODE*, SPEED_FASTER, USE_PROP, UMERIC_APPICON, CUSTOM_APPICON, TEST_INDEXOFCHARS_COMPAT, _FPC, REDEFINE_ABS, OLD_*, NOT_FIX_MODAL, NOT_UNLOAD_RICHEDITLIB, ANCHORS_WM_SIZE, COMMANDACTIONS_RECORD - always off; OLD_FREE and etc..)
* KOL: fix WStrRScan - affected: ExtractFileNeme, ExtractFileExt, ExtractFilePath and "Create new  mck project" in XE 10.2 and maybe other high versions (by Hubert Bannwarth)
* KOL: fix "Create new mck project" in XE 10.2/3 and maybe other versions
* KOL: remove some old\commented\broken\asm code and defines like "*ASM_NO_VERSION*"
* KOLadd: remove some old\commented\broken\asm code and defines like "*ASM_NO_VERSION*"
* and some else..

Tested on:
	Delphi 2006 x32(ansi\unicode)
	Delphi XE 10.3 x32(unicode), x64(unicode)

git-svn-id: https://svn.code.sf.net/p/kolmck/code@166 91bb2d04-0c0c-4d2d-88a5-bbb6f4c1fa07
This commit is contained in:
dkolmck
2021-03-05 07:34:47 +00:00
parent 501363196b
commit ba615be61d
25 changed files with 19947 additions and 36983 deletions

7815
KOL.pas

File diff suppressed because it is too large Load Diff

View File

@ -3,19 +3,20 @@
{$ENDIF} {$ENDIF}
{$IFDEF VER140} // Delphi 6 {$IFDEF VER140} // Delphi 6
{$DEFINE _D6}
{$DEFINE _D6orHigher} {$DEFINE _D6orHigher}
{$DEFINE _D6}
{$ENDIF} {$ENDIF}
{$IFDEF VER150} // Delphi 7 {$IFDEF VER150} // Delphi 7
{$DEFINE _D6orHigher} {$DEFINE _D6orHigher}
{$DEFINE _D7}
{$DEFINE _D7orHigher} {$DEFINE _D7orHigher}
{$DEFINE _D7}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
{$ENDIF} {$ENDIF}
{$IFDEF VER160} // Delphi 8 {$IFDEF VER160} // Delphi 8
@ -25,61 +26,59 @@
{$IFDEF VER170} // Delphi 2005 {$IFDEF VER170} // Delphi 2005
{$DEFINE _D6orHigher} {$DEFINE _D6orHigher}
{$DEFINE _D7orHigher} {$DEFINE _D7orHigher}
{$DEFINE _D8}
{$DEFINE _D8orHigher}
{$DEFINE _D2005}
{$DEFINE _D2005orHigher} {$DEFINE _D2005orHigher}
{$DEFINE _D2005}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
{$ENDIF} {$ENDIF}
{$IFDEF VER180} // Delphi 2006 {$IFDEF VER180} // Delphi 2006 or Turbo
{$DEFINE _D6orHigher}
{$DEFINE _D7orHigher}
{$DEFINE _D8orHigher}
{$DEFINE _D2005}
{$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF}
{$ENDIF}
{$IFDEF _D2005orHigher} // by Thaddy de Koning:
{$IFDEF VER185} // Delphi 2007 ( and Highlander )
{$DEFINE _D6orHigher} {$DEFINE _D6orHigher}
{$DEFINE _D7orHigher} {$DEFINE _D7orHigher}
{$DEFINE _D2005orHigher} {$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher} {$DEFINE _D2006orHigher}
{$DEFINE _D2006}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
// {$WARN UNSAFE_TYPE OFF}
// {$WARN UNSAFE_CAST OFF}
// {$WARN UNSAFE_CODE OFF}
{$ENDIF}
{$IFDEF VER185} // Delphi 2007
{$DEFINE _D6orHigher}
{$DEFINE _D7orHigher}
{$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher}
{$DEFINE _D2007orHigher}
{$DEFINE _D2007} {$DEFINE _D2007}
{$DEFINE _D2007orHigher}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
{$ENDIF}
{$INLINE OFF}
{$ENDIF} {$ENDIF}
{$IFDEF VER200} // Delphi 2009 {$IFDEF VER200} // Delphi 2009 (first unicode version)
{$DEFINE _D6orHigher} {$DEFINE _D6orHigher}
{$DEFINE _D7orHigher} {$DEFINE _D7orHigher}
{$DEFINE _D2005orHigher} {$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher} {$DEFINE _D2006orHigher}
{$DEFINE _D2007orHigher} {$DEFINE _D2007orHigher}
{$DEFINE _D2009}
{$DEFINE _D2009orHigher} {$DEFINE _D2009orHigher}
{$DEFINE _D2009}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
{$ENDIF} {$ENDIF}
{$IFDEF VER210} // Delphi 2010 {$IFDEF VER210} // Delphi 2010
@ -89,13 +88,14 @@
{$DEFINE _D2006orHigher} {$DEFINE _D2006orHigher}
{$DEFINE _D2007orHigher} {$DEFINE _D2007orHigher}
{$DEFINE _D2009orHigher} {$DEFINE _D2009orHigher}
{$DEFINE _D2010}
{$DEFINE _D2010orHigher} {$DEFINE _D2010orHigher}
{$DEFINE _D2010}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
{$ENDIF} {$ENDIF}
{$IFDEF VER220} // Delphi XE {$IFDEF VER220} // Delphi XE
@ -106,13 +106,14 @@
{$DEFINE _D2007orHigher} {$DEFINE _D2007orHigher}
{$DEFINE _D2009orHigher} {$DEFINE _D2009orHigher}
{$DEFINE _D2010orHigher} {$DEFINE _D2010orHigher}
{$DEFINE _DXE}
{$DEFINE _DXEorHigher} {$DEFINE _DXEorHigher}
{$DEFINE _DXE}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
{$ENDIF} {$ENDIF}
{$IFDEF VER230} // Delphi XE2 {$IFDEF VER230} // Delphi XE2
@ -124,18 +125,18 @@
{$DEFINE _D2009orHigher} {$DEFINE _D2009orHigher}
{$DEFINE _D2010orHigher} {$DEFINE _D2010orHigher}
{$DEFINE _DXEorHigher} {$DEFINE _DXEorHigher}
{$DEFINE _DXE2}
{$DEFINE _DXE2orHigher} {$DEFINE _DXE2orHigher}
{$IFDEF WIN64} {$DEFINE _DXE2}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{.$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{.$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{.$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{.$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{.$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$ENDIF} {$ENDIF}
{$IFDEF VER240} // Delphi XE3 {$IFDEF VER240} // Delphi XE3
@ -148,18 +149,18 @@
{$DEFINE _D2010orHigher} {$DEFINE _D2010orHigher}
{$DEFINE _DXEorHigher} {$DEFINE _DXEorHigher}
{$DEFINE _DXE2orHigher} {$DEFINE _DXE2orHigher}
{$DEFINE _DXE3}
{$DEFINE _DXE3orHigher} {$DEFINE _DXE3orHigher}
{$IFDEF WIN64} {$DEFINE _DXE3}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{.$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{.$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{.$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{.$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{.$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$ENDIF} {$ENDIF}
{$IFDEF VER250} // Delphi XE4 {$IFDEF VER250} // Delphi XE4
@ -173,18 +174,19 @@
{$DEFINE _DXEorHigher} {$DEFINE _DXEorHigher}
{$DEFINE _DXE2orHigher} {$DEFINE _DXE2orHigher}
{$DEFINE _DXE3orHigher} {$DEFINE _DXE3orHigher}
{$DEFINE _DXE4}
{$DEFINE _DXE4orHigher} {$DEFINE _DXE4orHigher}
{$IFDEF WIN64} {$DEFINE _DXE4}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{.$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{.$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{.$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{.$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{.$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS} {$DEFINE TMSG_WINDOWS}
{$ENDIF} {$ENDIF}
@ -200,18 +202,19 @@
{$DEFINE _DXE2orHigher} {$DEFINE _DXE2orHigher}
{$DEFINE _DXE3orHigher} {$DEFINE _DXE3orHigher}
{$DEFINE _DXE4orHigher} {$DEFINE _DXE4orHigher}
{$DEFINE _DXE5}
{$DEFINE _DXE5orHigher} {$DEFINE _DXE5orHigher}
{$IFDEF WIN64} {$DEFINE _DXE5}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{.$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{.$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{.$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{.$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{.$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS} {$DEFINE TMSG_WINDOWS}
{$ENDIF} {$ENDIF}
@ -228,18 +231,19 @@
{$DEFINE _DXE3orHigher} {$DEFINE _DXE3orHigher}
{$DEFINE _DXE4orHigher} {$DEFINE _DXE4orHigher}
{$DEFINE _DXE5orHigher} {$DEFINE _DXE5orHigher}
{$DEFINE _DXE6}
{$DEFINE _DXE6orHigher} {$DEFINE _DXE6orHigher}
{$IFDEF WIN64} {$DEFINE _DXE6}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{.$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{.$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{.$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{.$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{.$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS} {$DEFINE TMSG_WINDOWS}
{$ENDIF} {$ENDIF}
@ -257,18 +261,115 @@
{$DEFINE _DXE4orHigher} {$DEFINE _DXE4orHigher}
{$DEFINE _DXE5orHigher} {$DEFINE _DXE5orHigher}
{$DEFINE _DXE6orHigher} {$DEFINE _DXE6orHigher}
{$DEFINE _DXE7}
{$DEFINE _DXE7orHigher} {$DEFINE _DXE7orHigher}
{$IFDEF WIN64} {$DEFINE _DXE7}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{.$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{.$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{.$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{.$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{.$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS}
{$ENDIF}
{$IFDEF VER290} // Delphi XE8
{$DEFINE _D6orHigher}
{$DEFINE _D7orHigher}
{$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher}
{$DEFINE _D2007orHigher}
{$DEFINE _D2009orHigher}
{$DEFINE _D2010orHigher}
{$DEFINE _DXEorHigher}
{$DEFINE _DXE2orHigher}
{$DEFINE _DXE3orHigher}
{$DEFINE _DXE4orHigher}
{$DEFINE _DXE5orHigher}
{$DEFINE _DXE6orHigher}
{$DEFINE _DXE7orHigher}
{$DEFINE _DXE8orHigher}
{$DEFINE _DXE8}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
// {$WARN UNSAFE_TYPE OFF}
// {$WARN UNSAFE_CAST OFF}
// {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS}
{$ENDIF}
{$IFDEF VER300} // Delphi 10 Seattle
{$DEFINE _D6orHigher}
{$DEFINE _D7orHigher}
{$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher}
{$DEFINE _D2007orHigher}
{$DEFINE _D2009orHigher}
{$DEFINE _D2010orHigher}
{$DEFINE _DXEorHigher}
{$DEFINE _DXE2orHigher}
{$DEFINE _DXE3orHigher}
{$DEFINE _DXE4orHigher}
{$DEFINE _DXE5orHigher}
{$DEFINE _DXE6orHigher}
{$DEFINE _DXE7orHigher}
{$DEFINE _DXE8orHigher}
{$DEFINE _D10orHigher}
{$DEFINE _D10}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
// {$WARN UNSAFE_TYPE OFF}
// {$WARN UNSAFE_CAST OFF}
// {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS}
{$ENDIF}
{$IFDEF VER310} // Delphi 10.1 Berlin
{$DEFINE _D6orHigher}
{$DEFINE _D7orHigher}
{$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher}
{$DEFINE _D2007orHigher}
{$DEFINE _D2009orHigher}
{$DEFINE _D2010orHigher}
{$DEFINE _DXEorHigher}
{$DEFINE _DXE2orHigher}
{$DEFINE _DXE3orHigher}
{$DEFINE _DXE4orHigher}
{$DEFINE _DXE5orHigher}
{$DEFINE _DXE6orHigher}
{$DEFINE _DXE7orHigher}
{$DEFINE _DXE8orHigher}
{$DEFINE _D10orHigher}
{$DEFINE _D10_1orHigher}
{$DEFINE _D10_1}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
// {$WARN UNSAFE_TYPE OFF}
// {$WARN UNSAFE_CAST OFF}
// {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS} {$DEFINE TMSG_WINDOWS}
{$ENDIF} {$ENDIF}
@ -286,31 +387,59 @@
{$DEFINE _DXE4orHigher} {$DEFINE _DXE4orHigher}
{$DEFINE _DXE5orHigher} {$DEFINE _DXE5orHigher}
{$DEFINE _DXE6orHigher} {$DEFINE _DXE6orHigher}
{$DEFINE _DXE7}
{$DEFINE _DXE7orHigher} {$DEFINE _DXE7orHigher}
{$DEFINE _D10_2} {$DEFINE _DXE8orHigher}
{$DEFINE _D10orHigher}
{$DEFINE _D10_1orHigher}
{$DEFINE _D10_2orHigher} {$DEFINE _D10_2orHigher}
{$IFDEF WIN64} {$DEFINE _D10_2}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{.$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$WARN UNIT_DEPRECATED OFF} {$WARN UNIT_DEPRECATED OFF}
{.$WARN SYMBOL_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF}
{.$WARN UNSAFE_TYPE OFF} // {$WARN UNSAFE_TYPE OFF}
{.$WARN UNSAFE_CAST OFF} // {$WARN UNSAFE_CAST OFF}
{.$WARN UNSAFE_CODE OFF} // {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS} {$DEFINE TMSG_WINDOWS}
{$ENDIF} {$ENDIF}
// TODO: check DLL project {$IFDEF VER330} // Delphi 10.3 Rio
{$IFNDEF NO_STRIP_RELOC} {$DEFINE _D6orHigher}
// by Thaddy de Koning: {$DEFINE _D7orHigher}
{$IFDEF _D2006orHigher} {$DEFINE _D2005orHigher}
// strips relocs, like stripreloc.exe does {$DEFINE _D2006orHigher}
{$SetPEFlags 1} {$DEFINE _D2007orHigher}
//{$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED or IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP} {$DEFINE _D2009orHigher}
{$ENDIF} {$DEFINE _D2010orHigher}
{$DEFINE _DXEorHigher}
{$DEFINE _DXE2orHigher}
{$DEFINE _DXE3orHigher}
{$DEFINE _DXE4orHigher}
{$DEFINE _DXE5orHigher}
{$DEFINE _DXE6orHigher}
{$DEFINE _DXE7orHigher}
{$DEFINE _DXE8orHigher}
{$DEFINE _D10orHigher}
{$DEFINE _D10_1orHigher}
{$DEFINE _D10_2orHigher}
{$DEFINE _D10_3orHigher}
{$DEFINE _D10_3}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
// {$WARN UNSAFE_TYPE OFF}
// {$WARN UNSAFE_CAST OFF}
// {$WARN UNSAFE_CODE OFF}
// {$IFDEF WIN64}
// {$DEFINE UNICODE_CTRLS}
// {$ENDIF}
{$DEFINE TMSG_WINDOWS}
{$ENDIF} {$ENDIF}
{$IFDEF FPC} {$IFDEF FPC}
@ -347,21 +476,13 @@
{$DEFINE _KOLCtrlWrapper_} {$DEFINE _KOLCtrlWrapper_}
{$ENDIF} {$ENDIF}
{$IFNDEF _NOT_KOLCtrlWrapper_}
{$DEFINE _KOLCtrlWrapper_}
{$ENDIF}
//// from delphidef.inc //// //// from delphidef.inc ////
//{$DEFINE _FPC} {$DEFINE ASM_VERSION} // Comment this line to produce Pascal code. Or, just add PAS_VERSION to conditionals of your project (must be rebuilt).
{$DEFINE ASM_VERSION} // Comment this line to produce Pascal code.
// Or, just add PAS_VERSION to conditionals of your project (must be rebuilt).
{$IFDEF ASM_VERSION} {$IFDEF ASM_VERSION}
{$IFDEF PAS_VERSION} {$IFDEF PAS_VERSION}
{$UNDEF ASM_VERSION} {$UNDEF ASM_VERSION}
// To compile a project with ASM_VERSION option turned off, // To compile a project with ASM_VERSION option turned off, define a symbol PAS_VERSION in project options.
// define a symbol PAS_VERSION in project options.
{$ENDIF} {$ENDIF}
{$ENDIF} {$ENDIF}
@ -374,13 +495,6 @@
// directive there. (Search the word: USE_CUSTOMEXTENSIONS). // directive there. (Search the word: USE_CUSTOMEXTENSIONS).
// Please note, that this option is not fully supported now. // Please note, that this option is not fully supported now.
//{$IFNDEF NOT_UNLOAD_RICHEDITLIB}
// {$DEFINE UNLOAD_RICHEDITLIB}
//{$ENDIF}
// You can freely comment this directive. 1st, if the application does not
// use richedit control. 2nd, even if it does, freeing the library handle actually is not needed.
// Another way to turn this option off is to define symbol NOT_UNLOAD_RICHEDITLIB in your project options.
{$IFNDEF USE_OLD_FLAGS} {$IFNDEF USE_OLD_FLAGS}
{$DEFINE USE_FLAGS} {$DEFINE USE_FLAGS}
{$ELSE} {$ELSE}
@ -391,11 +505,49 @@
{$DEFINE EVENTS_DYNAMIC} {$DEFINE EVENTS_DYNAMIC}
{$ENDIF} {$ENDIF}
{$IFnDEF CMDACTIONS_RECORD} {$DEFINE PACK_COMMANDACTIONS}
{$DEFINE COMMANDACTIONS_OBJ} {$IFDEF NOT_PACK_COMMANDACTIONS}
{$DEFINE PACK_COMMANDACTIONS}
{$IFDEF NOT_PACK_COMMANDACTIONS}
{$UNDEF PACK_COMMANDACTIONS} {$UNDEF PACK_COMMANDACTIONS}
{$ENDIF}
{$IFDEF WIN64}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{$ALIGN ON}
{$Z1} // MinEnumSize
{$ELSE}
{$A-} // align off, otherwise code is not good
{$Q-} // no overflow check: this option makes code wrong
{$R-} // no range checking: this option makes code wrong
{$Z-}
{$ENDIF}
{$T-} // not typed @-operator
{$IFDEF PAS_ONLY}
{$DEFINE PAS_VERSION}
{$ENDIF PAS_ONLY}
{$IFDEF PUREPASCAL}
{$DEFINE PAS_VERSION}
{$DEFINE PAS_ONLY}
{$ENDIF}
{$IFDEF INPACKAGE} // use this symbol in packages requiring kol.pas
{$WARNINGS OFF}
{$DEFINE PAS_VERSION}
{$UNDEF ASM_VERSION}
{$UNDEF ASM_UNICODE}
{$ENDIF}
{$IFDEF _D2009orHigher}
{$DEFINE UNICODE_CTRLS}
{$ENDIF}
{$IFDEF UNICODE_CTRLS}
{$IFDEF _D2009orHigher}
{$DEFINE UStr_} // use functions @UStrXXXX instead of @WStrXXXX
{$ENDIF} {$ENDIF}
{$ENDIF} {$ENDIF}

View File

@ -98,9 +98,8 @@ type
procedure DoCancel( Sender: PObj ); procedure DoCancel( Sender: PObj );
procedure DoNotClose( Sender: PObj; var Accept: Boolean ); procedure DoNotClose( Sender: PObj; var Accept: Boolean );
procedure DoShow( Sender: PObj ); procedure DoShow( Sender: PObj );
function DoMsg( var Msg: TMsg; var Rslt: Integer ): Boolean; function DoMsg( var Msg: TMsg; var Rslt: LRESULT ): Boolean;
function DoExpanding( Sender: PControl; Item: THandle; Expand: Boolean ) function DoExpanding( Sender: PControl; Item: THandle; Expand: Boolean ): Boolean;
: Boolean;
function DoFilterAttrs( Attrs: DWORD; const APath: KOLString ): Boolean; function DoFilterAttrs( Attrs: DWORD; const APath: KOLString ): Boolean;
procedure Rescantree; procedure Rescantree;
procedure RescanNode( node: Integer ); procedure RescanNode( node: Integer );
@ -687,7 +686,7 @@ begin
end; end;
end; end;
function TOpenDirDialogEx.DoMsg(var Msg: TMsg; var Rslt: Integer): Boolean; function TOpenDirDialogEx.DoMsg(var Msg: TMsg; var Rslt: LRESULT): Boolean;
var NMHdr: PNMHdr; var NMHdr: PNMHdr;
NMCustomDraw: PNMCustomDraw; NMCustomDraw: PNMCustomDraw;
i: Integer; i: Integer;
@ -1073,7 +1072,7 @@ begin
SL.Add( Find32W.cFileName ); SL.Add( Find32W.cFileName );
if not FFindNextFileW( F, @Find32W ) then break; if not FFindNextFileW( F, @Find32W ) then break;
end; end;
SL.Sort( FALSE ); SL.Sort( [] );
//LogFileOutput( 'C:\sort_test.txt', '--------------------------'#13#10#13#10 + //LogFileOutput( 'C:\sort_test.txt', '--------------------------'#13#10#13#10 +
// SL.Text ); // SL.Text );
FINALLY FINALLY

BIN
KOLMCK2006.res Normal file

Binary file not shown.

BIN
KOLMCK2007.res Normal file

Binary file not shown.

BIN
KOLMCK2009.res Normal file

Binary file not shown.

BIN
KOLMCK2010.res Normal file

Binary file not shown.

View File

@ -1,47 +0,0 @@
package KOLMCK3;
{$R *.res}
{$ALIGN ON}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON}
{$MINENUMSIZE 1}
{$IMAGEBASE $00400000}
{$DESCRIPTION '_KOL_ mirror controls for Delphi 3'}
{$DESIGNONLY}
{$IMPLICITBUILD ON}
requires
vcl30,
vclx30;
contains
mirror,
KOL,
mckCtrls,
mckObjs,
mckCtrlDraw,
mckActionListEditor,
mckLVColumnsEditor,
mckToolbarEditor,
mckAccEditor,
mckMenuEditor,
mckFileFilterEditor,
KOLadd in 'KOLadd.pas';
end.

View File

@ -1,49 +0,0 @@
package KOLMCK5;
{$R *.res}
{$ALIGN ON}
{$ASSERTIONS OFF}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION '_KOL_ mirror controls for Delphi 5'}
{$DESIGNONLY}
{$IMPLICITBUILD ON}
{$DEFINE INPACKAGE}
{$DEFINE _NOT_KOLCtrlWrapper}
requires
vcl50,
Vclx50;
contains
mirror in 'mirror.pas',
KOL in 'KOL.pas',
mckCtrls in 'mckCtrls.pas',
mckObjs in 'mckObjs.pas',
mckAccEditor in 'mckAccEditor.pas' {KOLAccEdit},
mckMenuEditor in 'mckMenuEditor.pas',
mckFileFilterEditor in 'mckFileFilterEditor.pas' {fmFileFilterEditor},
mckToolbarEditor in 'mckToolbarEditor.pas' {fmToolbarEditor},
mckLVColumnsEditor in 'mckLVColumnsEditor.pas' {fmLVColumnsEditor},
mckCtrlDraw in 'mckCtrlDraw.pas',
mckActionListEditor in 'mckActionListEditor.pas',
KOLadd in 'KOLadd.pas';
end.

View File

@ -1,52 +0,0 @@
package KOLMCK6;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION '_KOL_ mirror controls for Delphi 6'}
{$DESIGNONLY}
{$IMPLICITBUILD ON}
{$DEFINE INPACKAGE}
{$DEFINE PAS_VERSION}
{$DEFINE noMCKLOG}
{$DEFINE noNOT_USE_KOLCtrlWrapper}
requires
vcl,
vclx,
designide;
contains
KOL in 'KOL.pas',
KOLadd in 'KOLadd.pas',
mirror in 'mirror.pas',
mckCtrls in 'mckCtrls.pas',
mckObjs in 'mckObjs.pas',
mckAccEditor in 'mckAccEditor.pas' {KOLAccEdit},
mckMenuEditor in 'mckMenuEditor.pas',
mckFileFilterEditor in 'mckFileFilterEditor.pas' {fmFileFilterEditor},
mckToolbarEditor in 'mckToolbarEditor.pas' {fmToolbarEditor},
mckLVColumnsEditor in 'mckLVColumnsEditor.pas',
mckCtrlDraw in 'mckCtrlDraw.pas',
mckActionListEditor in 'mckActionListEditor.pas';
end.

BIN
KOLMCK7.res Normal file

Binary file not shown.

View File

@ -1,7 +1,8 @@
package KOLMCK4; package KOLMCKXE10_2;
{$R *.res} {$R *.res}
{$ALIGN ON} {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 8}
{$ASSERTIONS ON} {$ASSERTIONS ON}
{$BOOLEVAL OFF} {$BOOLEVAL OFF}
{$DEBUGINFO ON} {$DEBUGINFO ON}
@ -11,40 +12,46 @@ package KOLMCK4;
{$LOCALSYMBOLS ON} {$LOCALSYMBOLS ON}
{$LONGSTRINGS ON} {$LONGSTRINGS ON}
{$OPENSTRINGS ON} {$OPENSTRINGS ON}
{$OPTIMIZATION OFF} {$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF} {$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF} {$RANGECHECKS OFF}
{$REFERENCEINFO ON} {$REFERENCEINFO ON}
{$SAFEDIVIDE OFF} {$SAFEDIVIDE OFF}
{$STACKFRAMES ON} {$STACKFRAMES OFF}
{$TYPEDADDRESS OFF} {$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON} {$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON} {$WRITEABLECONST OFF}
{$MINENUMSIZE 1} {$MINENUMSIZE 1}
{$IMAGEBASE $00400000} {$IMAGEBASE $13400000}
{$DESCRIPTION '_KOL_ mirror controls for Delphi 4'} {$DESCRIPTION 'KOLMCKXE10_2'}
{$DEFINE UNICODE_CTRLS}
{$DEFINE PAS_ONLY}
{$DEFINE PAS_VERSION}
{$ENDIF IMPLICITBUILDING}
{$DESIGNONLY} {$DESIGNONLY}
{$IMPLICITBUILD ON} {$IMPLICITBUILD OFF}
{$DEFINE INPACKAGE} {$DEFINE INPACKAGE}
{$DEFINE _NOT_Use_KOLCtrlWrapper}
requires requires
vcl40, rtl,
Vclx40; vcl,
designide,
xmlrtl,
vclx;
contains contains
KOL in 'KOL.pas',
KOLadd in 'KOLadd.pas',
mirror in 'mirror.pas', mirror in 'mirror.pas',
mckObjs in 'mckObjs.pas', mckObjs in 'mckObjs.pas',
mckCtrls in 'mckCtrls.pas', mckCtrls in 'mckCtrls.pas',
KOL in 'KOL.pas',
mckAccEditorD4 in 'mckAccEditorD4.pas',
mckCtrlDraw in 'mckCtrlDraw.pas', mckCtrlDraw in 'mckCtrlDraw.pas',
mckActionListEditor in 'mckActionListEditor.pas',
mckMenuEditor in 'mckMenuEditor.pas', mckMenuEditor in 'mckMenuEditor.pas',
mckAccEditor in 'mckAccEditor.pas',
mckToolbarEditor in 'mckToolbarEditor.pas', mckToolbarEditor in 'mckToolbarEditor.pas',
mckLVColumnsEditor in 'mckLVColumnsEditor.pas', mckAccEditor in 'mckAccEditor.pas',
mckActionListEditor in 'mckActionListEditor.pas',
mckFileFilterEditor in 'mckFileFilterEditor.pas', mckFileFilterEditor in 'mckFileFilterEditor.pas',
KOLadd in 'KOLadd.pas'; mckLVColumnsEditor in 'mckLVColumnsEditor.pas',
MCKAppExpert200x in 'MCKAppExpert200x.pas';
end. end.

BIN
KOLMCKXE10_2.res Normal file

Binary file not shown.

BIN
KOLMCKXE7.res Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -22,11 +22,9 @@ asm
PUSH EAX PUSH EAX
CALL GetProcAddress CALL GetProcAddress
XCHG ECX, EAX XCHG ECX, EAX
{$IFDEF SAFE_CODE}
POP EDX POP EDX
JECXZ @@fin JECXZ @@fin
PUSH EDX PUSH EDX
{$ENDIF}
PUSH 8 // dwSize PUSH 8 // dwSize
PUSH ESP // @ ICC PUSH ESP // @ ICC
CALL ECX // Proc( @ ICC ) CALL ECX // Proc( @ ICC )
@ -40,9 +38,7 @@ asm
push edx // Flags push edx // Flags
mov ecx, [Applet] mov ecx, [Applet]
{$IFDEF SNAPMOUSE2DFLTBTN} {$IFDEF SNAPMOUSE2DFLTBTN}
{$IFDEF SAFE_CODE}
jecxz @@0 jecxz @@0
{$ENDIF}
pushad pushad
xchg eax, ecx xchg eax, ecx
mov edx, offset[WndProcSnapMouse2DfltBtn] mov edx, offset[WndProcSnapMouse2DfltBtn]
@ -51,9 +47,7 @@ asm
@@0: @@0:
{$ENDIF} {$ENDIF}
mov edx, 0 mov edx, 0
{$IFDEF SAFE_CODE}
jecxz @@1 jecxz @@1
{$ENDIF}
mov edx, [ecx].TControl.fHandle mov edx, [ecx].TControl.fHandle
mov ecx, [ecx].TControl.fCaption mov ecx, [ecx].TControl.fCaption
@@1: push ecx // Title @@1: push ecx // Title
@ -62,9 +56,7 @@ asm
call MessageBox call MessageBox
{$IFDEF SNAPMOUSE2DFLTBTN} {$IFDEF SNAPMOUSE2DFLTBTN}
mov ecx, [Applet] mov ecx, [Applet]
{$IFDEF SAFE_CODE}
jecxz @@2 jecxz @@2
{$ENDIF}
pushad pushad
xchg eax, ecx xchg eax, ecx
mov edx, offset[WndProcSnapMouse2DfltBtn] mov edx, offset[WndProcSnapMouse2DfltBtn]
@ -109,10 +101,8 @@ asm
PUSH EAX // prepare Length(Text) PUSH EAX // prepare Length(Text)
CALL EDX2PChar CALL EDX2PChar
PUSH EDX // prepare PChar(Text) PUSH EDX // prepare PChar(Text)
{$IFDEF SAFE_CODE}
MOV EAX, EBX MOV EAX, EBX
CALL RefInc CALL RefInc
{$ENDIF}
PUSH HandleValid or FontValid PUSH HandleValid or FontValid
PUSH EBX PUSH EBX
CALL RequiredState CALL RequiredState
@ -152,12 +142,10 @@ asm
XCHG EAX, EBX XCHG EAX, EBX
CALL SetHandle CALL SetHandle
@@exit: @@exit:
{$IFDEF SAFE_CODE}
PUSH EAX PUSH EAX
XCHG EAX, EBX XCHG EAX, EBX
CALL RefDec CALL RefDec
POP EAX POP EAX
{$ENDIF}
POP ESI POP ESI
POP EBX POP EBX
end; end;
@ -229,10 +217,7 @@ asm // EAX = Value
PUSH EDI PUSH EDI
PUSH ECX PUSH ECX
LEA EDI, [ESP+8+0Fh] // EBX := @Buf[ 15 ] LEA EDI, [ESP+8+0Fh] // EBX := @Buf[ 15 ]
{$IFDEF SMALLEST_CODE}
{$ELSE}
AND EDX, $F AND EDX, $F
{$ENDIF}
@@loop: DEC EDI @@loop: DEC EDI
DEC EDX DEC EDX
PUSH EAX PUSH EAX
@ -638,12 +623,7 @@ asm
CALL System.@LStrLen CALL System.@LStrLen
POP ECX POP ECX
CMP ECX, EAX CMP ECX, EAX
{$IFDEF USE_CMOV}
CMOVG ECX, EAX CMOVG ECX, EAX
{$ELSE}
JLE @@1
MOV ECX, EAX
@@1: {$ENDIF}
MOV EDX, EAX MOV EDX, EAX
SUB EDX, ECX SUB EDX, ECX
@ -660,12 +640,7 @@ asm
CALL System.@LStrLen CALL System.@LStrLen
POP ECX POP ECX
CMP ECX, EAX CMP ECX, EAX
{$IFDEF USE_CMOV}
CMOVG ECX, EAX CMOVG ECX, EAX
{$ELSE}
JLE @@1
MOV ECX, EAX
@@1: {$ENDIF}
MOV EDX, EAX MOV EDX, EAX
SUB EDX, ECX SUB EDX, ECX
@ -674,7 +649,6 @@ asm
CALL System.@LStrDelete CALL System.@LStrDelete
end; end;
{$IFnDEF TEST_INDEXOFCHARS_COMPAT}
function IndexOfChar( const S : KOLString; Chr : KOLChar ) : Integer; function IndexOfChar( const S : KOLString; Chr : KOLChar ) : Integer;
asm asm
CALL EAX2PChar CALL EAX2PChar
@ -686,7 +660,6 @@ asm
LEA EDX, [EAX+1] LEA EDX, [EAX+1]
@@1: SUB EAX, EDX @@1: SUB EAX, EDX
end; end;
{$ENDIF}
function IndexOfCharsMin( const S, Chars : AnsiString ) : Integer; function IndexOfCharsMin( const S, Chars : AnsiString ) : Integer;
asm PUSH ESI asm PUSH ESI
@ -873,6 +846,12 @@ asm
CALL RemoveStr CALL RemoveStr
XCHG EAX, ESI XCHG EAX, ESI
//dufa: if true -> AL=42 (this is char "*"), fix AL -> 1
@@fix_true_result:
TEST AL, AL
JZ @@exit
MOV AL, 1
//dufa.
@@exit: @@exit:
POP ESI POP ESI
end; end;
@ -1550,105 +1529,6 @@ asm
JMP _FillStrList JMP _FillStrList
end; end;
procedure TIniFile.SectionData(Names: PStrList);
asm
PUSH ESI
PUSH EDI
PUSH EBX
PUSH ECX
MOV EBX,EAX
MOV EAX, IniBufferStrSize
MOV EDI,EDX
CALL System.@GetMem
MOV ESI,EAX
PUSH EAX
OR [EBX].fMode,0
JNE @@DOWrite
PUSH [EBX].fFileName
MOV EAX,IniBufferSize
PUSH EAX
LEA EAX,[ESI+4]
PUSH EAX
PUSH [EBX].fSection
CALL GetPrivateProfileSection
JMP _FillStrList
@@DOWrite:
PUSH EBX
PUSH ESI
PUSH EDX
PUSH EBP
MOV EDX,0
MOV EBP,[EDI].TStrList.fCount
MOV EBX,IniBufferSize-2 // ������� ����� ��� #0#0
{ECM+++>} OR EBP,EBP // otherwise GetPChars when StrList.Count = 0 crashed
@@LOOP:
JE @@ENDLOOP
OR EBX,EBX
JE @@ENDLOOP
PUSH EDX
MOV EAX,EDI
CALL TStrList.GetPChars
PUSH EAX
CALL StrLen
POP EAX
XOR ECX,-1
MOV EDX,ESI
SUB EBX,ECX
JA @@L1
ADD ECX,EBX
XOR EBX,EBX
@@L1:
ADD ESI,ECX
CALL MOVE
@@L2:
POP EDX
INC EDX
DEC EBP
JMP @@LOOP
@@ENDLOOP:
MOV WORD PTR [ESI],0
POP EBP
POP EDX
POP ESI
POP EBX
MOV EAX,EBX
CALL ClearSection
PUSH [EBX].fFileName
PUSH ESI
PUSH [EBX].fSection
CALL WritePrivateProfileSection
POP EAX
CALL System.@FreeMem
POP ECX
POP EBX
POP EDI
POP ESI
end;
function _NewControl( AParent: PControl; ControlClassName: PKOLChar; function _NewControl( AParent: PControl; ControlClassName: PKOLChar;
Style: DWORD; Ctl3D: Boolean; Style: DWORD; Ctl3D: Boolean;
Actions: TCommandActionsParam ): PControl; Actions: TCommandActionsParam ): PControl;
@ -1695,29 +1575,21 @@ asm
LEA EDI, [EBX].TControl.fBoundsRect LEA EDI, [EBX].TControl.fBoundsRect
LODSB LODSB
MOVSX EAX, AL MOVSX EAX, AL
{$IFNDEF SMALLEST_CODE}
PUSH EAX PUSH EAX
MOVSX ECX, byte ptr [ESI+2] MOVSX ECX, byte ptr [ESI+2]
ADD EAX, ECX // AParent.fClientLeft ADD EAX, ECX // AParent.fClientLeft
{$ENDIF}
STOSD // fBoundsRect.Left STOSD // fBoundsRect.Left
{$IFNDEF SMALLEST_CODE}
POP EAX POP EAX
PUSH EAX PUSH EAX
MOVSX ECX, byte ptr [ESI+0] MOVSX ECX, byte ptr [ESI+0]
ADD EAX, ECX // AParent.fClientTop ADD EAX, ECX // AParent.fClientTop
{$ENDIF}
STOSD // fBoundsRect.Top STOSD // fBoundsRect.Top
{$IFNDEF SMALLEST_CODE}
XCHG EDX, EAX XCHG EDX, EAX
POP EAX POP EAX
{$ENDIF}
ADD EAX, 64 ADD EAX, 64
STOSD // fBoundsRect.Right STOSD // fBoundsRect.Right
{$IFNDEF SMALLEST_CODE}
XCHG EAX, EDX XCHG EAX, EDX
ADD EAX, 64 ADD EAX, 64
{$ENDIF}
STOSD // fBoundsRect.Bottom} STOSD // fBoundsRect.Bottom}
POP ECX POP ECX
MOV EAX, [ECX].TControl.fCursor MOV EAX, [ECX].TControl.fCursor
@ -2503,11 +2375,7 @@ asm //cmd //opd
CALL MakeFlags CALL MakeFlags
POP EDX POP EDX
{$IFDEF COMMANDACTIONS_OBJ}
PUSH TOOLBAR_ACTIONS PUSH TOOLBAR_ACTIONS
{$ELSE}
PUSH 0 //: actions : = nil
{$ENDIF}
XCHG ECX, EAX // ECX = MakeFlags(...) XCHG ECX, EAX // ECX = MakeFlags(...)
MOV EDI, ECX MOV EDI, ECX
MOV EAX, [ESP+8] // EAX = AParent MOV EAX, [ESP+8] // EAX = AParent
@ -2516,14 +2384,9 @@ asm //cmd //opd
OR ECX, WS_CHILD or WS_VISIBLE or TBSTYLE_TOOLTIPS OR ECX, WS_CHILD or WS_VISIBLE or TBSTYLE_TOOLTIPS
MOV EDX, offset[ TOOLBARCLASSNAME ] MOV EDX, offset[ TOOLBARCLASSNAME ]
CALL _NewCommonControl CALL _NewCommonControl
{$IFDEF COMMANDACTIONS_OBJ}
MOV EDX, [EAX].TControl.fCommandActions MOV EDX, [EAX].TControl.fCommandActions
MOV [EDX].TCommandActionsObj.aClear, offset[ClearToolbar] MOV [EDX].TCommandActionsObj.aClear, offset[ClearToolbar]
MOV [EDX].TCommandActionsObj.aGetCount, TB_BUTTONCOUNT MOV [EDX].TCommandActionsObj.aGetCount, TB_BUTTONCOUNT
{$ELSE}
MOV [EAX].TControl.fCommandActions.aClear, offset[ClearToolbar]
MOV [EAX].TControl.fCommandActions.aGetCount, TB_BUTTONCOUNT
{$ENDIF}
{$IFDEF USE_FLAGS} {$IFDEF USE_FLAGS}
OR [EAX].TControl.fFlagsG5, 1 shl G5_IsButton OR [EAX].TControl.fFlagsG5, 1 shl G5_IsButton
{$ELSE} {$ELSE}
@ -2838,11 +2701,7 @@ asm
PUSH [hInstance]// Params.WindowClass.hInstance := hInstance PUSH [hInstance]// Params.WindowClass.hInstance := hInstance
PUSH ECX // Params.WindowClass.cbWndExtra := 0 PUSH ECX // Params.WindowClass.cbWndExtra := 0
PUSH ECX // Params.WindowClass.cbClsExtra := 0 PUSH ECX // Params.WindowClass.cbClsExtra := 0
{$IFDEF SAFE_CODE}
PUSH [EBX].fDefWndProc // Params.WindowClass.lpfnWndProc := fDefWndProc PUSH [EBX].fDefWndProc // Params.WindowClass.lpfnWndProc := fDefWndProc
{$ELSE}
PUSH 0
{$ENDIF}
PUSH [EBX].fClsStyle // Params.WindowClass.style := fStyle PUSH [EBX].fClsStyle // Params.WindowClass.style := fStyle
ADD ESP, -64 ADD ESP, -64
PUSH ECX PUSH ECX
@ -2872,12 +2731,7 @@ asm
@@1: PUSH EAX // Params.Height := Height | CW_UseDefault @@1: PUSH EAX // Params.Height := Height | CW_UseDefault
MOV EAX, [EBX].fBoundsRect.Right MOV EAX, [EBX].fBoundsRect.Right
SUB EAX, [EBX].fBoundsRect.Left SUB EAX, [EBX].fBoundsRect.Left
{$IFDEF USE_CMOV}
CMOVZ EAX, ECX CMOVZ EAX, ECX
{$ELSE}
JNZ @@2
MOV EAX, ECX
@@2: {$ENDIF}
PUSH EAX // Params.Width := Width | CW_UseDefault PUSH EAX // Params.Width := Width | CW_UseDefault
MOV EAX, [EBX].fBoundsRect.Left MOV EAX, [EBX].fBoundsRect.Left
@ -2956,11 +2810,7 @@ asm
TEST EAX, EAX TEST EAX, EAX
JZ @@fin JZ @@fin
PUSH EAX PUSH EAX
{$IFDEF USE_PROP}
PUSH offset ID_SELF
{$ELSE}
PUSH GWL_USERDATA PUSH GWL_USERDATA
{$ENDIF}
PUSH EAX PUSH EAX
PUSH 0 PUSH 0
@ -2969,29 +2819,17 @@ asm
PUSH EAX PUSH EAX
CALL SendMessage CALL SendMessage
{$IFDEF USE_PROP}
CALL GetProp
{$ELSE}
CALL GetWindowLong CALL GetWindowLong
{$ENDIF}
XCHG ECX, EAX XCHG ECX, EAX
POP EAX POP EAX
INC ECX INC ECX
LOOP @@propSet LOOP @@propSet
MOV [CreatingWindow], ECX MOV [CreatingWindow], ECX
PUSH EBX PUSH EBX
{$IFDEF USE_PROP}
PUSH offset ID_SELF
PUSH EAX
CALL SetProp
{$ELSE}
PUSH GWL_USERDATA PUSH GWL_USERDATA
PUSH EAX PUSH EAX
CALL SetWindowLong CALL SetWindowLong
{$ENDIF}
@@propSet: @@propSet:
{$IFDEF SMALLEST_CODE}
{$ELSE}
{$IFDEF USE_FLAGS} {$IFDEF USE_FLAGS}
TEST [EBX].fFlagsG3, 1 shl G3_IsControl TEST [EBX].fFlagsG3, 1 shl G3_IsControl
{$ELSE} {$ELSE}
@ -3006,7 +2844,6 @@ asm
PUSH EBX PUSH EBX
CALL Perform CALL Perform
@@iconSet: @@iconSet:
{$ENDIF}
MOV ECX, [EBX].PP.fCreateWndExt MOV ECX, [EBX].PP.fCreateWndExt
{$IFDEF NIL_EVENTS} {$IFDEF NIL_EVENTS}
JECXZ @@dblbufcreate JECXZ @@dblbufcreate
@ -3191,12 +3028,8 @@ asm
XCHG ESI, EAX // ESI = Idx' XCHG ESI, EAX // ESI = Idx'
XOR EAX, EAX XOR EAX, EAX
{$IFDEF COMMANDACTIONS_OBJ}
MOV ECX, [EBX].fCommandActions MOV ECX, [EBX].fCommandActions
MOVZX ECX, [ECX].TCommandActionsObj.aGetItemLength MOVZX ECX, [ECX].TCommandActionsObj.aGetItemLength
{$ELSE}
MOVZX ECX, [EBX].fCommandActions.aGetItemLength
{$ENDIF}
JECXZ @@ret_empty JECXZ @@ret_empty
PUSH ECX // push aGetItemLength PUSH ECX // push aGetItemLength
@ -3214,12 +3047,8 @@ asm
POP EDX // restore L POP EDX // restore L
LEA ECX, [EDX+1] LEA ECX, [EDX+1]
MOV dword ptr [EAX], ECX MOV dword ptr [EAX], ECX
{$IFDEF COMMANDACTIONS_OBJ}
MOV ECX, [EBX].fCommandActions MOV ECX, [EBX].fCommandActions
MOVZX ECX, [ECX].TCommandActionsObj.aGetItemText MOVZX ECX, [ECX].TCommandActionsObj.aGetItemText
{$ELSE}
MOVZX ECX, [EBX].fCommandActions.aGetItemText
{$ENDIF}
JECXZ @@ret_buf JECXZ @@ret_buf
PUSH EDX // save L PUSH EDX // save L
@ -3266,12 +3095,8 @@ asm
CALL ECX2PChar CALL ECX2PChar
PUSH ECX // @Value[1] PUSH ECX // @Value[1]
{$IFDEF COMMANDACTIONS_OBJ}
MOV ECX, [EBX].fCommandActions MOV ECX, [EBX].fCommandActions
MOVZX ECX, [ECX].TCommandActionsObj.aSetItemText MOVZX ECX, [ECX].TCommandActionsObj.aSetItemText
{$ELSE}
MOVZX ECX, [EBX].fCommandActions.aSetItemText
{$ENDIF}
JECXZ @@1 JECXZ @@1
PUSH 0 PUSH 0
@ -3309,12 +3134,8 @@ asm
@@1: // @Value[1] in stack already @@1: // @Value[1] in stack already
POP EDX POP EDX
{$IFDEF COMMANDACTIONS_OBJ}
MOV ECX, [EBX].fCommandActions MOV ECX, [EBX].fCommandActions
MOVZX ECX, [ECX].TCommandActionsObj.aDeleteItem MOVZX ECX, [ECX].TCommandActionsObj.aDeleteItem
{$ELSE}
MOVZX ECX, [EBX].fCommandActions.aDeleteItem
{$ENDIF}
JECXZ @@exit JECXZ @@exit
PUSH ESI PUSH ESI
@ -3362,12 +3183,8 @@ asm
PUSH EBX PUSH EBX
MOV EBX, EAX // EBX = @Self MOV EBX, EAX // EBX = @Self
{$IFDEF COMMANDACTIONS_OBJ}
MOV ECX, [EBX].fCommandActions MOV ECX, [EBX].fCommandActions
MOVZX ECX, [ECX].TCommandActionsObj.aAddItem MOVZX ECX, [ECX].TCommandActionsObj.aAddItem
{$ELSE}
MOVZX ECX, [EBX].fCommandActions.aAddItem // ECX = aAddItem
{$ENDIF}
JECXZ @@chk_addtext JECXZ @@chk_addtext
CALL EDX2PChar CALL EDX2PChar
@ -3392,12 +3209,8 @@ asm
JMP @@exit JMP @@exit
@@chk_addtext: @@chk_addtext:
{$IFDEF COMMANDACTIONS_OBJ}
MOV ECX, [EBX].fCommandActions MOV ECX, [EBX].fCommandActions
MOV ECX, [ECX].TCommandActionsObj.aAddText MOV ECX, [ECX].TCommandActionsObj.aAddText
{$ELSE}
MOV ECX, [EBX].fCommandActions.aAddText
{$ENDIF}
JECXZ @@add_text_simple JECXZ @@add_text_simple
CALL ECX CALL ECX
@ -3420,12 +3233,8 @@ function TControl.Insert(Idx: Integer; const S: AnsiString): Integer;
asm asm
CALL ECX2PChar CALL ECX2PChar
PUSH ECX PUSH ECX
{$IFDEF COMMANDACTIONS_OBJ}
MOV ECX, [EAX].fCommandActions MOV ECX, [EAX].fCommandActions
MOVZX ECX, [ECX].TCommandActionsObj.aInsertItem MOVZX ECX, [ECX].TCommandActionsObj.aInsertItem
{$ELSE}
MOVZX ECX, [EAX].fCommandActions.aInsertItem
{$ENDIF}
JECXZ @@exit_1 JECXZ @@exit_1
PUSH EDX PUSH EDX
@ -4142,12 +3951,7 @@ asm { [EBP+$8] = @Self
STOSD STOSD
MOV EAX, [ToolbarsIDcmd] MOV EAX, [ToolbarsIDcmd]
TEST EBX, EBX TEST EBX, EBX
{$IFDEF USE_CMOV}
CMOVL EBX, EAX CMOVL EBX, EAX
{$ELSE}
JGE @@b0
MOV EBX, EAX
@@b0: {$ENDIF}
STOSD STOSD
XOR EAX, EAX XOR EAX, EAX
INC AH // TBSTYLE_SEP = 1 INC AH // TBSTYLE_SEP = 1
@ -4179,12 +3983,7 @@ asm { [EBP+$8] = @Self
MOV EAX, [ToolbarsIDcmd] MOV EAX, [ToolbarsIDcmd]
STOSD STOSD
TEST EBX, EBX TEST EBX, EBX
{$IFDEF USE_CMOV}
CMOVL EBX, EAX CMOVL EBX, EAX
{$ELSE}
JGE @@210
MOV EBX, EAX
@@210: {$ENDIF}
MOV ECX, [EBP+8] MOV ECX, [EBP+8]
MOV AH, BYTE PTR [ECX].TControl.DF.fDefaultTBBtnStyle MOV AH, BYTE PTR [ECX].TControl.DF.fDefaultTBBtnStyle
POP ECX POP ECX

View File

@ -1178,47 +1178,8 @@ begin
Result := ( PBitsList( fList ).fCount + 3) div 4; Result := ( PBitsList( fList ).fCount + 3) div 4;
end; end;
{$IFDEF ASM_noVERSION}
//[function TBits.IndexOf] //[function TBits.IndexOf]
function TBits.IndexOf(Value: Boolean): Integer; function TBits.IndexOf(Value: Boolean): Integer;
asm //cmd //opd
PUSH EDI
MOV EDI, [EAX].fList
MOV ECX, [EDI].TList.fCount
@@ret_1:
OR EAX, -1
JECXZ @@ret_EAX
MOV EDI, [EDI].TList.fItems
TEST DL, DL
MOV EDX, EDI
JE @@of_false
INC EAX
REPZ SCASD
JE @@ret_1
MOV EAX, [EDI-4]
NOT EAX
JMP @@calc_offset
BSF EAX, EAX
SUB EDI, EDX
SHR EDI, 2
ADD EAX, EDI
JMP @@ret_EAX
@@of_false:
REPE SCASD
JE @@ret_1
MOV EAX, [EDI-4]
@@calc_offset:
BSF EAX, EAX
DEC EAX
SUB EDI, 4
SUB EDI, EDX
SHL EDI, 3
ADD EAX, EDI
@@ret_EAX:
POP EDI
end;
{$ELSE ASM_VERSION} //Pascal
function TBits.IndexOf(Value: Boolean): Integer;
var I: Integer; var I: Integer;
D: DWORD; D: DWORD;
begin begin
@ -1262,7 +1223,6 @@ begin
end; end;
end; end;
end; end;
{$ENDIF ASM_VERSION}
//[function TBits.LoadFromStream] //[function TBits.LoadFromStream]
procedure TBits.InstallBits(FromIdx, N: Integer; Value: Boolean); procedure TBits.InstallBits(FromIdx, N: Integer; Value: Boolean);
@ -1324,51 +1284,6 @@ begin
end; end;
//[procedure TBits.SetBit] //[procedure TBits.SetBit]
{$IFDEF ASM_noVERSION}
procedure TBits.SetBit(Idx: Integer; const Value: Boolean);
asm
PUSH EBX
XCHG EBX, EAX
CMP EDX, [EBX].fCount
JL @@2
LEA EAX, [EDX+32]
SHR EAX, 5
PUSH ECX
MOV ECX, [EBX].fList
CMP [ECX].TBitsList.fCount, EAX
JGE @@1
MOV [ECX].TBitsList.fCount, EAX
MOV ECX, [ECX].TBitsList.fCapacity
SHL ECX, 5
CMP EDX, ECX
JLE @@1
PUSH EDX
INC EDX
PUSH EAX
MOV EAX, EBX
CALL SetCapacity
POP EAX
POP EDX
@@1:
POP ECX
@@2:
MOV EAX, [EBX].fList
MOV EAX, [EAX].TBitsList.fItems
SHR ECX, 1
JC @@2set
BTR [EAX], EDX
JMP @@exit
@@2set:
BTS [EAX], EDX
@@exit:
POP EBX
end;
{$ELSE}
procedure TBits.SetBit(Idx: Integer; const Value: Boolean); procedure TBits.SetBit(Idx: Integer; const Value: Boolean);
var Msk: DWORD; var Msk: DWORD;
MinListCount: Integer; MinListCount: Integer;
@ -1392,7 +1307,6 @@ begin
if Idx >= fCount then if Idx >= fCount then
fCount := Idx + 1; fCount := Idx + 1;
end; end;
{$ENDIF}
//[procedure TBits.SetCapacity] //[procedure TBits.SetCapacity]
procedure TBits.SetCapacity(const Value: Integer); procedure TBits.SetCapacity(const Value: Integer);
@ -2272,6 +2186,7 @@ function _NewDirChgNotifier: PDirChange;
begin begin
New( Result, Create ); New( Result, Create );
end; end;
//[function NewDirChangeNotifier] //[function NewDirChangeNotifier]
function NewDirChangeNotifier( const Path: KOLString; Filter: TFileChangeFilter; function NewDirChangeNotifier( const Path: KOLString; Filter: TFileChangeFilter;
WatchSubtree: Boolean; ChangeProc: TOnDirChange ) WatchSubtree: Boolean; ChangeProc: TOnDirChange )
@ -2371,31 +2286,8 @@ begin
{$ENDIF ASM_VERSION} {$ENDIF ASM_VERSION}
end; end;
{$IFDEF noASM_VERSION}
//[destructor TDirChange.Destroy] //[destructor TDirChange.Destroy]
destructor TDirChange.Destroy; destructor TDirChange.Destroy;
asm
PUSH EBX
XCHG EBX, EAX
MOV [EBX].FDestroying, 1
MOV ECX, [EBX].FMonitor
JECXZ @@no_monitor
XCHG EAX, ECX
CALL TObj.Destroy // TObj.Free //
@@no_monitor:
MOV ECX, [EBX].FHandle
JECXZ @@exit
PUSH ECX
CALL FindCloseChangeNotification
@@exit:
LEA EAX, [EBX].FPath
CALL System.@LStrClr
XCHG EAX, EBX
CALL TObj.Destroy
POP EBX
end;
{$ELSE ASM_VERSION} //Pascal
destructor TDirChange.Destroy;
begin begin
FDestroying := TRUE; FDestroying := TRUE;
if FHandle > 0 then // FHandle <> INVALID_HANDLE_VALUE AND FHandle <> 0 if FHandle > 0 then // FHandle <> INVALID_HANDLE_VALUE AND FHandle <> 0
@ -2415,45 +2307,8 @@ begin
FPath := ''; FPath := '';
inherited; inherited;
end; end;
{$ENDIF ASM_VERSION}
{$IFDEF ASM_noVERSION}
//[function TDirChange.Execute] //[function TDirChange.Execute]
function TDirChange.Execute(Sender: PThread): Integer;
asm
PUSH EBX
PUSH ESI
XCHG EBX, EAX
MOV ESI, EDX
@@loo:
MOVZX ECX, [ESI].TThread.FTerminated
INC ECX
LOOP @@e_loop
MOV ECX, [EBX].FHandle
INC ECX
JZ @@e_loop
PUSH INFINITE
PUSH ECX
CALL WaitForSingleObject
OR EAX, EAX
JNZ @@loo
PUSH [EBX].FHandle
MOV EAX, [EBX].FMonitor
PUSH EBX
PUSH offset[TDirChange.Changed]
CALL TThread.Synchronize
CALL FindNextChangeNotification
JMP @@loo
@@e_loop:
POP ESI
POP EBX
XOR EAX, EAX
end;
{$ELSE ASM_VERSION} //Pascal
function TDirChange.Execute(Sender: PThread): PtrInt; function TDirChange.Execute(Sender: PThread): PtrInt;
var Handles: array[ 0..1 ] of THandle; var Handles: array[ 0..1 ] of THandle;
//i: Integer; //i: Integer;
@ -2477,20 +2332,15 @@ begin
end; end;
else break; else break;
end; end;
{$IFDEF SAFE_CODE}
TRY TRY
{$ENDIF}
FindCloseChangeNotification( Handles[ 0 ] ); FindCloseChangeNotification( Handles[ 0 ] );
FHandle := 0; FHandle := 0;
CloseHandle( FinEvent ); CloseHandle( FinEvent );
FinEvent := 0; FinEvent := 0;
{$IFDEF SAFE_CODE}
EXCEPT EXCEPT
END; END;
{$ENDIF}
Result := 0; Result := 0;
end; end;
{$ENDIF ASM_VERSION}
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
// //
@ -2736,36 +2586,17 @@ end;
//[procedure TAction.LinkMenuItem] //[procedure TAction.LinkMenuItem]
procedure TAction.LinkMenuItem(Menu: PMenu; MenuItemIdx: integer); procedure TAction.LinkMenuItem(Menu: PMenu; MenuItemIdx: integer);
{$IFDEF _FPC}
var
arr1_DoOnMenuItem: array[ 0..0 ] of TOnMenuItem;
{$ENDIF _FPC}
begin begin
//LinkCtrl(Menu, ckMenu, MenuItemIdx, UpdateMenu); -- replaced by mdw to: //LinkCtrl(Menu, ckMenu, MenuItemIdx, UpdateMenu); -- replaced by mdw to:
LinkCtrl(Menu, ckMenu, Menu.Items[MenuItemIdx].MenuId, UpdateMenu); LinkCtrl(Menu, ckMenu, Menu.Items[MenuItemIdx].MenuId, UpdateMenu);
{$IFDEF _FPC}
arr1_DoOnMenuItem[ 0 ] := DoOnMenuItem;
Menu.AssignEvents(MenuItemIdx, arr1_DoOnMenuItem);
{$ELSE}
Menu.AssignEvents(MenuItemIdx, [ DoOnMenuItem ]); Menu.AssignEvents(MenuItemIdx, [ DoOnMenuItem ]);
{$ENDIF}
end; end;
//[procedure TAction.LinkToolbarButton] //[procedure TAction.LinkToolbarButton]
procedure TAction.LinkToolbarButton(Toolbar: PControl; ButtonIdx: integer); procedure TAction.LinkToolbarButton(Toolbar: PControl; ButtonIdx: integer);
{$IFDEF _FPC}
var
arr1_DoOnToolbarButtonClick: array[ 0..0 ] of TOnToolbarButtonClick;
{$ENDIF _FPC}
begin begin
LinkCtrl(Toolbar, ckToolbar, ButtonIdx, UpdateToolbar); LinkCtrl(Toolbar, ckToolbar, ButtonIdx, UpdateToolbar);
{$IFDEF _FPC}
arr1_DoOnToolbarButtonClick[ 0 ] := DoOnToolbarButtonClick;
Toolbar.TBAssignEvents(ButtonIdx, arr1_DoOnToolbarButtonClick);
{$ELSE}
Toolbar.TBAssignEvents(ButtonIdx, [DoOnToolbarButtonClick]); Toolbar.TBAssignEvents(ButtonIdx, [DoOnToolbarButtonClick]);
{$ENDIF}
end; end;
//[destructor TAction.Destroy] //[destructor TAction.Destroy]

View File

@ -110,8 +110,8 @@ const
'object KOLProj: TKOLProject' + #13#10 + 'object KOLProj: TKOLProject' + #13#10 +
'Locked = False' + #13#10 + 'Locked = False' + #13#10 +
'Localizy = False' + #13#10 + 'Localizy = False' + #13#10 +
'projectName = ''prj''' + #13#10 + 'projectName = ''%prj_name%''' + #13#10 +
'projectDest = ''prj''' + #13#10 + 'projectDest = ''%prj_name%''' + #13#10 +
'sourcePath = ''%path%''' + #13#10 + 'sourcePath = ''%path%''' + #13#10 +
'outdcuPath = ''%path%''' + #13#10 + 'outdcuPath = ''%path%''' + #13#10 +
'dprResource = True' + #13#10 + 'dprResource = True' + #13#10 +
@ -126,8 +126,6 @@ const
'PaintType = ptWYSIWIG' + #13#10 + 'PaintType = ptWYSIWIG' + #13#10 +
'ShowHint = False' + #13#10 + 'ShowHint = False' + #13#10 +
'ReportDetailed = False' + #13#10 + 'ReportDetailed = False' + #13#10 +
'GeneratePCode = False' + #13#10 +
'NewIF = True' + #13#10 +
'Left = 16' + #13#10 + 'Left = 16' + #13#10 +
'Top = 16' + #13#10 + 'Top = 16' + #13#10 +
'end' + #13#10 + 'end' + #13#10 +
@ -245,8 +243,9 @@ begin
lst.Text := StringReplace(unt_template, '%unt_name%', unt_name, [rfReplaceAll]); lst.Text := StringReplace(unt_template, '%unt_name%', unt_name, [rfReplaceAll]);
lst.SaveToFile(ChangeFileExt(unt, '.pas')); lst.SaveToFile(ChangeFileExt(unt, '.pas'));
// gen dfm // gen dfm
lst.Text := StringReplace(dfm_template, '%path%', ExtractFilePath(unt), [rfReplaceAll]); lst.Text := StringReplace(dfm_template, '%prj_name%', ExtractFileName(prj), [rfReplaceAll]);
lst.Text := StringReplace(lst.Text, '%unt_name%', unt_name, [rfReplaceAll]); lst.Text := StringReplace(lst.Text, '%unt_name%', unt_name, [rfReplaceAll]);
lst.Text := StringReplace(lst.Text, '%path%', ExtractFilePath(unt), [rfReplaceAll]);
lst.SaveToFile(ChangeFileExt(unt, '.dfm')); lst.SaveToFile(ChangeFileExt(unt, '.dfm'));
// gen dummy res file // gen dummy res file
resfile := FileCreate(ChangeFileExt(prj, '.res')); resfile := FileCreate(ChangeFileExt(prj, '.res'));
@ -274,7 +273,7 @@ end;
function TMCKWizard.GetComment: string; function TMCKWizard.GetComment: string;
begin begin
Result := 'v0.03'; Result := 'v0.04';
end; end;
function TMCKWizard.GetGlyph: Cardinal; function TMCKWizard.GetGlyph: Cardinal;

View File

@ -184,6 +184,7 @@ const
PBS_SMOOTH = 01; PBS_SMOOTH = 01;
PBS_VERTICAL = 04; PBS_VERTICAL = 04;
PBS_MARQUEE = $08;
PBM_SETRANGE = WM_USER+1; PBM_SETRANGE = WM_USER+1;
PBM_SETPOS = WM_USER+2; PBM_SETPOS = WM_USER+2;
@ -196,6 +197,7 @@ const
// wParam = True: Result = low // wParam = True: Result = low
PBM_GETPOS = WM_USER+8; PBM_GETPOS = WM_USER+8;
PBM_SETBARCOLOR = WM_USER+9; // lParam = bar color PBM_SETBARCOLOR = WM_USER+9; // lParam = bar color
PBM_SETMARQUEE = WM_USER + 10;
PBM_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor PBM_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
SB_SETTEXTA = WM_USER+1; SB_SETTEXTA = WM_USER+1;

View File

@ -9,29 +9,44 @@ uses
type type
TScrollStyle = (ssNone, ssHorz, ssVert, ssBoth); TScrollStyle = (ssNone, ssHorz, ssVert, ssBoth);
TCDLVColumn = packed record
Caption: WideString;
TextAlign: TTextAlign;
Width: Integer;
end;
ArrayTCDLVColumn = array of TCDLVColumn;
TCDTBButton = packed record
Caption: WideString;
Rect: TRect;
Enabled: Boolean;
Separator: Boolean;
Checked: Boolean;
end;
ArrayTCDTBButton = array of TCDTBButton;
const const
TextHFlags: array[TTextAlign] of DWORD = (DT_LEFT, DT_RIGHT, DT_CENTER); TextHFlags: array[TTextAlign] of DWORD = (DT_LEFT, DT_RIGHT, DT_CENTER);
TextVFlags: array[TVerticalAlign] of DWORD = (DT_TOP, DT_VCENTER, DT_BOTTOM); TextVFlags: array[TVerticalAlign] of DWORD = (DT_TOP, DT_VCENTER, DT_BOTTOM);
WordWrapFlags: array[Boolean] of DWORD = (DT_SINGLELINE, 0);//! WordWrapFlags: array[Boolean] of DWORD = (DT_SINGLELINE, 0);//!
CheckFlags: array[Boolean] of DWORD = (0, DFCS_CHECKED); CheckFlags: array[Boolean] of DWORD = (0, DFCS_CHECKED);
procedure DrawButton(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aDefBtn: Boolean; dwTextFlags: DWORD; aText: WideString); procedure DrawButton(aUX, aEnabled, aDefBtn: Boolean; DC: HDC; R: TRect; dwTextFlags: DWORD; aText: WideString);
procedure DrawEditBox(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aIsPwd: Boolean; dwTextFlags: DWORD; aText: WideString); procedure DrawEditBox(aUX, aEnabled, aIsPwd: Boolean; DC: HDC; R: TRect; dwTextFlags: DWORD; aText: WideString);
procedure DrawMemo(aUX: Boolean; DC: HDC; R: TRect; aColor: Integer; aEnabled: Boolean; aScrollStyle: TScrollStyle; dwTextFlags: DWORD; aText: WideString); procedure DrawMemo(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aColor: Integer;aScrollStyle: TScrollStyle; dwTextFlags: DWORD; aText: WideString);
procedure DrawCombobox(DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString); procedure DrawCombobox(DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString);
procedure DrawLabel(DC: HDC; R: TRect; dwTextFlags: DWORD; aText: WideString); procedure DrawLabel(DC: HDC; R: TRect; dwTextFlags: DWORD; aText: WideString);
procedure DrawCheckbox(DC: HDC; R: TRect; aEnabled, aChecked, aHasBorder: Boolean; aText: WideString); procedure DrawCheckbox(DC: HDC; R: TRect; aEnabled, aChecked, aHasBorder: Boolean; aText: WideString);
procedure DrawRadiobox(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aChecked, aHasBorder: Boolean; aText: WideString); procedure DrawRadiobox(aUX, aEnabled, aChecked, aHasBorder: Boolean; DC: HDC; R: TRect; aText: WideString);
procedure DrawListBox(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString); procedure DrawListBox(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aText: WideString);
procedure DrawTreeView(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString); procedure DrawTreeView(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aText: WideString);
procedure DrawListView(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aColumns: KOLWideString); procedure DrawListView(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aCols: ArrayTCDLVColumn);
procedure DrawProgressBar(DC: HDC; R: TRect; aVertical: Boolean; aProgress, aMaxProgress: Integer); procedure DrawProgressBar(DC: HDC; R: TRect; aVertical: Boolean; aProgress, aMaxProgress: Integer);
procedure DrawTrackBar(DC: HDC; R: TRect; aVertical: Boolean; aProgress, aMaxProgress: Integer); procedure DrawTrackBar(DC: HDC; R: TRect; aVertical: Boolean; aProgress, aMaxProgress: Integer);
procedure DrawGroupBox(aUX: Boolean; DC: HDC; R: TRect; aText: WideString); procedure DrawGroupBox(aUX: Boolean; DC: HDC; R: TRect; aText: WideString);
procedure DrawScrollBar(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aVertical: Boolean; aPos, aMin, aMax: Integer); procedure DrawScrollBar(aUX, aEnabled, aVertical: Boolean; DC: HDC; R: TRect; aPos, aMin, aMax: Integer);
procedure DrawScrollBox(aUX: Boolean; DC: HDC; R: TRect; aScrollStyle: TScrollStyle); procedure DrawScrollBox(aUX: Boolean; DC: HDC; R: TRect; aScrollStyle: TScrollStyle);
// not yet procedure DrawToolbar(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aBtns: ArrayTCDTBButton);
procedure DrawToolbar(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString);
implementation implementation
@ -43,17 +58,25 @@ begin
Result := aPixelX + Round((aPos + Abs(aMin)) / (aMax + Abs(aMin)) * (aPixelMax - aPixelX * 3)); Result := aPixelX + Round((aPos + Abs(aMin)) / (aMax + Abs(aMin)) * (aPixelMax - aPixelX * 3));
end; end;
procedure DrawScrollBar(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aVertical: Boolean; aPos, aMin, aMax: Integer); procedure DrawScrollBar(aUX, aEnabled, aVertical: Boolean; DC: HDC; R: TRect; aPos, aMin, aMax: Integer);
const //enb btn const //enb btn
arrThemedSBLU: array[Boolean, Boolean] of TThemedScrollBar = ( arrThemedSBLU: array[Boolean, Boolean] of TThemedScrollBar = (
(tsArrowBtnLeftDisabled, tsArrowBtnUpDisabled), (tsArrowBtnLeftNormal, tsArrowBtnUpNormal)); (tsArrowBtnLeftDisabled, tsArrowBtnUpDisabled),
(tsArrowBtnLeftNormal, tsArrowBtnUpNormal));
arrThemedSBRD: array[Boolean, Boolean] of TThemedScrollBar = ( arrThemedSBRD: array[Boolean, Boolean] of TThemedScrollBar = (
(tsArrowBtnRightDisabled, tsArrowBtnDownDisabled), (tsArrowBtnRightNormal, tsArrowBtnDownNormal)); (tsArrowBtnRightDisabled, tsArrowBtnDownDisabled),
(tsArrowBtnRightNormal, tsArrowBtnDownNormal));
arrThemedSBTH: array[Boolean] of TThemedScrollBar = (tsThumbBtnHorzNormal, tsThumbBtnVertNormal); arrThemedSBTH: array[Boolean] of TThemedScrollBar = (tsThumbBtnHorzNormal, tsThumbBtnVertNormal);
arrSBLU: array[Boolean, Boolean] of DWORD = ( arrSBLU: array[Boolean, Boolean] of DWORD = (
(DFCS_SCROLLLEFT or DFCS_INACTIVE,DFCS_SCROLLUP or DFCS_INACTIVE), (DFCS_SCROLLLEFT, DFCS_SCROLLUP)); (DFCS_SCROLLLEFT or DFCS_INACTIVE,DFCS_SCROLLUP or DFCS_INACTIVE),
(DFCS_SCROLLLEFT, DFCS_SCROLLUP));
arrSBRD: array[Boolean, Boolean] of DWORD = ( arrSBRD: array[Boolean, Boolean] of DWORD = (
(DFCS_SCROLLRIGHT or DFCS_INACTIVE, DFCS_SCROLLDOWN or DFCS_INACTIVE), (DFCS_SCROLLRIGHT, DFCS_SCROLLDOWN)); (DFCS_SCROLLRIGHT or DFCS_INACTIVE, DFCS_SCROLLDOWN or DFCS_INACTIVE),
(DFCS_SCROLLRIGHT, DFCS_SCROLLDOWN));
var var
w: Integer; w: Integer;
@ -92,7 +115,7 @@ begin
end; end;
end; end;
procedure DrawButton(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aDefBtn: Boolean; dwTextFlags: DWORD; aText: WideString); procedure DrawButton(aUX, aEnabled, aDefBtn: Boolean; DC: HDC; R: TRect; dwTextFlags: DWORD; aText: WideString);
const //enb defbtn const //enb defbtn
arrThemedButton: array[Boolean, Boolean] of TThemedButton = arrThemedButton: array[Boolean, Boolean] of TThemedButton =
((tbPushButtonDisabled, tbPushButtonDisabled), (tbPushButtonNormal, tbPushButtonDefaulted)); ((tbPushButtonDisabled, tbPushButtonDisabled), (tbPushButtonNormal, tbPushButtonDefaulted));
@ -125,7 +148,7 @@ begin
end; end;
end; end;
procedure DrawEditBox(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aIsPwd: Boolean; dwTextFlags: DWORD; aText: WideString); procedure DrawEditBox(aUX, aEnabled, aIsPwd: Boolean; DC: HDC; R: TRect; dwTextFlags: DWORD; aText: WideString);
begin begin
if ThemeServices.ThemesAvailable and aUX then begin if ThemeServices.ThemesAvailable and aUX then begin
// draw element // draw element
@ -148,7 +171,7 @@ begin
end; end;
end; end;
procedure DrawMemo(aUX: Boolean; DC: HDC; R: TRect; aColor: Integer; aEnabled: Boolean; aScrollStyle: TScrollStyle; dwTextFlags: DWORD; aText: WideString); procedure DrawMemo(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aColor: Integer;aScrollStyle: TScrollStyle; dwTextFlags: DWORD; aText: WideString);
var var
w: Integer; w: Integer;
h: Integer; h: Integer;
@ -168,13 +191,13 @@ begin
InflateRect(R, -1, -1); InflateRect(R, -1, -1);
// draw scrolls // draw scrolls
case aScrollStyle of case aScrollStyle of
ssHorz: DrawScrollBar(aUX, DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), False, False, 2, 0, 100); ssHorz: DrawScrollBar(aUX, False, False, DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), 2, 0, 100);
ssVert: DrawScrollBar(aUX, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom), False, True, 2, 0, 100); ssVert: DrawScrollBar(aUX, False, True, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom), 2, 0, 100);
ssBoth: ssBoth:
begin begin
ThemeServices.DrawElement(DC, ThemeServices.GetElementDetails(tsLowerTrackVertNormal), Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), nil); ThemeServices.DrawElement(DC, ThemeServices.GetElementDetails(tsLowerTrackVertNormal), Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), nil);
DrawScrollBar(aUX, DC, Rect(R.Left, R.Bottom - h, R.Right - w, R.Bottom), False, False, 2, 0, 100); DrawScrollBar(aUX, False, False, DC, Rect(R.Left, R.Bottom - h, R.Right - w, R.Bottom), 2, 0, 100);
DrawScrollBar(aUX, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom - h), False, True, 2, 0, 100); DrawScrollBar(aUX, False, True, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom - h), 2, 0, 100);
end; end;
end; end;
// draw text // draw text
@ -191,13 +214,13 @@ begin
DeleteObject(b); DeleteObject(b);
// draw scrolls // draw scrolls
case aScrollStyle of case aScrollStyle of
ssHorz: DrawScrollBar(aUX, DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), False, False, 2, 0, 100); ssHorz: DrawScrollBar(aUX, False, False, DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), 2, 0, 100);
ssVert: DrawScrollBar(aUX, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom), False, True, 2, 0, 100); ssVert: DrawScrollBar(aUX, False, True, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom), 2, 0, 100);
ssBoth: ssBoth:
begin begin
FillRect(DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), GetSysColorBrush(COLOR_BTNFACE)); FillRect(DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), GetSysColorBrush(COLOR_BTNFACE));
DrawScrollBar(aUX, DC, Rect(R.Left, R.Bottom - h, R.Right - w, R.Bottom), False, False, 2, 0, 100); DrawScrollBar(aUX, False, False, DC, Rect(R.Left, R.Bottom - h, R.Right - w, R.Bottom), 2, 0, 100);
DrawScrollBar(aUX, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom - h), False, True, 2, 0, 100); DrawScrollBar(aUX, False, True, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom - h), 2, 0, 100);
end; end;
end; end;
// draw text // draw text
@ -261,10 +284,11 @@ begin
ThemeServices.DrawText(DC, d, aText, r, DT_LEFT, 0); ThemeServices.DrawText(DC, d, aText, r, DT_LEFT, 0);
end; end;
procedure DrawRadiobox(aUX: Boolean; DC: HDC; R: TRect; aEnabled, aChecked, aHasBorder: Boolean; aText: WideString); procedure DrawRadiobox(aUX, aEnabled, aChecked, aHasBorder: Boolean; DC: HDC; R: TRect; aText: WideString);
const //enb chk const //enb chk
arrFlags: array[Boolean, Boolean] of DWORD = arrFlags: array[Boolean, Boolean] of DWORD =
((DFCS_INACTIVE, DFCS_CHECKED or DFCS_INACTIVE), (0, DFCS_CHECKED)); ((DFCS_INACTIVE, DFCS_CHECKED or DFCS_INACTIVE),
(0, DFCS_CHECKED));
//enb chk //enb chk
arrThemedRB: array[Boolean, Boolean] of TThemedButton = arrThemedRB: array[Boolean, Boolean] of TThemedButton =
((tbRadioButtonUncheckedDisabled, tbRadioButtonCheckedDisabled), ((tbRadioButtonUncheckedDisabled, tbRadioButtonCheckedDisabled),
@ -303,7 +327,7 @@ begin
end; end;
end; end;
procedure DrawListBox(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString); procedure DrawListBox(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aText: WideString);
begin begin
if ThemeServices.ThemesAvailable and aUX then begin if ThemeServices.ThemesAvailable and aUX then begin
// draw element // draw element
@ -326,42 +350,44 @@ begin
end; end;
end; end;
procedure DrawTreeView(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString); procedure DrawTreeView(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aText: WideString);
begin begin
DrawListBox(aUX, DC, R, aEnabled, aText); DrawListBox(aUX, aEnabled, DC, R, aText);
end; end;
procedure DrawListView(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aColumns: KOLWideString); procedure DrawListView(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aCols: ArrayTCDLVColumn);
const
HEAD_HEIGHT = 20;
CXL = 8; //!
CXR = 6; //!
var var
w: WideString; i: Integer;
d: TThemedElementDetails; d: TThemedElementDetails;
f: DWORD;
begin begin
// draw main // draw main
DrawListBox(aUX, DC, R, aEnabled, ''); DrawListBox(aUX, aEnabled, DC, R, '');
// columns // columns
if (aColumns <> '') then begin if (Length(aCols) > 0) then begin
// draw head back // draw head back
R := Bounds(2, 2, R.Right - 4, 20); R := Bounds(2, 2, R.Right - 4, HEAD_HEIGHT);
ThemeServices.DrawElement(DC, ThemeServices.GetElementDetails(thHeaderRoot), R, nil); ThemeServices.DrawElement(DC, ThemeServices.GetElementDetails(thHeaderRoot), R, nil);
// draw columns // draw columns
R := Bounds(2, 2, 50, 20); for i := 0 to High(aCols) do begin
repeat
w := ParseW(aColumns, #13);
if (aColumns = '') and (w = '') then
Break
else begin
// get element // get element
d := ThemeServices.GetElementDetails(thHeaderItemNormal); d := ThemeServices.GetElementDetails(thHeaderItemNormal);
// draw head column // draw head column
R.Right := R.Left + aCols[i].Width;
ThemeServices.DrawElement(DC, d, R, nil); ThemeServices.DrawElement(DC, d, R, nil);
// draw text // draw text
Inc(R.Left, 10); Inc(R.Left, CXL);
ThemeServices.DrawText(DC, d, w, R, DT_LEFT or DT_VCENTER or DT_SINGLELINE, 0); Dec(R.Right, CXR);
f := TextHFlags[aCols[i].TextAlign] or DT_VCENTER or DT_SINGLELINE;
ThemeServices.DrawText(DC, d, aCols[i].Caption, R, f, 0);
// next // next
Inc(R.Left, 40); R.Left := R.Right + CXR;
Inc(R.Right, 50);
end; end;
until False;
end; end;
end; end;
@ -426,35 +452,54 @@ begin
FillRect(DC, R, GetSysColorBrush(COLOR_BTNFACE)); FillRect(DC, R, GetSysColorBrush(COLOR_BTNFACE));
DrawEdge(DC, R, EDGE_SUNKEN, BF_RECT or BF_ADJUST); DrawEdge(DC, R, EDGE_SUNKEN, BF_RECT or BF_ADJUST);
case aScrollStyle of case aScrollStyle of
ssHorz: DrawScrollBar(aUX, DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), True, False, 2, 0, 100); ssHorz: DrawScrollBar(aUX, True, False, DC, Rect(R.Left, R.Bottom - h, R.Right, R.Bottom), 2, 0, 100);
ssVert: DrawScrollBar(aUX, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom), True, True, 2, 0, 100); ssVert: DrawScrollBar(aUX, True, True, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom), 2, 0, 100);
ssBoth: ssBoth:
begin begin
DrawScrollBar(aUX, DC, Rect(R.Left, R.Bottom - h, R.Right - w, R.Bottom), True, False, 2, 0, 100); DrawScrollBar(aUX, True, False, DC, Rect(R.Left, R.Bottom - h, R.Right - w, R.Bottom), 2, 0, 100);
DrawScrollBar(aUX, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom - h), True, True, 2, 0, 100); DrawScrollBar(aUX, True, True, DC, Rect(R.Right - w, R.Top, R.Right, R.Bottom - h), 2, 0, 100);
end; end;
end; end;
end; end;
// not yet procedure DrawToolbar(aUX, aEnabled: Boolean; DC: HDC; R: TRect; aBtns: ArrayTCDTBButton);
procedure DrawToolbar(aUX: Boolean; DC: HDC; R: TRect; aEnabled: Boolean; aText: WideString); const // enb, sep
arrTTB: array[Boolean, Boolean] of TThemedToolBar = (
(ttbButtonDisabled, ttbSeparatorDisabled),
(ttbButtonNormal, ttbSeparatorNormal)
);
var var
i: Integer;
d: TThemedElementDetails; d: TThemedElementDetails;
begin begin
if ThemeServices.ThemesAvailable and aUX then begin if ThemeServices.ThemesAvailable and aUX then begin
// draw background
ThemeServices.DrawElement(DC, ThemeServices.GetElementDetails(ttbToolBarRoot), R, nil);
// draw buttons
for i := 0 to High(aBtns) do begin
// get element // get element
d := ThemeServices.GetElementDetails(ttbToolBarRoot); if aBtns[i].Checked then
d := ThemeServices.GetElementDetails(ttbButtonChecked)
else
d := ThemeServices.GetElementDetails(arrTTB[aBtns[i].Enabled, aBtns[i].Separator]);
// draw element // draw element
ThemeServices.DrawElement(DC, d, R, nil); ThemeServices.DrawElement(DC, d, aBtns[i].Rect, nil);
// draw text
// get element ThemeServices.DrawText(DC, d, aBtns[i].Caption, aBtns[i].Rect, 0, 0);
d := ThemeServices.GetElementDetails(ttbSplitButtonNormal); end;
// draw element
ThemeServices.DrawElement(DC, d, R, nil);
// text
ThemeServices.DrawText(DC, d, aText, R, 0, 0);
end else begin end else begin
// draw background
FillRect(DC, R, GetSysColorBrush(COLOR_BTNFACE));
// draw buttons
for i := 0 to High(aBtns) do begin
if aBtns[i].Separator then
Windows.Rectangle(DC, aBtns[i].Rect.Left, aBtns[i].Rect.Top, aBtns[i].Rect.Right, aBtns[i].Rect.Bottom)
else begin
DrawEdge(DC, aBtns[i].Rect, BDR_RAISEDINNER, BF_RECT);
DrawTextW(DC, PWideChar(aBtns[i].Caption), Length(aBtns[i].Caption), aBtns[i].Rect, DT_LEFT);
end;
end;
end; end;
end; end;

11245
mckCtrls.pas

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

20080
mirror.pas

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
05.03.21
-------------------------------------------------------------------
Changes after last svn:
* MCK: ux visual style mode updated
- MCK: remove pcode / collapse
- MCK: remove FormCompact
- MCK: source formatting: mckObjs.pas, mckCtrls.pas (by cnpack)
- KOL: remove codegeneration for MCK FormCompact
* KOL: move some defines from KOL.pas to KOLDEF.inc
* KOL: some refactoring\cleaning
* KOL: remove unused defines (SAFE_CODE, USE_CMOV, COMMANDACTIONS_OBJ, USE_AUTOFREE4CONTROLS, USE_AUTOFREE4CHILDREN, NEW_ALIGN, PROVIDE_EXITCODE - always on; OLD_REFCOUNT, SMALLEST_CODE*, SPEED_FASTER, USE_PROP, UMERIC_APPICON, CUSTOM_APPICON, TEST_INDEXOFCHARS_COMPAT, _FPC, REDEFINE_ABS, OLD_*, NOT_FIX_MODAL, NOT_UNLOAD_RICHEDITLIB, ANCHORS_WM_SIZE, COMMANDACTIONS_RECORD - always off; OLD_FREE and etc..)
* KOL: fix WStrRScan - affected: ExtractFileNeme, ExtractFileExt, ExtractFilePath and "Create new mck project" in XE 10.2 and maybe other high versions (by Hubert Bannwarth)
* KOL: fix "Create new mck project" in XE 10.2/3 and maybe other versions
* KOL: remove some old\commented\broken\asm code and defines like "*ASM_NO_VERSION*"
* KOLadd: remove some old\commented\broken\asm code and defines like "*ASM_NO_VERSION*"
* and some else..
Tested on:
Delphi 2006 x32(ansi\unicode)
Delphi XE 10.3 x32(unicode), x64(unicode)
------------------------------------------------------------------- -------------------------------------------------------------------
3.12.14 3.12.14
------------------------------------------------------------------- -------------------------------------------------------------------