Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
 
  • Jon © (12.10.10 03:09) [120]
    KOL.PAS VERSION 3.00.H (2,164,976 bytes)


    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.pas(21709) Error: Incompatible types: 'Char' and 'WideChar'
    KOL_ASM.inc(15325)
    KOL.pas(64705)

  • RusSun © (12.10.10 04:45) [121]
    По поводу MDI.
    program MDI_test;

    uses
     Windows, Messages, KOL;

    var
     MDIClient, MDIChild, Panel: PControl;
     MainMenu: PMenu;

    procedure CreateMDIChild;
    begin
     MDIChild := NewMDIChild(MDIClient, 'MDI Client').SetClientSize(320, 200);
     MDIClient.Add2AutoFree(MDIChild);
     MDIChild.Border := 10;
     Panel := NewPanel(MDIChild, esRaised).SetAlign(caClient);
     Panel.Border := 2;
     MDIClient.CreateWindow;
    end;

    procedure MenuItems(Dummy: Pointer; Sender: PMenu; Item: Integer);
    begin
     case Item of
       1: CreateMDIChild;
       3: MDIClient.Perform(WM_MDITILE, MDITILE_VERTICAL, 0);
       4: MDIClient.Perform(WM_MDICASCADE, 0, 0);
     end;
    end;

    begin
     Applet := NewForm(nil, 'MDI test').SetPosition(240, 120).SetClientSize(380, 280);
     Applet.Font.FontName := 'MS Sans Serif';
     MainMenu := NewMenu(Applet, 0, ['New', '(', 'Create MDI Child', ')', 'Window', '(', 'Tile', 'Cascade', ')', ''], TOnMenuItem(MakeMethod(nil, @MenuItems)));
     MDIClient := NewMDIClient(Applet, 0).SetAlign(caClient);
     MDIClient.Add2AutoFree(MDIChild);
     CreateMDIChild;
     Run(Applet);
    end.


    Вылетает при компиляции. Если оно не надо, то вопрос снимаю.
  • Jon © (12.10.10 04:58) [122]
    Confirmed:


    program MDI_test;

    uses KOL;

    begin
     Applet := NewForm(nil, 'MDI test');
     NewMDIClient(Applet, 0); // Runtime error!
    end.

  • Артём (12.10.10 10:45) [123]
    Здравствуйте.
    Быть может, что-то путаю, но были испорчены:
    function TStrList.GetLineName(Idx: Integer): AnsiString;
    и
    function TStrList.GetLineValue(Idx: Integer): AnsiString;

    кодом:
     Q := StrScan( PAnsiChar(s), '=' );
    и
     Q := StrScan( Q, '=' );

    Хотя рядом в файле лежат функции, где fNameDelim не игнорируется...
  • Vladimir Kladov © (12.10.10 15:40) [124]
    то с количеством директив? Я за их уменьшение :) Я тоже. Как версия зафиксируется, будем убирать хлам типа OLD_ALIGN (NEW_ALIGN вполне себе прижился), ADD_AUTOFREE4CONTROLS (уже давно прижился как основной) и т.п. Вообще, текущий набор опций таков, что никакие опции добавлять не нужно, кроме специальных случаев. Если надо очень много, есть EXTERNAL_DEFINES и это удобнее, чем в опциях проекта хранить.
  • Vladimir Kladov © (12.10.10 16:04) [125]
    По поводу MDI.
    program MDI_test;

    Это я поправлю сегодня. Но вы тоже молодец: в двух местах Add2AutoFree сделали, чтобы не забыло помереть. Не надо ни разу. При создании контрола дочерним он автоматом уже попадает в fAutoFree родителя, а более раза ему там нечего делать. В первый раз, добавляется в AutoFree вообще nil - контрол еще не создан.
  • Vladimir Kladov © (12.10.10 16:08) [126]
    рядом в файле лежат функции, где fNameDelim не игнорируется
    Я совсем забыл про fNameDelim, избавляясь от Parse. Поправлю сегодня.
  • Vladimir Kladov © (12.10.10 17:06) [127]
    KOL.zip with KOL 3.00.i is on kolmck site. All 4 issues are fixed:
    compilng with UNCODE_CTRLS (_AnsiCompareStr),
    running MDI_Test,
    Toolbar issue (elder behavior by default except special symbol defined),
    fNameDelim.
  • Jon © (12.10.10 17:28) [128]
    Thank you - can you recheck ActiveKOL as per [116] please.
  • RusSun © (12.10.10 18:17) [129]
    Спасибо Большое [125].
  • Vladimir Kladov © (12.10.10 18:34) [130]
    Sorry, Jon. These were really different. May be file was locked when I updated it. I reuploaded it just now.
  • Vladimir Kladov © (12.10.10 18:35) [131]
    I mean ActiveKOL.zip, certainly.
  • Jon © (13.10.10 04:38) [132]
    Thank you very much for the speedy fixes.

    I'm afraid that I have to report another oddity.

    This used to work with KOL pre-v3:


    program Test;

    uses KOL;

    begin
     MsgOK(Int2Str(1)); // Runtime Error!
    end.



    But with KOL 3 I have to assign an Applet:


    program Test;

    uses KOL;

    begin
     Applet := NewForm(nil, '');
     MsgOK(Int2Str(1)); // OK now!
    end.



    Is this a bug?
  • Jon © (13.10.10 05:15) [133]
    This is something similar, using Int2Str works, but Int2Digs and Int2Ths create an error:


    program Test;

    uses KOL;

    var
     Memo: PControl;
     Counter: Integer;

    begin
     Applet := NewForm(nil, '');
     Memo := NewEditbox(Applet, [eoMultiline]).SetAlign(caClient);
     Memo.Color := clWindow;
     for Counter := 0 to 254 do
       Memo.Add(Int2Digs(Counter, 3) + #$0D#$0A); // Runtime Error!
     //  Memo.Add(Int2Ths(Counter) + #$0D#$0A); // Runtime Error!
     //  Memo.Add(Int2Str(Counter) + #$0D#$0A); // This works!
     Run(Applet);
    end.



    Very strange..
  • Jon © (13.10.10 05:16) [134]
    Just tested [133] with PAS_VERSION and it works correctly.
  • MTsv DN (13.10.10 08:54) [135]
    Подтверждаю. При UNICODE_CTRLS асм-версия Int2Digs не пашет. А может и еще что, предполагаю: Int2Ths, Num2Bytes, String2PascalStrExpr
  • MTsv DN (13.10.10 08:56) [136]
    Поскольку Int2Digs использую, то пока отключил асм-версию.
  • Vladimir Kladov © (13.10.10 16:21) [137]
    KOL.zip 3.00.j on site with fixes.

    Если и дальше так пойдет, все переведем в KOLString, кроме StrList (его как раз не желательно, для скорости некоторых алгоритмов).
  • Jon © (14.10.10 01:56) [138]

    > KOL.zip 3.00.j on site with fixes.


    Thank you very much, master. Excellent work!
  • MTsv DN (14.10.10 10:34) [139]
    Первая стабильная версия 3.00...смотрю со "своей колокольни".

    Единственное в секцию инициализации так и добавляю InitCommonControls.
 
Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
Есть новые Нет новых   [134431   +9][b:0.001][p:0.002]