News from 21-Jun-2007 (KOL & MCK v2.69)
[+] Conditional symbol EXTERNAL_DEFINES added. If it is set, most of options can be placed in a file, included in KOL.pas and KOLadd.pas in such case.
rich edit: RE_FmtBackColor and RE_FmtUnderlineStyle properties are fixed for UNICODE_CTRLS.
[+] Functions OffsetPoint, OffsetSmallPoint, Point2SmallPoint, SmallPoint2Point added.
[+] With a new conditional symbol STOPTIMER_AFTER_APPLETTERMINATED, timer always stopped after assigning true to AppletTerminated variable.
[-] DirDlgEx: buttons height fixed for normal case  (w/o ToGRush).


News from 18-Jun-2007 (KOL & MCK v2.68)
[*] TIcon: with a new symbol ICONLOAD_PRESERVEBMPS methods LoadFromStream, LoadFromFile etc. provide ImgBmp and MskBmp : nd if Only_bmp property set, loading methods do not construct icon object (Handle = 0).
[-] TBitmap: Convert2Mask (asm-version) fixed for case pf32bit. Reserved byte now always set to 0 before comparing pixel value with the transparent color.
[-] MCK: TKOLToolbar.tooltips property fixed for setting it at design-time.


News from 14-Jun-2007 (KOL & MCK v2.67)
[-] RichEdit: reading SelLength fixed (0 was returning always). This error was also affecting many other RE_Fmt... properties.
Note: this is a fresh error, from two previous releases (see TControl.GetItemSelected, TControl.GetSelStart).
[-] Memo, RichEdit: Item2Pos fixed for line index >= Count. This error was also affecting DeleteLines for the last line, setting Items[ ] property for the last item etc.
[*] RichEdit: SetErrorMode is used to prevent system error messages while searching RichEdit dll.
[-] RichEdit: TControl.RE_Transparent property now completely removed when set to false at run-time.
Note: as a finish of a fix in the previous release (see TControl.RESetTransparent in 2.66).
[-] TBitmap.StretchDrawMasked, DrawTransparent etc. fixed now for pf4bit and pf8bit image formats (but a conditional symbol FIX_TRANSPBMPPALETTE should be added to a project options, still it requires some additional code).
[-] TBitmap.Convert2Mask fixed for pf4bit, pf8bit formats.
[*] Small economy in constans section for removed extentions of dll names (string constants like 'kernel32.dll' => 'kernel32' etc.)
[-] DirDialogEx: fixed for case when ToGRush used (recanning of directories was not started automatically, and dialog was appearing empty).


News from 9-Jun-2007 (KOL & MCK v2.66)
[-] NEW_ALIGN control's aligning on the parent fixed (Border was used from the control itself instead of parent's Border).
For TKOLListBox , generating code fixed for loHScroll option.
[+] TStream.WriteVal method added.
[-] TControl.GetItemSelected fixed (asm-version), for combo-box.
1. TControl.TC_IndexOf, TC_SearchFor fixed for UNICODE_CTRLS (String -> KOLString).
2. IsNetworkPath, ForceDirectories, CreateDir fixed (String -> KOLString).
3. RE_Font property reading and writing fixed for Unicode.
[-] TIniFile.ValueString fixed for FPC (worked incorrectly if the value did not exist). By MTsvDN.
[-] Changing LVOptions at run-time fixed (option lvoOwnerDrawFixed could not be removed at run-time).
[-] TWStrList.Insert and TWStrList.IndexOf are fixed by Misha Sharymov a.k.a. kreit.
[-] TControl.RESetTransparent fixed for case when it is called at run-time both for setting and resetting RE_Transparent property.


News from 3-Jun-2007 (KOL & MCK v2.65)
[-] Compatibility with Delphi2 / Delphi3 restored (MCK).
[-] TControl.RESetOverwrite fixed (value did not set unless reading was made earlier).
[-] TObj.Destroy fixed (asm-version) for case of USE_NAMES (did not compile).
[-] TControl.GetSelStart fixed (asm-version).


