Конференция "KOL" » Версия 2.86 [Delphi, Windows]
 
  • Vladimir Kladov © (19.01.08 17:00) [0]
    Новости от 19-Jan-2007 (KOL & MCK v2.86)

    [*] KOL: символ условной компиляции TOOLBAR_FORCE_CHILDALIGN больше не
    действует  для  Win98  т.к. может там приводит к краху приложения. При
    создании  совместимых  с  Win9x  приложений,  избегайте  размещения на
    инструментальной линейке выравниваемых дочерних контролов.

    [+]  Добавлены  метод  TWStrList.Last  и  функция  WCharIn.  В  методе
    TWStrList.MergeFromStream,  обеспечивается  удаление  ведущего символа
    $FEFF    при    загрузке   текста   Unicode   из   файла.   В   методе
    TWStrList.SetText, обеспечивается терминирующий символ 0.

    [*]  UNICODE_CTRLS:  может  теперь комбинироваться с символом USE_PROP
    (константы ID_SELF и ID_PREVPROC объявлены как KOLString).

    [-] Для UNICODE_CTRLS, исправлено свойство TOpenDirDialog.InitialPath.

    [+]   Добавлены   функции:  Scrollbar_GetMinPos,  Scrollbar_SetMinPos,
    Scrollbar_SetAll,       Scrollbar_GetMaxPos,      Scrollbar_SetMaxPos,
    Scrollbar_GetCurPos,     Scrollbar_SetCurPos,     Scrollbar_SetPageSz,
    Scrollbar_GetPageSz,  Scrollbar_SetLineSz,  Scrollbar_GetLineSz  - для
    использования вместе с модулем ToGRush в дуальном коде.

    [*] IndexOfChar, IndexOfStr изменены и понимают #0 как обычный символ,
    не обязательно завершающий строку.

    [-] MCK: при генерации кода для установки нестандартного цвета (Color)
    добавлено  приведение  типа  для  предотвращения выдачи предупреждения
    компилятором.

    [-]   Дл  случаев,  когда  CanResize  =  false  или  запрещены  иконки
    минимизации   и/или  максимизации  формы,  так  же  окну  отправляется
    сообщение   WM_INITMENU,   что   обеспечивает   корректное  запрещение
    соответствующих пунктов системного меню.

    [+]  Свойство  LikeSpeedButton  обеспечено  для  зеркальных  контролов
    TKOLCheckBox,  TKOLRadioBox, и теперь может быть обеспечено для любого
    потомка  TKOLCustomControl  простым  перечислением  свойства  в списке
    публикуемых.

    [*] Обновлены компоненты TKOLGif, TKOLPng.
  • =BuckLr= © (19.01.08 18:01) [1]
    Хорошее обновление. Спасибо
  • Compiler © (19.01.08 19:08) [2]
    Исправьте, пожалуйста, Parse(). При Separators равном одному символу все работает, а при двухсимвольном (напр #13#10) разделителе глючит. Необходимо заменить
    Delete( S, 1, Pos )

    на
    Delete( S, 1, Pos+Length(Separators)-1 )

    . Посмотрите, может меня глючит?. Версия KOL 2.83.
  • Jon © (19.01.08 19:36) [3]

    > [-]  Дл  случаев,  когда  CanResize  =  false  или  запрещены
    > иконки минимизации   и/или  максимизации  формы,  так  же  
    > окну  отправляется сообщение   WM_INITMENU,   что  
    > обеспечивает   корректное  запрещение соответствующих пунктов
    > системного меню.



    > [-] For cases when CanResize is false or minimize or maximize
    > icon are disabled, also a code is generated which sends
    > WM_INITMENU to a form window handle at startup. This provides
    > correct disabling of correspondent system menu items as
    > well.


    Sorry - still does not work. I still have to add WM_INITMENU to disable maximize menu item:


    CanResize := False;
    Perform(WM_INITMENU,0,0);



    Problem only on first click of form system menu. Click on task bar icon is ok.
  • Vladimir Kladov © (19.01.08 20:01) [4]
    В Parse нет многоимвольных сепараторов. Это просто множество символов, из которых первый найденный считается разделителем.
  • Vladimir Kladov © (19.01.08 20:04) [5]
    System menu:
    For me it works. Check please if WM_INITMENU performed in _1.inc file.
  • Jon © (19.01.08 20:45) [6]

    > System menu:
    > For me it works. Check please if WM_INITMENU performed in _1.inc file.


    I do not use MCK. With this simlpe KOL test, restore and maximize are incorrect.

    program test;

    uses
     Windows, Messages, KOL;

    begin
     Applet := NewForm(nil,'Test');
     Applet.CanResize := False;
    //  Applet.Style := Applet.Style and not WS_MAXIMIZEBOX;    //remove to fix
    //  Applet.Perform(WM_INITMENU,0,0);                                //remove to fix
     Run(Applet);
    end.

  • Vladimir Kladov © (19.01.08 21:20) [7]
    Without MCK, it must be called since several different reasons are there in several possible combinations. In MCK, just Perform(WM_INITMENU,... generated and run.
  • MTsv DN (19.01.08 21:35) [8]
    В начале этого года была плановая смена пароля на сервере www.kolnmck.ru... С хозяином сайта Гэндальфом связаться не могу...надеюсь что пока... Т.ч. обновления пока не ожидается :(
  • Compiler © (19.01.08 22:34) [9]
    > Vladimir Kladov ©   (19.01.08 20:01) [4]
    > первый найденный считается разделителем.

    И удаляется только он один, а остальные остаются.
    Пример:
    const
     br=#13#10;
    var
     s:string;
    begin
    s:='Один'+br+'Два'+br+'Три';
    Showmessage(parse(s,br));//Должно быть Один, возвращается Один
    Showmessage(parse(s,br));//Должно быть Два , возвращается пустота
    Showmessage(parse(s,br));//Должно быть Три , возвращается Два
    end;

  • Elec3C © (20.01.08 00:18) [10]

    > WM_INITMENU

    За это спасибо.
  • Vladimir Kladov © (20.01.08 09:41) [11]
    И удаляется только он один, а остальные остаются.


    Так и должно быть. Для многосимвольных разделитей напишите свой parse.
  • D[u]fa (20.01.08 12:37) [12]
    Новости от 19-Jan-2007 (KOL & MCK v2.86)

    =)
  • Jon © (25.01.08 19:29) [13]
    In KOL.PAS line 33228:

        fDefWndProc := {$ifdef FPC21}@{$endif}Params.WindowClass.lpfnWndProc;



    Is FCP21 correct? I think it should be {$ifdef FPC}
  • _vadim (28.01.08 09:47) [14]
    Если кому интересно.
    Версия 2.86 нормально компилируется в FreePascal вот с такой доработкой:
    1. В файле koldef.inc:
    - перед строчками

    {$IFDEF FPC}
    {------------------------------------
    by Thaddy de Koning:


    поставить

    {$DEFINE FPC}
    {$DEFINE VER2}


    (Рекомендую работать именно с FreePascal версии 2)
    В результате получается:

    {$DEFINE FPC}
    {$DEFINE VER2}
    {$IFDEF FPC}
    {------------------------------------
    by Thaddy de Koning:


    2. В файле kol.pas, в той строчке, которую указал Jon:

    fDefWndProc := {$ifdef FPC21}@{$endif}Params.WindowClass.lpfnWndProc;


    изменить {$ifdef FPC21} на {$ifdef FPC}:

    fDefWndProc := {$ifdef FPC}@{$endif}Params.WindowClass.lpfnWndProc;


    Теперь у меня компилируется без ошибок.
    Но с кучей варнингов... :)
    Компилятор FPC 2.2.0.
  • Vladimir Kladov © (28.01.08 15:19) [15]
    Символы условной компиляции для того и придуманы, чтобы их можно было задавать не модифицируя исходный файл. В опциях проекта, например, или в командной строке компилятора. FPC21 отличается от FPC из-за бага в FPC2.0, который был исправлен в 2.1. Соответственно, надо ставить оба символа в FPC выше 2.0.
  • _vadim (29.01.08 10:00) [16]
    Тогда поправка к моему предыдущему постингу. :)
    Файл kol.pas не править, а в файл koldef.inc добавить DEFINE:

    {$DEFINE FPC}
    {$DEFINE FPC21}
    {$DEFINE VER2}

  • D[u]fa (29.01.08 12:08) [17]
    дык наверное нет директивы на тот случай если юзаете 20 фпц а не 21
  • Barloggg (29.01.08 12:36) [18]
    в KOL.pas много раз встречается несостыковка

    в interface стоит
    {$IFNDEF STREAM_COMPAT} const {$ENDIF}
    а в implementation стоит
    const

    без скобок.

    строки
    25169
    25204
    25242
    25267
    25635

    бяка всплыла при использовании KOLPNG которая в свою очередь использует KOLZLIB в которой сопсно и используются эти недопереписанные строки.

    кстати в сам KOLZLIB надо тогда внести эти директивы компиляции если уж руководствоватсья такой логикой.
  • Barloggg (29.01.08 12:37) [19]
    о, гм, вижу запись об обновлении KOLPNG :)
 
Конференция "KOL" » Версия 2.86 [Delphi, Windows]
Есть новые Нет новых   [134431   +15][b:0][p:0.002]