git-svn-id: https://svn.code.sf.net/p/kolmck/code@110 91bb2d04-0c0c-4d2d-88a5-bbb6f4c1fa07
This commit is contained in:
dkolmck 2011-11-29 08:02:49 +00:00
parent 65c5217ec4
commit 8255c47a3d
9 changed files with 101 additions and 20 deletions

View File

@ -517,6 +517,7 @@ end;
function ExceptionErrorMessage(ExceptObject: TObject; ExceptAddr: Pointer;
Buffer: PKOLChar; Size: Integer): Integer;
var
ex: Exception;
MsgPtr: PKOLChar;
//MsgEnd: PChar;
//MsgLen: Integer;
@ -543,7 +544,8 @@ begin
//MsgEnd := '';
if ExceptObject is Exception then
begin
MsgPtr := PKOLChar(Exception(ExceptObject).Message);
ex := Exception(ExceptObject);
MsgPtr := PKOLChar(ex.Message);
//MsgLen := StrLen(MsgPtr);
//if (MsgLen <> 0) and (MsgPtr[MsgLen - 1] <> '.') then MsgEnd := '.';
{-} // Isn't it too beautiful - devote ~40 bytes of code just to decide,

22
KOL.pas
View File

@ -14,7 +14,7 @@
Key Objects Library (C) 2000 by Vladimir Kladov.
****************************************************************
* VERSION 3.15
* VERSION 3.16
****************************************************************
K.O.L. - is a set of objects and functions to create small programs
@ -715,7 +715,7 @@ type
{* }
PPointerList = ^TPointerList;
TPointerList = array[0..MaxInt div 4 - 1] of Pointer;
TPointerList = array[0..MaxInt div SizeOf(Pointer) - 1] of Pointer;
TObjectMethod = procedure of object;
{* }
@ -15932,13 +15932,14 @@ end;
function TObj.VmtAddr: Pointer;
asm
MOV EAX, [EAX - 4]
//MOV EAX, [EAX - 4]
MOV EAX, [EAX]
end;
function TObj.InstanceSize: Integer;
asm
MOV EAX, [EAX]
MOV EAX,[EAX-4]
//MOV EAX, [EAX]
MOV EAX, [EAX-4]
end;
{$IFDEF OLD_FREE}
@ -25420,7 +25421,7 @@ function Time2StrFmt( const Fmt: KOLString; D: TDateTime ): KOLString;
var ST: TSystemTime;
lpFmt: PKOLChar;
begin
if D < 1 then D := D + 1;
if D < 1 then D := D + 700000;
DateTime2SystemTime( D, ST );
lpFmt := nil;
if Fmt <> '' then lpFmt := PKOLChar( Fmt );
@ -34281,8 +34282,8 @@ asm
MOV ECX, [EDX].TEvents.fOnResize.TMethod.Code
MOV EAX, [EDX].TEvents.fOnResize.TMethod.Data
{$ELSE}
MOV ECX, [EDX].TControl.fOnResize.TMethod.Code
MOV EAX, [EDX].TControl.fOnResize.TMethod.Data
MOV ECX, [EDX].TControl.EV.fOnResize.TMethod.Code
MOV EAX, [EDX].TControl.EV.fOnResize.TMethod.Data
{$ENDIF}
{$IFDEF NIL_EVENTS}
JECXZ @@ret_true1
@ -34448,7 +34449,7 @@ asm
MOV EAX, [EDX].TControl.EV
MOV ECX, [EAX].TEvents.fOnDropDown.TMethod.Code
{$ELSE}
MOV ECX, [EDX].TControl.fOnDropDown.TMethod.Code
MOV ECX, [EDX].TControl.EV.fOnDropDown.TMethod.Code
{$ENDIF}
{$IFDEF NIL_EVENTS}
JECXZ @@ret_z
@ -34456,7 +34457,7 @@ asm
{$IFDEF EVENTS_DYNAMIC}
MOV EAX, [EAX].TEvents.fOnDropDown.TMethod.Data
{$ELSE}
MOV EAX, [EDX].TControl.fOnDropDown.TMethod.Data
MOV EAX, [EDX].TControl.EV.fOnDropDown.TMethod.Data
{$ENDIF}
CALL ECX
@@ret_z:
@ -57909,6 +57910,7 @@ begin
Sender.EV.FOnHide( Sender );
end;
end;
Sender.UpdateWndStyles;
Result := FALSE;
end;

View File