News from 2-Jun-2007 (KOL & MCK v2.64)
[*] Option NEW_ALIGN (conditional symbol) is set as default except OLD_ALIGN is defined.
[*] Method TObj.Free is replaced with a property Free, which is just calling TObj.RefDec; method RefDec checks now for a condition @Self <> nil before executing. This change can be not fully compatible with all the Pascal compilers, so a conditional symbol OLD_FREE added, allowing to return this to a previous state.
[*] TStream.SetCapacity changed and allows now decreasing Capacity. This takes more code (a bit), so a conditional symbol OLD_STREAM_CAPACITY added to return the behaviour to a previous state.
1. For a property TControl.Selection, parameter of type String replaced with KOLString to work normally with UNICODE_CTRLS.
2. For a method TC_InsertControl, also String is replaced with KOLString.
3. Property RE_Text fixed for Unicode controls (both reading and writing the values).
[*] Properties TControl.SelLength (the same as LVItemCount), ItemSelected fixed for case of memo containing more than 32767 characters length. Correspondent methods are changed. There is a doubting point in it: while checking ItemSeleted for a combobox, a function uses "incorrect" value 2 in place of 0, and this works OK in XP, though in the API SDK it is written that 0 must be there. If you have another version of Windows, there such method does not work properly, please report me about this.
[+] Function WinVer changed to allow detecting Windows Server 2003. A constant wvServer2003 added to an enumerated type TWindowsVersion (between wvXP and wvVista).
[*] Function DirectoryExists changed a bit: now SetErrorMode is called to prevent system message dialog about inserting absent removable disk (CD/DVD, floppy, Zip-drive etc.) while the function is executing. At the end, previous state of error reporting mode is restored.
The same way, function DiskPresent changed (to restore error reporting mode: SetErrorMode was used earlier there).
[*] Property TStrListEx.ObjectCount added to get know actual amount of Objects stored. Unlike in VCL, in KOL's TStrListEx Objects are stored separately and it is possible that ObjectCount can be greater than Count, this does contradict to nothing since strings list is supposed as infinitive (Items at indeces greater then Count-1 just return empty string).
[-] Method TCanvas.TextExtent (and calling it methods TextWidth and TextHeight) finally fixed. For a long time it was working incorrectly on TBitmap.Canvas destroying Canvas' handle. Now this is fixed and it is possible to use TextWidth / TextHeight without special black art about it.
[+] ToGRush updated: function OwnerDrawMenuItem added, which can be easily used to provide owner-drawn menu in a GRush-like colored style (no gradients used though).
For TKOLMenu and TKOLPupupMenu mirrors, property OwnerDraw added, which allows to set or reset OwnerDraw property for all its subitems recursively with a single double click in the Object Inspector.


News from 26-May-2007 (KOL & MCK v2.63)
[*] TFontQuality: style fqClearType added.
A conditional definition symbol AUTO_REPLACE_CLEARTYPE available: with it, fqClearType automatically is replaced with fqAntialiased when the application is running under elder Windows then XP.
MCK: property FontQuality now available for editing in the Object Inspector, and used in font comparison inner procedure as well.
Some fixes for Unicode:
1. ImageList_LoadImage declaration, using it in TImageList.LoadFromFile;
2. DiskFreeSpace - using POSVersionInfo type;
3. DrawFormattedText - call of Windows.DrawText;
4. TControl.GetIcon asm-version fixed: an application icon didn't appear in Unicode apps.
[+] Several functions added IfThenElse (overloaded), IfThenElseStr, IfThenElseInt, IfThenElseBool, Int2PChar, DiskPresent, ExtractFileDrive, IsNetworkPath.
Function String2PascalStrExpr changed: all characters from #$7F to #$FF are represented as '#'-ed numbers rather then characters (this fixes problems with recognizing such characters by the Delphi).
[*] If a conditional symbol USE_GRUSH is defined in project options, KOL.pas uses ToGRush itself (in the implementation part), to provide redirection of all MessageBox calls from KOL itself.
ToGRush updated: MessageBox redirection fixed for asm-version of code (stdcall declaration was missed).
[-] TWStrList.SetItems method fixed by kreit.
[-] WndProcSpeedButton function fixed by Don: LikeSpeedButton now really returns focus to a previously focused control.


