-
Новости от 28 сентября 2008 (KOL & MCK v2.88)
[*] Шрифт по умолчанию изменен на System (для случая UNICODE_CTRLS - Tahoma). В MCK добавлены свойства TKOLProject.DefaultFont, TKOLForm.FontDefault, более аккуратно выполняется контроль того, когда генерировать код для создания шрифтов.
[+]App MCKAppExpert200x.pas (визард для удобного создания проекта KOLMCK в Delphi 7, 2005-2009). Автор: D[u]fa
[+] D200x Поддержка Delphi 2009 в KOL. Автор: azsd (возврат совместимости с версиями <= D7). Улучшен код генерации МСК для 200х версий. Автор: D[u]fa
[+] UNI Поддержка Unicode для MCK в Delphi 2009. Автор: MTsv DN
[+]UNI Процедура Put для TWStrList, процедуры:_aLStrFromPCharLen,_aLStrFromPChar, RemoveWStr. Автор: azsd
[+]UNI Процедура WTextArea для Canvas. Автор: MTsv DN
[-]UNI Исправлены ошибки при подключенной UNICODE_CTRLS: CrackStack_MapInResource, CrackStack_MapInFile, ToRadix,InsertSeparators, IndexOfChar. Исправлена отрисовка Unicode символов в процедуре WndProcBitBtn, WndProcLabelEffect, TTrayIcon.SetTrayIcon. Исправлено обрезание пополам тултипа при UNICODE_CTRLS. Автор: MTsv DN
[-] Изменен код TBitmap.SetHeight. Автор: MTsv DN (прежний код, без восстановления формата DIB работает в случае SMALLER_CODE или SMALLEST_CODE).
[-]UNI Исправлены: метод TGraphicTool.SetFontName использование функции (W)StrLCopy, функция StrIsStartingFrom (для случая, когда либо строка, либо шаблон равен nil), функция WStrLoadFromFile (в unicode-варианте использовался вызов ANSI функции File2Str), метод TControl.TBSetTooltips для unicode. Автор: azsd.
[-] Исправлена функция Color2RGB (ASM-версия). Автор: Hallif
[-] Исправления TLIST_FAST. Авторы: Vladimir Kladov и mdw.
[-] Исправления в richedit (некорректная работа в случае с raWord). Автор: =BuckLr=
[-] Исправлена работа с файлами UTF-8 с BOM в TWStrList. Автор: azsd
-
большое спасибо!
-
Это спасибо сообществу, там все авторы изменений приведены.
-
A very big thank you to all involved!
-
проглядели в mirror.pas:
21838: SL.Add( 'const ' + MI.Name + ': Integer = ' + IntToStr( MI.itemindex ) + ';' ); надо: SL.Add( 'const ' + MI.Name + ' = ' + IntToStr( MI.itemindex ) + ';' );
-
> 21838: SL.Add( 'const ' + MI.Name + ': Integer = ' + IntToStr( > MI.itemindex ) + ';' ); > надо: SL.Add( 'const ' + MI.Name + ' = ' + IntToStr( MI. > itemindex ) + ';' ); Опять я прошелкал...
-
Всех, использующих visual_xp_styles.inc. В архиве kol.zip с сайта http://www.kolmck.net "лежит" предпоследняя версия, в mck.zip - последняя.
-
Для использующих D2009: Файл: mirror.pas Строки: 23158-23162 ********************************* {$IFDEF _D2009orHigher} C2 := ''; for j := 1 to Length(U) do C2 := C2 + '#'+int2str(ord(U[j])); U := C2; {$ENDIF} ********************************* Заменить на: ********************************* if U <> '' then begin C2 := ''; for j := 1 to Length(U) do C2 := C2 + '#'+int2str(ord(U[j])); U := C2; end else U := ''' '''; ********************************* Иначе будет косяк с созданием меню, если Item не имеет Caption...
-
KOL_asm.inc cHex2Int CMP word ptr [EAX], 'x0' JZ @@skip_2_chars CMP word ptr [EAX], 'X0'
-
Установил v2.88, стабильно наблюдается клюк MCK. Заключается в том, что если оставить Delphi7 на ночь, то утром ошибка "Cannot read text from IDE, exception 0 : Out of memory". Насколько понял, выскакивает в цикле с интервалом перегенерации проекта. В предудущей версии такого не было, неделями Delphi не перезапускал. Никто не сталкивался с подобным? Кто MCK правил? Признавайтесь где перемудрили?
-
I'm sorry for miss some code of LStrFromPCharLen in r6 archive and it merged to current 2.88 release. function File2Str (KOL_asm.inc 3744~3751) Working copy =========================================
PUSH 0
CALL System.@LStrFromPCharLen ========================================= Previous copy =========================================
CALL _aLStrFromPCharLen
CALL System.@LStrFromPCharLen
========================================= I think this looks cleaner than current working copy, but It increase codesize than first one. in 2.88 (corrupted) =========================================
PUSH ECX XOR ECX, ECX
CALL System.@LStrFromPCharLen
POP ECX
========================================= function TStrList.GetTextStr (KOL_ASM.inc 12514) replace
XOR ECX, ECX
with
PUSH CP_ACP
-
Delphi 3 ругается при установке MCK на эту часть файла MirrorKOLPackageD3.dpk:
contains
mirror,
Kol,
mckCtrls,
mckObjs,
mckCtrlDraw,
mckActionListEditor,
mckLVColumnsEditor,
mckToolbarEditor,
mckAccEditor,
mckMenuEditor,
mckFileFilterEditor,
KOLadd in 'KOLadd.pas';
end.
Я закомментировал { in 'KOLadd.pas'} и добавил файлы из KOLadd.zip:
contains
mirror,
Kol,
mckCtrls,
mckObjs,
mckCtrlDraw,
mckActionListEditor,
mckLVColumnsEditor,
mckToolbarEditor,
mckAccEditor,
mckMenuEditor,
mckFileFilterEditor,
KOLadd;
end.
Тогда всё ОК.
-
you can just remove entire line of KOLAdd import. the "koladd import directly in to package" warning doesn't triggered in D3. recently I got an copy of Delphi 3 for test Unicode MCK compatible, It seems Delphi 3 have terrible problem in literal WideString compilation. ANSI based Unicode constant string in code have different problem in D7, D2007, D2009, I use different 'stable' workaround for ansibased_unicode_inc switch. but in Delphi 3, I can not store an wide string rightly by dcc32. for an example, #1111#2222 characters in D3 if 1111 gather than ANSI range (Chinese/Russian/Japanese/Korean), I adjust all expressions in my knowledge, but only first non ASCII element can kept. I restored UNICODE_CTRLS compatible for D3 based on 2.88, but I can only read Unicode for label captions from other data source other than written it in code. what a shamed... I consider to write an dcu generator, and offer symbol definition / control caption string storage for each form, or just drop Unicode MCK support of D3.
-
> KOL_asm.inc > cHex2Int > CMP word ptr [EAX], 'x0' > JZ @@skip_2_chars > CMP word ptr [EAX], 'X0'
Если этот баг имеет место быть, то и в PAS-версии тоже...
-
В версии 2.88 изменен Font по умолчанию и этот размер довольно большой. При использовании KOLReport в PreviewForm используется кнопочная панель TB и надписи стали не влазить. При попытке изменить Font приложение начало заваливаться. Font пытался изменить при создании отчета, а когда не вышло то перед Report.PreviewModal результат тотже. Кто знает почему валится? Кстати и FitMode изменить тоже не удалось.
-
Некторые багфиксы. KOL.PAS, метод TControl.CreateWindow.
var TempOleStr : PWideChar;
begin
------
StrCopy( Params.WinClsNamBuf, @ SubClassName[ 1 ] );
TempOleStr := StringToOleStr(SubClassName);
lstrcpyW(Params.WinClsNamBuf, TempOleStr);
SysFreeString( TempOleStr );
------
end; visual_xp_styles.inc, функция WndXPMessage. Во всей функции строки вида Sender.OnPaint(Sender, GetWindowDC(Msg.hWnd)); нужно исправить по принципу var dDC : HDC;
-----
dDC := GetWindowDC(Msg.hWnd);
Sender.OnPaint(Sender, dDC);
ReleaseDC( Msg.hWnd, dDC );
-----
-
При включенной опции STREAM_COMPAT возникает ошибка из-за различных объявлений. Для исправления надо в KOL_ASM.inc заменить: function TStream.Write(var Buffer; const Count: TStrmSize): TStrmSize; и function TStream.Seek( const MoveTo: TStrmMove; MoveMethod: TMoveMethod): TStrmSize;
-
KOLAdd.pas В procedure TAction.LinkMenuItem(Menu: PMenu; MenuItemIdx: integer); ... LinkCtrl(Menu, ckMenu, MenuItemIdx, UpdateMenu); заменить на LinkCtrl(Menu, ckMenu, Menu.Items[MenuItemIdx].MenuId, UpdateMenu); .... Иначе, при изменении Action, меню меняется совершенно другое...
-
UNICODE_CTRLS в файле EXTERNAL_DEFINES.INC [Error] ERR.pas(539): Incompatible types: 'WideChar' and 'Char' [Error] ERR.pas(540): Incompatible types: 'WideChar' and 'Char' [Error] ERR.pas(541): Incompatible types: 'WideChar' and 'Char' [Fatal Error] KolZLibBzip.pas(34): Could not compile used unit 'ERR.pas' WStrCopy StrCopy
( Buffer, PKOLChar( Format( Fmt, [ ExceptObject.ClassName,
ModuleName, ConvertedAddress, MsgPtr, '' ]) ) );
Result := WStrLen StrLen (Buffer); Такое ощущение, что StrCopy срабатывает всегда. *использовал метод тыка* Работает, если в err.pas дублировать UNICODE_CTRLS и комментировать его, если надо анси. кстати к вопросу о глюках. Кто-нибудь, вышлите пожалуйста рабочий проект с тулбаром и одной кнопкой на нём на dytiger15@gmail.com . Тулбар так и вылетает (любые KOLnMCK, Delphi 7.1 Enterprise) ещё просьба: исправить функцию Int2Hex, чтобы возвращала KOLString вместо AnsiString (нужна асм-версия). Вообще нужно переписать много функций типа int2_
-
> При включенной опции STREAM_COMPAT возникает ошибка из-за > различных объявлений. Для исправления надо в KOL_ASM.inc > заменить:
Ошибся! Везде надо заменить, а не только в приведенных функциях.
Кстати, со STREAM_COMPAT стало неудобно работать с KOLZLib - компилятор ругается в нем на что попало.
|