Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
 
  • MTsv DN (25.10.10 19:18) [200]
    > Версия 3.00.U на сайте. Проверьте со своим, MTsv DN.
    Подтверждаю. Баг исправлен (и пас- и асм-версии). Спасибо.
  • MTsv DN (26.10.10 09:29) [201]
    Версия 3.00.U. Еще один баг в асм-версии. Простой код
    if ListView1.RightClick then
     beep(400,100);


    при нажатии левой/правой кнопкой на элементе валится где-то в глубинах WndFunc (вроде ;) )

    Пас-версия работает корректно.
  • MTsv DN (26.10.10 09:32) [202]
    Код находится в
    procedure TForm1.ListView1Click(Sender: PObj);

    . Директивы: KOL_MCK;GRAPHCTL_XPSTYLES;UNICODE_CTRLS;nil_events
  • Vladimir Kladov © (26.10.10 16:55) [203]
    Фикс на сайте v3.00.V. Заодно чуть ускорил TLIST_FAST, и поправил KOLDirDlgEx (KOLadd.zip)
  • Jon © (27.10.10 01:51) [204]
    Issue from [186] remains (concerning ALT+SPACE with conditionals)
  • Jon © (27.10.10 02:03) [205]
    When using TBAssignEvents, left click works but right click does not:


    program Test;

    uses KOL;

    var Toolbar: PControl;

    procedure TBClick(Dummy: Pointer; Sender: PControl; BtnID: Integer);
    begin
     if Sender.RightClick then
       Applet.Caption := '>>>'
     else
       Applet.Caption := '<<<';
    end;

    begin
     Applet := NewForm(nil, '').SetSize(200, 100);
     Toolbar := NewToolbar(Applet, caTop, [], 0, [], []);
     Toolbar.TBAssignEvents(Toolbar.TBAddButtons(['X'], []), [TOnToolbarButtonClick(MakeMethod(nil, @TBClick))]);
    //  Toolbar := NewToolbar(Applet, caTop, [], 0, ['X'], []);
    //  Toolbar.OnTBClick := TOnEvent(MakeMethod(nil, @TBClick));
     Run(Applet);
    end.

  • Vladimir Kladov © (27.10.10 04:42) [206]
    Issue from [186] remains (concerning ALT+SPACE with conditionals)


    I answered: it should not work and now is not working in both cases.
  • SPeller © (27.10.10 04:49) [207]
    Есть предложение немного доработать TThread до такого:

    function WaitFor(ATimeOut: Cardinal = INFINITE): Integer;

    ну и в коде

     WaitForSingleObject(FHandle, ATimeOut);

    Никаикх изменений в существующий пользовательский код. Отработку по таймауту коде можно определить возвращаемым значением метода WaitFor, которое будет равно константе STILL_ACTIVE.
  • Vladimir Kladov © (27.10.10 04:56) [208]
    Не-а. Не катит. До Delphi5 нет параметров со значениями по умолчанию. Добавить WaitForTime(timeout) могу.
  • SPeller © (27.10.10 05:39) [209]
    Можно и так. Основной код вставить в WaitForTime, а из WaitFor вызывать его с параметром INFINITE
  • SPeller © (27.10.10 05:45) [210]
    ВОт еще что. Уже обсуждалось, но осталось по прежнему. Проблема в том, что при работе с KOL в DLL возникает проблема из-за обрезки необходимых ей релоков. За это отвечает вот такая штука в koldef.inc:

    // TODO: check DLL project
    {$IFNDEF NO_STRIP_RELOC}
     // by Thaddy de Koning:
     {$IFDEF _D2006orHigher}
     // strips relocs, like stripreloc.exe does
     {$SetPEFlags 1}
    // {$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED or IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
     {$ENDIF}
    {$ENDIF}



    Предлагаю использовать не NO_STRIP_RELOC для отключения обрезки, а наоборот, включать обрезку только когда объявлен символ STRIP_RELOC. Не знаю как в старших версиях дельфей, но 2010-я мне сегодня заявила:

    [DCC Fatal Error] E2163 Too many conditional symbols

    Поэтому опасно плодить дополнительные символы, компилятор может обидеться )
  • SPeller © (27.10.10 06:03) [211]
    Еще проблема. При наличии манифеста ХР даже при выключенных темах контролы не отрисовываются. На форме просто области, заполняющиеся предыдущим содержимым экрана. Включение-отключение тем, DoubleBuffered никак не влияет. Форма с контролами находится в длл.
  • Vladimir Kladov © (27.10.10 06:04) [212]
    When using TBAssignEvents, left click works but right click does not

    As in 2.94, it works when event is assigned for toolbar itself, not for a button. (Uncomment
    //  Toolbar.OnTBClick := TOnEvent(MakeMethod(nil, @TBClick));


    )
  • Vladimir Kladov © (27.10.10 06:11) [213]
    [DCC Fatal Error] E2163 Too many conditional symbols

    В прежних Delphi ничего не говорил, просто переставал воспринимать после определенного числа символов в строке с дефинициями. Но для этого решение есть давнор: включается символ EXTERNAL_DEFINES, и символы помещаются в EXTERNAL_DEFINES.inc в нужном количестве в виде {$DEFINE символ}.

    А что это делает, и чем будет отличаться вариант с STRIP_RELOC, я как бы и не в курсе. Нету D2010 (IDE), могу только через dcc32, это неудобно.
  • Vladimir Kladov © (27.10.10 06:12) [214]
    WaitForTime уже есть, не помню с какой версии.
  • SPeller © (27.10.10 06:20) [215]

    > WaitForTime уже есть, не помню с какой версии.

    Точно... Давно не работал с KOL, забыл всё уже.


    > А что это делает, и чем будет отличаться вариант с STRIP_RELOC,
    >  я как бы и не в курсе. Нету D2010 (IDE), могу только через
    > dcc32, это неудобно.

    {$SetPEFlags 1} - указывает компилятору что надо вырезать из конечного модуля релоки. Для ЕХЕ это нормально, а вот ДЛЛ без релоков не сможет загрузиться. Правда, проблема плавающая, при билде проекта эта опция отрабатывает, длл получается без релоков и не загружается, а если делать компиляцию, то релоки присутствуют и длл работает.
  • Thaddy © (27.10.10 10:47) [216]
    Yes, but as i recall, this is documented. When I suggested this option, we made it clear this was only for exes and not for dll's.
    There are other issues, for example memory management.
    I suggest maybe a more generic switch like TARGET_EXE or TARGET_DLL would help for these cases?
  • Vladimir Kladov © (27.10.10 17:01) [217]
    I don't think that this is a big problem. Not a lot of programmers are creating dll's. Most of people use Delphi to create applications so I think it is normal to leave code untouched.
  • awkward (27.10.10 21:07) [218]
    мда.... а я ак раз ДЛЛки в основном и творю.... правда, на 5й и 7й дельфи...
  • SPeller © (28.10.10 02:02) [219]
    Владимир, что значит "никто не делает дллки?" :) Вы так шутите, да? :)
 
Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
Есть новые Нет новых   [134431   +9][b:0.001][p:0.001]