Конференция "KOL" » Версия 2.88 [Delphi, Windows, Linux, KOL/MCK]
 
  • Vladimir Kladov © (28.09.08 18:10) [0]
    Новости от 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
  • vampir_infernal (28.09.08 20:33) [1]
    большое спасибо!
  • Vladimir Kladov © (28.09.08 21:24) [2]
    Это спасибо сообществу, там все авторы изменений приведены.
  • Jon © (28.09.08 21:30) [3]
    A very big thank you to all involved!
  • L`Autour © (29.09.08 08:47) [4]
    проглядели в mirror.pas:

    21838: SL.Add( 'const ' + MI.Name + ': Integer = ' + IntToStr( MI.itemindex ) + ';' );
    надо: SL.Add( 'const ' + MI.Name + ' = ' + IntToStr( MI.itemindex ) + ';' );
  • MTsv DN (30.09.08 12:24) [5]
    > 21838: SL.Add( 'const ' + MI.Name + ': Integer = ' + IntToStr(
    > MI.itemindex ) + ';' );
    > надо: SL.Add( 'const ' + MI.Name + ' = ' + IntToStr( MI.
    > itemindex ) + ';' );

    Опять я прошелкал...
  • MTsv DN (30.09.08 12:27) [6]
    Всех, использующих visual_xp_styles.inc. В архиве kol.zip с сайта http://www.kolmck.net "лежит" предпоследняя версия, в mck.zip - последняя.
  • MTsv DN (30.09.08 12:34) [7]
    Для использующих 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...
  • azsd © (30.09.08 21:30) [8]
    KOL_asm.inc
    cHex2Int
        CMP   word ptr [EAX], 'x0'
        JZ    @@skip_2_chars
        CMP   word ptr [EAX], 'X0'
  • mdw © (02.10.08 11:35) [9]
    Установил v2.88, стабильно наблюдается клюк MCK. Заключается в том, что если оставить Delphi7 на ночь, то утром ошибка "Cannot read text from IDE, exception 0 : Out of memory". Насколько понял, выскакивает в цикле с интервалом перегенерации проекта. В предудущей версии такого не было, неделями Delphi не перезапускал.
    Никто не сталкивался с подобным?
    Кто MCK правил? Признавайтесь где перемудрили?
  • azsd © (02.10.08 12:58) [10]
    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
    =========================================
           {$IFDEF _D2009orHigher}
           PUSH     0 // TODO: sync to trunk
           {$ENDIF}
           CALL     System.@LStrFromPCharLen


    =========================================
    Previous copy
    =========================================
           {$IFDEF _D2009orHigher}
           CALL     _aLStrFromPCharLen
           {$ELSE}
           CALL     System.@LStrFromPCharLen
           {$ENDIF}


    =========================================
    I think this looks cleaner than current working copy, but It increase codesize than first one.

    in 2.88 (corrupted)
    =========================================
             {$IFDEF _D2009orHigher}
             PUSH     ECX // TODO: check to remove
             XOR      ECX, ECX
             {$ENDIF}
           CALL     System.@LStrFromPCharLen
             {$IFDEF _D2009orHigher}
             POP      ECX
             {$ENDIF}


    =========================================

    function TStrList.GetTextStr (KOL_ASM.inc 12514)
    replace

           XOR      ECX, ECX // TODO: safe?


    with

           PUSH     CP_ACP // TODO: retrieve from complier page?

  • D3 (05.10.08 15:34) [11]
    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{ in 'KOLadd.pas'};

    end.



    Тогда всё ОК.
  • azsd © (06.10.08 04:56) [12]
    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.
  • MTsv DN (06.10.08 10:51) [13]

    > KOL_asm.inc
    > cHex2Int
    >     CMP   word ptr [EAX], 'x0'
    >     JZ    @@skip_2_chars
    >     CMP   word ptr [EAX], 'X0'

    Если этот баг имеет место быть, то и в PAS-версии тоже...
  • misha_shar © (07.10.08 15:42) [14]
    В версии 2.88 изменен Font по умолчанию и этот размер довольно большой. При использовании KOLReport в PreviewForm используется кнопочная панель TB и надписи стали не влазить. При попытке изменить Font приложение начало заваливаться.
    Font пытался изменить при создании отчета, а когда не вышло то перед Report.PreviewModal
    результат тотже. Кто знает почему валится? Кстати и FitMode изменить тоже не удалось.
  • vampir_infernal (15.10.08 09:15) [15]
    Некторые багфиксы.
    KOL.PAS, метод TControl.CreateWindow.
    {$IFDEF UNICODE_CTRLS}
    var TempOleStr : PWideChar;
    {$ENDIF}
    begin
    ------
     {$IFNDEF UNICODE_CTRLS}
     StrCopy( Params.WinClsNamBuf, @ SubClassName[ 1 ] );
     {$ELSE}
     TempOleStr := StringToOleStr(SubClassName);
     lstrcpyW(Params.WinClsNamBuf, TempOleStr);
     SysFreeString( TempOleStr );
     {$ENDIF}
    ------
    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 );
    -----

  • Dimaxx © (28.10.08 02:41) [16]
    При включенной опции STREAM_COMPAT возникает ошибка из-за различных объявлений. Для исправления надо в KOL_ASM.inc заменить:

    function TStream.Write(var Buffer; {$IFNDEF STREAM_COMPAT} const {$ENDIF} Count: TStrmSize): TStrmSize;



    и

    function TStream.Seek({$IFNDEF STREAM_COMPAT} const {$ENDIF} MoveTo: TStrmMove; MoveMethod: TMoveMethod): TStrmSize;

  • mdw © (05.11.08 17:57) [17]
    KOLAdd.pas
    В
    procedure TAction.LinkMenuItem(Menu: PMenu; MenuItemIdx: integer);
    ...
     LinkCtrl(Menu, ckMenu, MenuItemIdx, UpdateMenu);
    заменить на
    LinkCtrl(Menu, ckMenu, Menu.Items[MenuItemIdx].MenuId, UpdateMenu);
    ....
    Иначе, при изменении Action, меню меняется совершенно другое...
  • Dy1 (13.11.08 11:12) [18]
    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'
    {$IFDEF UNICODE_CTRLS} WStrCopy {$ELSE} StrCopy {$ENDIF}
    ( Buffer, PKOLChar( Format( Fmt, [ ExceptObject.ClassName,
    ModuleName, ConvertedAddress, MsgPtr, '' {MsgEnd}]) ) );
    Result := {$IFDEF UNICODE_CTRLS} WStrLen {$ELSE} StrLen {$ENDIF}(Buffer);


    Такое ощущение, что StrCopy срабатывает  всегда.

    *использовал метод тыка*
    Работает, если в err.pas дублировать UNICODE_CTRLS и комментировать его, если надо анси.

    кстати к вопросу о глюках. Кто-нибудь, вышлите пожалуйста рабочий проект с тулбаром и одной кнопкой на нём на dytiger15@gmail.com . Тулбар так и вылетает (любые KOLnMCK, Delphi 7.1 Enterprise)

    ещё просьба: исправить функцию Int2Hex, чтобы возвращала KOLString вместо AnsiString (нужна асм-версия). Вообще нужно переписать много функций типа int2_
  • Dimaxx © (14.11.08 13:29) [19]

    > При включенной опции STREAM_COMPAT возникает ошибка из-за
    > различных объявлений. Для исправления надо в KOL_ASM.inc
    > заменить:

    Ошибся! Везде надо заменить, а не только в приведенных функциях.

    Кстати, со STREAM_COMPAT стало неудобно работать с KOLZLib - компилятор ругается в нем на что попало.
  • Vladimir Kladov © (15.11.08 19:27) [20]
    STREAM_COMPATible - только для старых проектов, соответственно, KOLZlib тоже должен быть старый. (А вот старую версию как-то не сохранил. Можно порыться где-нибудь, но что-то сомневаюсь: старые версии я упаковывал по датам для каждого изменения только для самого KOL/MCK, а не для компонентов).
  • Dimaxx © (16.11.08 22:06) [21]
    Старый KOLZlib лежит http://kolmck.net/Components/compress/KOLZLib.zip. Я под новые правила переделал себе.
  • Barloggg (24.11.08 09:26) [22]
    заметил что Дельфи начал притормаживать.
    после трехдевного шаманства выявилось что похоже теперь inc файлы для формы пересоздаются непрерывно, а не только тогда, когда что-то меняется на форме.
    а форма у меня здоровенная, уже за полтыщи контролов накопилось.
    изменил интервал автопеределки на одну секунду - тормозить перестало.
    любопытно в общем.
  • iPharaon (24.11.08 15:18) [23]
    Здравствуйте. Тут небольшая проблема... Есть необходимость поставить KOLWebBrowser. ActiveKOL установилось нормально, но при попытке установить KOLWebBrowser на 594 строке файла KOLSHDocVw вылетает ошибка на этой строке "TWebBrowser_V1 = object(TOleCtl)", пишет следующее: [DCC Error] KOLSHDocVw.pas(594): E2003 Undeclared identifier: 'TOleCtl'. Объясните, в чём модет быть проблема?
    P.S. Delphi 2007
  • MTsv DN (24.11.08 15:34) [24]
    В uses добавьте ActiveKOL. TOleCtl объявлен в нем...
  • iPharaon (24.11.08 16:01) [25]
    В том то и дело, что всё добавлено. При клике с ctrl на TOleCtl происходит переход в файл ActiveKOL на строку "TOleCtl = object( TControl )". Так что проблема не в этом.
  • Vladimir Kladov © (24.11.08 16:26) [26]
    за полтыщи контролов

    Посмотрите в сторону фреймов, хорошо помогают как раз в этом случае.
  • mdw © (27.11.08 18:31) [27]
    Вот еще на баг наткнулся. Касается меню. Проявляется например так:
    ..
       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;
    ...
  • Dimaxx © (23.01.09 18:02) [28]
    Шрифт глючит. В Д7 независимо от выставленных значений шрифт остается дефолтным. Не помогает ни выставление ручками в проекте DefaultFont нужного шрифта, ни отключение FontDefault, ни принудительное выставление шрифта у контрола. Причем как в старых, так и во вновь созданных. В редакторе работает, а в запущенном приложении шрифт дефолтный.
  • Dimaxx © (23.01.09 18:09) [29]
    Также невозможно изменить цвет шрифта, например, у кнопки. Дико неудобно. В DefaultFont выставляется цвет, у формы в шрифте тоже, а у кнопки, например, сменить нельзя. Что за бред? Но даже если в проекте цвет меняется и отображается - у приложения все равно фонт и цвет дефолтные.
  • wql (27.01.09 10:29) [30]
    У меня со шрифтом постоянно проблемы были.
    И сейчас тоже. Там какие то танцы с бубном помогают.
  • Mitka (29.01.09 12:12) [31]
    Устанавливаю KOL+MCK 2.88. Распаковал в отдельный каталог. Компилю, ошибка:
    [Fatal Error] mirror.pas(61): File not found: 'KOLadd.dcu'
    Где его взять?
  • Дмитрий К © (29.01.09 12:37) [32]
  • Mitka (29.01.09 12:45) [33]
    Дмитрий К
    Спасибо, удалось!
  • admroot © (13.10.10 07:57) [34]

    > Спасибо, удалось!

    Расскажи как у меня все равно File not found: 'KOLadd.dcu'
  • admroot © (13.10.10 08:48) [35]
    установилась вроде, теперь mirror.dcu не может найти при компиляции
  • Danger © (14.10.10 22:21) [36]
    admroot, пропишите уже в настройках директорий свой "отдельный каталог"
 
Конференция "KOL" » Версия 2.88 [Delphi, Windows, Linux, KOL/MCK]
Есть новые Нет новых   [118991   +118][b:0][p:0.003]