Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
 
  • MTsv DN (04.10.10 07:44) [40]
    > Да. Но нет опций, может в этом дело? Попробуйте у себе грохнуть
    > файлы в папке проекта, распаковать и перекомпилировать.
    > Если еще падает, надо снова забрать kol.zip и mck.zip. Больше
    > пока нет идей.

    Делал:
    Скачал снова kol.zip и mck.zip, отказался от сторонних компонентов и своих добавок, переставил KOL с ребилдом естесственно, также чистил проект и менял папку (на всякий случай).
    Итог: как падало, так и падает!!!

    Идея: Вы же говорили, что уменьшали размер TControl, как я понял пакованные данные ввели (не пинайте сильно, если ошибся), пользуетесь Delphi6, а я 2007, так может с менеджером памяти проблемы?
    Кстати, awkward [9], тоже упоминал про ошибку при уничтожении объектов.

    Запрос:
    У кого D2007 и ХР, проверьте, пожалуйста, проект на новом KOL и напишите о результатах.

    Проект: http://zalil.ru/29764390
  • MTsv DN (04.10.10 07:45) [41]
    P.S.
    > Но нет опций, может в этом дело?
    В смысле директив компиляции? Они есть просто я пользуюсь D2007, тючю они в другом файле.
  • MTsv DN (04.10.10 09:13) [42]
    > Запрос:
    > У кого D2007 и ХР, проверьте, пожалуйста, проект на новом KOL и напишите о результатах.

    Абсолютно "чистая" Windows XP SP3, Delphi 7 Lite, KOL v.3.00. Тестовый проект "валится". Используемые директивы: KOL_MCK; UNICODE_CTRLS. Отключение последней решает проблему.
  • MTsv DN (04.10.10 09:38) [43]
    Значится так.
    1. По поводу уничтожения PKOLStrList с UNICODE_CTRLS.
    Вылет здесь:
     {$IFDEF NIL_EVENTS}
     if Assigned( fOnDestroy ) then
     {$ENDIF}
     begin
       fOnDestroy( @Self );


    в третьем заходе, когда @fOnDestroy уже равно nil. Непонятно зачем было проверку в NIL_EVENTS ставить. Добавление директивы или удаление ее из кода решило проблему.
    2. По поводу непрорисовки комбобокса. Виноват (а точнее зависит от наличия) manifest-файла. Буду искать.
  • MTsv DN (04.10.10 10:10) [44]
    > 2. По поводу непрорисовки комбобокса. Виноват (а точнее зависит от наличия) manifest-файла. Буду искать.
    Не до конца, как мне кажется, додумано использование DummyProc. Ошибка отрисовки кнопки здесь:
    if Assigned(Sender.EV.fOnBitBtnDraw) then


    надо заменить на:
    if Assigned(Sender.EV.fOnBitBtnDraw)and (@Sender.EV.fOnBitBtnDraw <> @DummyProc123_0) then


    Комбик вообще вручную не отрисовывается, т.ч. возможно из-за этого и подвисает...
  • MTsv DN (04.10.10 10:12) [45]
    Да, кстати, забыл сказать. Надо еще директиву GRAPHCTL_XPSTYLES добавить.
  • MTsv DN (04.10.10 10:30) [46]
    В общем, что с комбиком не знаю.

    Проект, форма, апплет и один комбик на форме.
    Директивы: KOL_MCK;GRAPHCTL_XPSTYLES;UNICODE_CTRLS;NIL_EVENTS;USE_OLD_FLAGS;CMDACTIONS_RECO RD (а также без последних двух).
    Манифест-файл присутствует, темы включены.

    Итог: Комбик не отрисовывается. Но стоит добавить любой визуальный элемент, даже пустой лэбел, комбик начинает нормально работать.

    Хрень какая-то.
  • MTsv DN (04.10.10 11:05) [47]
    Также перестал работать NewDirChangeNotifier из KOLadd.

    Тестовый проект: http://zalil.ru/29764821
  • MTsv DN (04.10.10 11:10) [48]
    Похоже какая-то хрень с потоками...
  • Dufa © (04.10.10 11:31) [49]

    > Проверьте, что там не одновременно Align и Anchors используются.


    Оказывается исчезает не панель, а кнопки на ней! Либо они рисуются, либо еще что-то.. Хотя лабел и эдит на месте..


    > У кого D2007 и ХР, проверьте, пожалуйста, проект на новом
    > KOL и напишите о результатах.


    Turbo, XP - комбо бокс выглядит как УГ.. с GRAPHCTL_XPSTYLES и без него.

    Но если сделать   InitCommonControls; - все в норме
  • Dufa © (04.10.10 11:37) [50]
    Поставил UNICODE_CTRLS - падение где-то в TObj.Final...
    NIL_EVENTS решает проблему.. Вообще идея NIL_EVENTS как-то не нравится мне..

    Проект с NewDirChangeNotifier - сразу падение
  • Dufa © (04.10.10 11:51) [51]
    Во втором проблема с созданием потока. А там опять же NIL_EVENTS.. только там ошибочно стоят директивы {$IFDEF SAFE_CODE} вместо {$IFDEF NIL_EVENTS}

    NIL_EVENTS в топку...
  • MTsv DN (04.10.10 11:51) [52]
    Po povodu knopok, 4itaj post [44]
  • MTsv DN (04.10.10 11:52) [53]
    Ponjal. Respekt.
  • QAZ (04.10.10 14:10) [54]
    а мошт убрать все что связано с GRAPHCTL и XPSTYLES ибо нафиг надо ?
  • Dufa © (04.10.10 16:29) [55]
    QAZ, это почему нафиг надо? :D
  • Vladimir Kladov © (04.10.10 17:53) [56]
    Из NIL_EVENTS надо наверное убрать проверку fOnDestroy (и соответственно инициализацию) - с ним проблема. Этим займусь. Сам NOT NIL_EVENTS (по умолчанию не обязательно) пусть остается. Как вариант с чуть-чуть большим быстродействием (еще бы его увидеть, это быстродействие) чуть меньшим кодом (должно быть заметно при использовании именно паскаль-версии, больно компилятор умный, тратит на проверку Assigned по 12 байт кода).

    По поводу combobox + XPSTYLES - нужен InitCommonControls ? Это несколько непонятно, но почему бы и нет, если надо. А с изображением кнопок проблему решает? Вот только не получается у меня получить неправильный комбо. Опции в проекте KOL_MCK;nnUNICODE_CTRLS;nnPAS_VERSION;GRAPHCTL_XPSTYLES (nn-пробовал отключать вместе и по очереди). Манифест на месте, аэра включена, InitCommonControls не вызывался. Комбо на форме 1 штука (предыдущий test). Комбо выглядит чуть не так, как без XPSTYLES (шрифт другой), но в общем-то не так уж крив.

    Еще один момент с комбой: компилирую в старой версии kol+visual_xp_styles - результат тот же, комбо выглядит в старой версии точно так же (при темах+манифесте).

    По NewDirChange ошибку нашел с SAFE_CODE. Кстати после просмотра в ProcessExplorer что делается при частом создании этих объектов решил, что лучше вообще вернуть самый первоначальный вариант без NewThreadAutoFree, а в NewThreadAutoFree завершать нить через TerminateThread. Иначе потоки копятся и никуда не уходят (в состоянии Stopped).

    В общем, я сейчас положил kol.zip + mck.zip + koladd.zip со всеми поправками. Пометка в главных пас-файлах - версия 3.00.A.
  • QAZ (04.10.10 19:23) [57]

    >  это почему нафиг надо?

    ну потому что GRAPHCTL актуален мог быть онли винда 95\98
    а без XPSTYLES и так все работает,достаточно манифеста
    ну а рисовать кнопки програмно ,заместо винды - смешно и очень велосипедно
  • Vladimir Kladov © (04.10.10 19:57) [58]
    2QAZ: Вы не разобрались, а я не исправил комментарий. Первоначально были придуманы графические контролы. Кстати, вполне себе даже актуальные, хотя и в редких случаях. Например, 100 контролов на форме будут тормозить однозначно. Графических - не будут. Потом были дописаны visual_xp_styles. И приспособлены, чтобы обеспечить более корректную отрисовку некоторых оконных контролов, а заодно и реагировать на изменение темы. Не совсем в стиле KOL (включая только код для того, что есть), а скорее в стиле VCL (включить на всякий случай все, что только вдруг да понадобится), но это не ко мне, а к авторам. В примерах на баги нет ни одного графического контрола.
  • MTsv DN (04.10.10 20:48) [59]
    > а без XPSTYLES и так все работает,достаточно манифеста ну а рисовать кнопки програмно ,заместо винды - смешно и очень велосипедно
    2 QAZ
    1. Приведите пример bitbtn на API, чтобы было только манифеста достаточно. Может я просто чего не так понял с этим контролом...
    2. Приведите пример grоupbox на API, чтобы не было зачеркивания метки.
    3. А все остальные контролы, если мне склероз не изменяет, были написаны с помощью, виндовых API Themes, кстати, дабы поддерживалась прозрачность в KOL.

    > По поводу combobox + XPSTYLES - нужен InitCommonControls
    Проверю.

    > А с изображением кнопок проблему решает?
    Решает правка в visual_xp_styles.inc (пост №44)

    > В общем, я сейчас положил kol.zip + mck.zip + koladd.zip со всеми поправками. Пометка в главных пас-файлах - версия 3.00.A.

    Проверить смогу только завтра...
 
Конференция "KOL" » KOL v 3.00 [Delphi, Windows]
Есть новые Нет новых   [120345   +11][b:0.001][p:0.001]