-
Новости от 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 - компилятор ругается в нем на что попало.
-
STREAM_COMPATible - только для старых проектов, соответственно, KOLZlib тоже должен быть старый. (А вот старую версию как-то не сохранил. Можно порыться где-нибудь, но что-то сомневаюсь: старые версии я упаковывал по датам для каждого изменения только для самого KOL/MCK, а не для компонентов).
-
-
заметил что Дельфи начал притормаживать. после трехдевного шаманства выявилось что похоже теперь inc файлы для формы пересоздаются непрерывно, а не только тогда, когда что-то меняется на форме. а форма у меня здоровенная, уже за полтыщи контролов накопилось. изменил интервал автопеределки на одну секунду - тормозить перестало. любопытно в общем.
-
Здравствуйте. Тут небольшая проблема... Есть необходимость поставить KOLWebBrowser. ActiveKOL установилось нормально, но при попытке установить KOLWebBrowser на 594 строке файла KOLSHDocVw вылетает ошибка на этой строке "TWebBrowser_V1 = object(TOleCtl)", пишет следующее: [DCC Error] KOLSHDocVw.pas(594): E2003 Undeclared identifier: 'TOleCtl'. Объясните, в чём модет быть проблема? P.S. Delphi 2007
-
В uses добавьте ActiveKOL. TOleCtl объявлен в нем...
-
В том то и дело, что всё добавлено. При клике с ctrl на TOleCtl происходит переход в файл ActiveKOL на строку "TOleCtl = object( TControl )". Так что проблема не в этом.
-
за полтыщи контролов
Посмотрите в сторону фреймов, хорошо помогают как раз в этом случае.
-
Вот еще на баг наткнулся. Касается меню. Проявляется например так: .. Menu:= NewMenu(Form, 0, [], nil); Menu.Free; Menu:= NewMenu(Form, 0, [], nil); Menu.Free; //здесь валится ... У меня на в помеченном месте валится с ошибкой 215. Поковырял, но не очень догнал всей логики, автору попроще будет разобраться. При создании меню есть присваение : M.fNextMenu := Result;. А в деструкторе: ... Next := fNextMenu; ... Next.Free;
Если Next = @Self то получается рекурсия... Поправил так: ... if Next <> @Self then Next.Free; inherited; ...
-
Шрифт глючит. В Д7 независимо от выставленных значений шрифт остается дефолтным. Не помогает ни выставление ручками в проекте DefaultFont нужного шрифта, ни отключение FontDefault, ни принудительное выставление шрифта у контрола. Причем как в старых, так и во вновь созданных. В редакторе работает, а в запущенном приложении шрифт дефолтный.
-
Также невозможно изменить цвет шрифта, например, у кнопки. Дико неудобно. В DefaultFont выставляется цвет, у формы в шрифте тоже, а у кнопки, например, сменить нельзя. Что за бред? Но даже если в проекте цвет меняется и отображается - у приложения все равно фонт и цвет дефолтные.
-
У меня со шрифтом постоянно проблемы были. И сейчас тоже. Там какие то танцы с бубном помогают.
-
Устанавливаю KOL+MCK 2.88. Распаковал в отдельный каталог. Компилю, ошибка: [Fatal Error] mirror.pas(61): File not found: 'KOLadd.dcu' Где его взять?
-
-
Дмитрий К Спасибо, удалось!
-
> Спасибо, удалось!
Расскажи как у меня все равно File not found: 'KOLadd.dcu'
-
установилась вроде, теперь mirror.dcu не может найти при компиляции
-
admroot, пропишите уже в настройках директорий свой "отдельный каталог"
|