Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
 
  • Vladimir Kladov © (09.10.10 20:07) [100]
    Да, я сейчас посмотрел на том большом проекте, больше такого нет (если строку закомментарить). Не знаю, что это было. Какой-то глюк промежуточной версии.

    И что, на SourceForge через svn-клиентов работает? Или только web?
  • Dufa © (09.10.10 20:11) [101]

    > Да, я сейчас посмотрел на том большом проекте, больше такого
    > нет (если строку закомментарить). Не знаю, что это было.
    >  Какой-то глюк промежуточной версии.


    а может ждали мало..


    > И что, на SourceForge через svn-клиентов работает? Или только
    > web?

    Скачать можно и без клиента (по файлово или через tarball), а вот чтоб заливать надо свн клиент
  • Dufa © (09.10.10 20:12) [102]
    Или вы про зарегаца? Зарегаца можно по веб..
  • Vladimir Kladov © (09.10.10 20:46) [103]
    а может ждали мало Ждал столько же, сколько и со строчкой TerminateProcess, но в случае Terminate лишних вообще не появлялось. Поставлю в ifdef-скобки как обычно. По умолчанию без Terminate.

    Так, D2010 приказал долго жить. При очередном запуске поломался, не смог загрузить какой-то пакадж, и теперь при любом запуске стоит в процессах около секунды и исчезает. Ремонт и переустановка не помогла. Проверять его синтаксические искусы больше не на чем. Разве только D2009+Upd1 поставить.
  • Jon © (10.10.10 01:19) [104]
    Thank you - with v3.00f and updated KOLMHToolTip.pas the USE_MHTOOLTIP directive is working

    Still a problem with UNICODE_CTRLS on WnXP using D7:


    dcc32.exe -b KOL.pas -dUNICODE_CTRLS

    Borland Delphi Version 15.0
    Copyright (c) 1983,2002 Borland Software Corporation
    KOLDEF.INC(253)
    KOLDEF.INC(253)
    delphidef.inc(48)
    delphicommctrl.inc(1569)
    KOL_unicode.inc(1185)
    KOL_unicode.inc(1185)
    KOL_ASM.inc(2158) Error: Declaration of 'TextArea' differs from previous declaration
    KOL_ASM.inc(2164) Error: Undeclared identifier: 'TextExtent'
    KOL_ASM.inc(2451) Error: Identifier redeclared: 'Int2Hex'
    KOL_ASM.inc(2534) Error: Previous declaration of 'Hex2Int' was not marked with the 'overload' directive
    KOL_ASM.inc(2586) Error: Identifier redeclared: 'Int2Str'
    KOL_ASM.inc(15344)
    KOL.pas(63799)



    And also, still not working is the OnDropFiles event.
  • Jon © (10.10.10 04:36) [105]
    Together with the fixes in [89] and [90] from MTsv DN, also need to fix ActiveKOL:


    procedure TOleCtl.StandardEvent(DispID: TDispID; var Params: TDispParams);
    ...
         DISPID_KEYPRESS:
           if Params.cArgs > 0 then
           begin
             Ch := KOLChar(Integer(Variant(Args^[0])));
             KeyPress(Ch);
             if ((Args^[0].vType and varByRef) <> 0) then
               KOLChar(Args^[0].VPointer^) := Ch;
           end;

  • Jon © (10.10.10 05:07) [106]
    There is also an error with the ASM_VERSION using the property Count:


    program Test;

    uses KOL;

    procedure ButtonClick(Dummy: Pointer; Sender: PObj);
    begin
     Applet.Caption := Int2Str(Applet.ChildCount); //(PControl(Sender).Count); // ERROR!
    end;

    begin
     Applet := NewForm(nil, 'Test');
     with NewButton(Applet, 'Count')^ do
       OnClick := TonEvent(MakeMethod(nil, @ButtonClick));
     Run(Applet);
    end.



    Defines:

    UNICODE_CTRLS; = error
    UNICODE_CTRLS;PAS_VERSION; = ok
  • Vladimir Kladov © (10.10.10 09:28) [107]
    3.00.G - kol.zip, mck.zip, koladd.zip, kol_err.zip

    DISPID_KEYPRESS: Don't see any changes. Therefore I replaced it. Download because another fixes are there (fName, Name in two or three different places). Also, err.pas is changed to fix syntax errors with UNICODE_CTRLS + ActiveKOL.
  • Dufa © (10.10.10 12:35) [108]
    Судя по пас версии, надо и в асм добавить DIBPixels32bitWithAlpha, иначе не задействуется новый код

    fGetDIBPixels := {$IFDEF DIBPixels32bitWithAlpha} _GetDIBPixelsTrueColorAlpha
                              {$ELSE} _GetDIBPixelsTrueColor {$ENDIF};



    Есть еще одна улучшалка для TStrList:

    ...
       procedure SortEx(const CompareFun: TCompareEvent);
       {* Call it to custom sort string list. Dufa }
    ...

    procedure TStrList.SortEx(const CompareFun: TCompareEvent);
    begin
     SortData(@Self, fCount, CompareFun, @TStrList.Swap);
    end;


    Таким образом можно использовать настраеваемую сортировку

    Залил на свн 3.00.G.
  • Jon © (11.10.10 00:25) [109]
    There is still the issue from [105] after your changes from [107]
    Tried with new version: ActiveKOL.pas 76,885 bytes 07/10/2010


    dcc32.exe -b ActiveKOL.pas -dUNICODE_CTRLS;

    Borland Delphi Version 15.0
    Copyright (c) 1983,2002 Borland Software Corporation
    KOLDEF.INC(253)
    KOLDEF.INC(253)
    delphidef.inc(48)
    delphicommctrl.inc(1569)
    KOL_unicode.inc(1185)
    KOL_unicode.inc(1185)
    KOL_ASM.inc(15225)
    KOL.pas(64002)
    KOLDEF.INC(253)
    KOLDEF.INC(253)
    err.pas(1198)
    KOLComObj.pas(2353)
    KOLDEF.INC(253)
    ActiveKOL.pas(1873) Error: Incompatible types: 'KOLChar' and 'Char'
    ActiveKOL.pas(1876) Error: Incompatible types: 'Char' and 'KOLChar'
    ActiveKOL.pas(2638)



    All other issues are fine now - thank you.
  • Jon © (11.10.10 02:26) [110]
    Some file irregularities:

    In http://kolmck.net/kol.zip and http://kolmck.net/mck.zip there are different versions of MCKfakeClasses.inc and visual_xp_styles.inc

    In http://kolmck.net/mck.zip and http://kolmck.net/sys/kol_err.zip there are different versions of err.pas
  • MTsv DN (11.10.10 11:50) [111]
    2 Кладов
    Еще один баг: http://zalil.ru/29797062
    Неправильный подсчет размера текста. Сочетание директив обязательно такое: KOL_MCK;GRAPHCTL_XPSTYLES;UNICODE_CTRLS;nil_events
  • MTsv DN (11.10.10 11:57) [112]
    2 Кладов
    Тока щас сообразил. Ошибка появилась после смены объявления
    procedure TextArea( const Text : KOLString; var Sz : TSize; var P0 : TPoint );


    То Вы сидите на D6 и ХР, то кинулись сразу на D2010 и семерку. Чем анси-версия-то не устраивала? Есть же WTextArea... Поясните уж тогда, почему в TextExtent и DrawText оставили AnsiString, потому что пока Вы это не используете?
  • MTsv DN (11.10.10 12:00) [113]
    Ну и до кучи.

    function TCanvas.TextExtent(const Text: AnsiString): TSize;
    var DC : HDC;
       ClearHandle : Boolean;
    begin
    .
    .
    .
    end;

    procedure TCanvas.TextArea(const Text: KOLString; var Sz: TSize;
     var P0: TPoint);
    begin
     Sz := TextExtent( Text );
     P0.x := 0; P0.y := 0;
     TOnTextArea( GlobalCanvas_OnTextArea )( @Self, Sz, P0 );
    end;


    Ничего не смущает, если использовать UNICODE_CTRLS
  • Vladimir Kladov © (11.10.10 16:17) [114]
    I understand that Delphi 7 and Delphi 6 a bit different compilers, but
    C:\Borland\Delphi6\Bin>dcc32.exe -b d:\kol\ActiveKOL.pas -dUNICODE_CTRLS
    Borland Delphi Version 14.0
    Copyright (c) 1983,2002 Borland Software Corporation
    d:\kol\KOLDEF.INC(254)
    d:\kol\KOLDEF.INC(254)
    d:\kol\delphidef.inc(48)
    d:\kol\delphicommctrl.inc(1569)
    d:\kol\KOL_unicode.inc(1185)
    d:\kol\KOL_unicode.inc(1185)
    d:\kol\KOL_ASM.inc(15382)
    d:\kol\KOL.pas(64573)
    d:\kol\KOLDEF.INC(254)
    d:\kol\KOLDEF.INC(254)
    d:\kol\err.pas(1197)
    d:\kol\KOLComObj.pas(2353)
    d:\kol\KOLDEF.INC(254)
    d:\kol\ActiveKOL.pas(2650)
    91406 lines, 1.47 seconds, 15398 bytes code, 112 bytes data.



    and in Delphi7SE (I havn't other):
    C:\Borland\Delphi7SE\Bin>dcc32.exe -b d:\kol\ActiveKOL.pas -dUNICODE_CTRLS
    Borland Delphi Version 15.0
    Copyright (c) 1983,2002 Borland Software Corporation
    d:\kol\KOLDEF.INC(254)
    d:\kol\KOLDEF.INC(254)
    d:\kol\delphidef.inc(48)
    d:\kol\delphicommctrl.inc(1569)
    d:\kol\KOL_unicode.inc(1185)
    d:\kol\KOL_unicode.inc(1185)
    d:\kol\KOL_ASM.inc(15382)
    d:\kol\KOL.pas(64573)
    d:\kol\KOLDEF.INC(254)
    d:\kol\KOLDEF.INC(254)
    d:\kol\err.pas(1197)
    d:\kol\KOLComObj.pas(2353)
    d:\kol\KOLDEF.INC(254)
    d:\kol\ActiveKOL.pas(2650)
    91406 lines, 0.70 seconds, 15406 bytes code, 112 bytes data.



    We have different ActiveKOL.pas:

         DISPID_KEYDOWN, DISPID_KEYUP:
           if Params.cArgs >= 2 then
           begin
             Key := Variant(Args^[1]);
             X := Variant(Args^[0]);
             case DispID of
               DISPID_KEYDOWN: KeyDown(Key, X);
               DISPID_KEYUP:   KeyUp(Key, X);
             end;
             if ((Args^[1].vType and varByRef) <> 0) then
               Word(Args^[1].VPointer^) := Key;
           end; //-<- this is line 1873
         DISPID_KEYPRESS:
          if Params.cArgs > 0 then
          begin //-<- this is line 1876
            Ch := KOLChar(Integer(Variant(Args^[0])));
            KeyPress(Ch);
            if ((Args^[0].vType and varByRef) <> 0) then
              KOLChar(Args^[0].VPointer^) := Ch;
          end;


    Pls download ActiveKOL from kolmck.net, unit file size is 77 251 bytes.
  • Vladimir Kladov © (11.10.10 16:24) [115]
    In http://kolmck.net/kol.zip and http://kolmck.net/mck.zip there are different versions of
    MCKfakeClasses.inc and visual_xp_styles.inc

    anyway get marked as modified later. I'll remove visual_xp_styles.inc from mck.zip, it is not necessary there. Not sure same is correct for fake Classes.

    In http://kolmck.net/mck.zip and http://kolmck.net/sys/kol_err.zip there are different versions of
    err.pas
    I updated it in kol_err. Again don't know why it is necessary for MCK. Just will renew it there.
  • Jon © (11.10.10 16:32) [116]
    Can you provide the correct download link for ActiveKOL.
    I used this one: http://kolmck.net/Components/dde_ole_activex/ActiveKOL.zip

    ActiveKOL.zip (57350 bytes)

    Contents:

    ActiveKOL.pas (76,885 bytes 07/10/2010 12:11)
    ActiveKOL_readme.txt  (4,026 bytes  12/01/2003 19:59)
    KOLComObj.pas  (73,140 bytes  30/06/2007 00:11)
    LICENSE.txt  (4,757 bytes  06/11/2001 17:54)
    read_me_1st.txt  (117 bytes  21/10/2006 13:43)
    TLB2KOL.exe  (14,336 bytes  16/07/2001 22:57)
    Tlb2KolSrc.zip  (6,811 bytes  16/07/2001 23:49)

    Can you please check that you are hosting the correct file.
  • Vladimir Kladov © (11.10.10 16:40) [117]
    почему в TextExtent и DrawText оставили
    AnsiString, потому что пока Вы это не используете
    Потому что по этому поводу не ругался D2010. Важно убирать все предупреждения компилятора. Если этого не делать, то между огромным числом предупреждений менее существенных (таких как предупреждение о возможной потери информации при имплицитном преобразовании из WideString/WideChar/PWideChar в AnsiString/AnsiChar/PAnsiChar) начинают теряться более существенные предупреждения. Например, предупреждение о "подозрительном" (suspicious) приведении типа PWideChar к PAnsiChar является обязательным к устранению, речь идет уже скорее об ошибке, чем о предупреждении.

    В случае TextArea более корректно привести для UNICODE_CTRLS к KOLString, т.к. размеры национальных символов могут отличаться от размеров символа '?', к которому они приводятся при преобразовании в Ansi. Более правильно и DrawText преобразовать, чтобы изображались иероглифы и умляуты как положено.

    На D2010 я пересаживаться не собираюсь. Мне и D6 более чем хватает. Тем более эти жуткие тормоза в D2010. Единственное, для чего установил, это улучшить к нему адаптацию. А заодно и unicode_ctrls усовершенствовать.
  • Vladimir Kladov © (11.10.10 18:35) [118]
    Выложил kol.zip (H), mck.zip (поправил версии файлов), koladd.zip (DirDlgEx - фикс пиктограмм для режима 16 бит на экране).

    В KOL.pas появился символ SPEED_FASTER, наверное, оставим его по умолчанию, уж очень эффект полезный (сортировка StrList с AnsiSort (nocase) быстрее в 6 раз).
  • Dy1 (11.10.10 22:02) [119]
    я немного не в теме... Что с количеством директив? Я за их уменьшение :)
 
Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
Есть новые Нет новых   [134430   +3][b:0.003][p:0.004]