News from 18-May-2007 (KOL & MCK v2.62)
ASM calling Shell_NotifyIconA, GetOpenFileNameA, GetSaveFileNameA fixed (it seems that the incorrect file version 2.60 was packed, and yesterday's changes with TBitmap.Convert2Mask
A problem fixed with moving up form's child controls having AnchorBottom = true while loading MCK project or changing main menu at design time.
LVAdd changed (String -> KOLString).
[*] KOLDirDlgEx fixed for drawing tree view in NT4 when GRush-styled (using ToGRush).
Changes in ToGRush: redirection added for NewGradientPanel and NewGradientPanelEx to a GRushPanel, supporting most of filling styles (except rhombic, elliptic and rectangular) but GRush controls are filled in smoother for case when the desktop is in 64K colors mode.


News from 17-May-2007 (KOL & MCK v2.61)
[+] Function added: ExePath.
[*] Several functions translated to assembler: ShowMsg, IncludeTrailingChar, ExtractFileNameWOExt, ReplaceExt, GetTempDir, CreateTempFile.
Some fixes for UNICODE_CTRLS:
- GetStartDir (size of buffer to read string);
- constructions like {$IFDEF UNICODE_CTRLS} MessageBoxW {$ELSE} MessageBoxA {$ENDIF} ( ... eliminated where it is possible (since such functions are redefined
[-] Function RegKeyGetSubkeys fixed (the last character of each subkey name was truncated).
[-] TMenu.Destroy fixed by Galkov.
[-] TTimer.SetEnabled (Pascal version) fixed to behave exactly as the asm-version (timer not set if Applet yet or already is nil, for a case when TIMER_APPLETWND defined).
[-] TBitmap.GetHandle: call of fDetachCanvas added. When the Handle is requested to call some API functions and to pass bitmap's handle there, in such case it must not be attached to any memory DC, otherwise function can fail. This call fixes this problem.
[-] TBitmap.LoadFromStreamEx fixed for RLE4 and RLE8 packed bitmaps: DIB memory was not initialized (excuse me but the same bug seems to be in XP's standard Previewer :) ). Therefore memory initialization for faster working with big bitmaps is requested only for RLE-packed images.
TBitmap.Convert2Mask fixed for pf24bit and pf32bit. Together with a small change in KOLGRushControls, this fixes finally transparency for GrushCheckbox and GrushRadiobox when the desktop is set to 64K colours.
[-] TBitmap.CopyToClipboard: previous fix for pf24bit format abandoned (only fix for pf32 bit was necessary, though for pf24bit this fix not necessary at all and even prevents them from normal working).
[*] Changes in KOLadd.ShowQuestionEx:
1. unless a symbol NO_CHECK_STAYONTOP defined, active form is checked for StayOnTop and if it is set, the question form appeared also with StayOnTop=true;
2. unless a symbol NOT_ALLOW_EXTRACT_TITLE defined, a title for a dialog is extracted from the message when it is starting from '!titlestring!' charactters;
Changes made in MCK: RemoveSpaces used to check MCK signature (to eliminate difference with lines changed by auto-formatting tools).
Changes in Lnk.pas:
1. Function FileTypeReg2Ex added, which creates and returns a string with information about all made changes in the registry. And a procedure FileTypeUnreg added which can undo these operations (pass a result of FileTypeReg2Ex to it as a parameter);
2. Function GetSystemFolder changed to include trailing path delimiter on return always.
Changes in ToGRush.pas:
1. Unless a symbol TOGRUSH_NO_MESSAGEBOX defined, all the calls to MessageBox and based on it (MsgBox, ShowMessage, ShowMsg) are redirected to ShowQuestionEx (already using ToGRush if USE_GRUSH defined), so these are looking more application-themed;
2. Unless a symbol TOGRUSH_NO_SCROLLBARS defined, background for a scrollbar control changed (but not for embedded scrollbars of some scrollable windows).


News from 9-May-2007 (KOL & MCK v2.60)
1. TBitmap.LoadFromStreamEx fixed for some old bitmaps 16bpp.
2. TBitmap.CopyToClipboard fixed for some old applications (like Photoshop 3.0) not supporting BI_RGB compression.
3. TIcon.LoadFromStream fixed for very large icons (such as 1024x1024)


Previous news (versions 2.50-2.59)
Previous news pages

Copyright (C) 1999-2007 by Vladimir Kladov