@ -163,8 +163,30 @@ Delphi version 8 not supported! (delphi 8 is .net only)
{$DEFINE _D2010orHigher}
{$DEFINE _DXE}
{$DEFINE _DXEorHigher}
{$DEFINE _DXEorHigher}
{$WARN UNIT_DEPRECATED OFF}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
{$WARN UNSAFE_CODE OFF}
{$ENDIF}
{$IFDEF VER230} // Delphi XE2
{$DEFINE _D3orHigher}
{$DEFINE _D4orHigher}
{$DEFINE _D5orHigher}
{$DEFINE _D6orHigher}
{$DEFINE _D7orHigher}
{$DEFINE _D2005orHigher}
{$DEFINE _D2006orHigher}
{$DEFINE _D2007orHigher}
{$DEFINE _D2009orHigher}
{$DEFINE _D2010orHigher}
{$DEFINE _DXE}
{$DEFINE _DXEorHigher}
{$DEFINE _DXE2}
{$DEFINE _DXE2orHigher}
{$DEFINE PAS_VERSION}
{$WARN UNIT_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}

55
KOLMCK_DXE2.dpk Normal file
View File

@ -0,0 +1,55 @@
package KOLMCK_DXE2;
{$R 'KOLMCK.res'}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 4}
{$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 OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $9400000}
{$DEFINE DEBUG}
{$DEFINE INPACKAGE}
{$ENDIF IMPLICITBUILDING}
{$DESCRIPTION 'KOLMCK XE2'}
{$DESIGNONLY}
{$IMPLICITBUILD OFF}
requires
rtl,
vcl,
xmlrtl,
vclactnband,
vclx;
contains
KOL in 'KOL.pas',
KOLadd in 'KOLadd.pas',
mirror in 'mirror.pas',
mckObjs in 'mckObjs.pas',
mckCtrls in 'mckCtrls.pas',
mckCtrlDraw in 'mckCtrlDraw.pas',
mckMenuEditor in 'mckMenuEditor.pas',
mckToolbarEditor in 'mckToolbarEditor.pas',
mckAccEditor in 'mckAccEditor.pas',
mckActionListEditor in 'mckActionListEditor.pas',
mckFileFilterEditor in 'mckFileFilterEditor.pas',
mckLVColumnsEditor in 'mckLVColumnsEditor.pas',
MCKAppExpert200x in 'MCKAppExpert200x.pas';
end.

View File

@ -1,6 +1,6 @@
//------------------------------------------------------------------------------
// KOL_ASM.inc (to inlude in KOL.pas)
// v 3.141592653589
// v 3.16
function MsgBox( const S: KOLString; Flags: DWORD ): DWORD;
asm

View File

@ -2341,9 +2341,9 @@ asm
POP ECX
JC @@ret_false1
CALL ESI
XOR EAX, 1 //dufa
XOR AL, 1 //+Dufa
@@rsltEAX_ResultTrue:
MOV [EDI], EAX
MOV [EDI], AL //+VK
@@ResultTrue:
MOV AL, 1
POP EDI
@ -2360,7 +2360,7 @@ asm
PUSH [EDX].TTVDispInfo.item.hItem
CALL @@prepareCallEvent
POP ECX
//JNC @@justEventCall //dufa
//JNC @@justEventCall ---//dufa
JC @@ret_false1 //dufa
CALL ESI //dufa
JMP @@rsltEAX_ResultTrue //dufa

View File

@ -16,7 +16,7 @@ type
0: (
hwnd: HWND;
message: UINT;
wParam: WPARAM;
wParam: {$IFDEF _DXE2}Integer{$ELSE}WPARAM{$ENDIF};
lParam: LPARAM;
time: DWORD;
pt: TPoint;

View File

@ -3,7 +3,7 @@ KEY OBJECTS LIBRARY for Delphi (and Free Pascal Compiler) - to make applications
Copyright (C) by Vladimir Kladov, 1999-2010.
Some parts of code are Copyright (C) intellectual property by other people, see comments in code and on KOL site. Thanks to all for help with KOL and MCK!
v. 3.00 (3-Oct-2010)
v. 3.16 (26-Nov-2011)
To get newer version, go to Web-page http://www.kolmck.net and get there updates.

View File

@ -1,7 +1,7 @@
KEY OBJECTS LIBRARY для Delphi (и Free Pascal Compiler) - предназначен для того, чтобы сделать программы, изготовленные с использованием языка Паскаль, маленькими и очень маленькими.
Copyright (C) by Vladimir Kladov, 1999-2007. Бесплатно, с исходными текстами.
βεπρθ� 2.93 (3 θών� 2010 γ.)
βεπρθ� 3.16 (26 νξ�απ� 2011 γ.)
_________________
КРАТКОЕ ОПИСАНИЕ: