-
> Да. Но нет опций, может в этом дело? Попробуйте у себе грохнуть > файлы в папке проекта, распаковать и перекомпилировать. > Если еще падает, надо снова забрать kol.zip и mck.zip. Больше > пока нет идей.Делал:Скачал снова kol.zip и mck.zip, отказался от сторонних компонентов и своих добавок, переставил KOL с ребилдом естесственно, также чистил проект и менял папку (на всякий случай). Итог: как падало, так и падает!!! Идея: Вы же говорили, что уменьшали размер TControl, как я понял пакованные данные ввели (не пинайте сильно, если ошибся), пользуетесь Delphi6, а я 2007, так может с менеджером памяти проблемы? Кстати, awkward [9], тоже упоминал про ошибку при уничтожении объектов. Запрос:У кого D2007 и ХР, проверьте, пожалуйста, проект на новом KOL и напишите о результатах. Проект: http://zalil.ru/29764390
-
P.S. > Но нет опций, может в этом дело? В смысле директив компиляции? Они есть просто я пользуюсь D2007, тючю они в другом файле.
-
> Запрос: > У кого D2007 и ХР, проверьте, пожалуйста, проект на новом KOL и напишите о результатах. Абсолютно "чистая" Windows XP SP3, Delphi 7 Lite, KOL v.3.00. Тестовый проект "валится". Используемые директивы: KOL_MCK; UNICODE_CTRLS. Отключение последней решает проблему.
-
Значится так. 1. По поводу уничтожения PKOLStrList с UNICODE_CTRLS. Вылет здесь:
if Assigned( fOnDestroy ) then
begin
fOnDestroy( @Self ); в третьем заходе, когда @fOnDestroy уже равно nil. Непонятно зачем было проверку в NIL_EVENTS ставить. Добавление директивы или удаление ее из кода решило проблему. 2. По поводу непрорисовки комбобокса. Виноват (а точнее зависит от наличия) manifest-файла. Буду искать.
-
> 2. По поводу непрорисовки комбобокса. Виноват (а точнее зависит от наличия) manifest-файла. Буду искать.Не до конца, как мне кажется, додумано использование DummyProc. Ошибка отрисовки кнопки здесь: if Assigned(Sender.EV.fOnBitBtnDraw) then надо заменить на: if Assigned(Sender.EV.fOnBitBtnDraw)and (@Sender.EV.fOnBitBtnDraw <> @DummyProc123_0) then Комбик вообще вручную не отрисовывается, т.ч. возможно из-за этого и подвисает...
-
Да, кстати, забыл сказать. Надо еще директиву GRAPHCTL_XPSTYLES добавить.
-
В общем, что с комбиком не знаю.
Проект, форма, апплет и один комбик на форме. Директивы: KOL_MCK;GRAPHCTL_XPSTYLES;UNICODE_CTRLS;NIL_EVENTS;USE_OLD_FLAGS;CMDACTIONS_RECO RD (а также без последних двух). Манифест-файл присутствует, темы включены.
Итог: Комбик не отрисовывается. Но стоит добавить любой визуальный элемент, даже пустой лэбел, комбик начинает нормально работать.
Хрень какая-то.
-
-
Похоже какая-то хрень с потоками...
-
> Проверьте, что там не одновременно Align и Anchors используются.
Оказывается исчезает не панель, а кнопки на ней! Либо они рисуются, либо еще что-то.. Хотя лабел и эдит на месте..
> У кого D2007 и ХР, проверьте, пожалуйста, проект на новом > KOL и напишите о результатах.
Turbo, XP - комбо бокс выглядит как УГ.. с GRAPHCTL_XPSTYLES и без него.
Но если сделать InitCommonControls; - все в норме
-
Поставил UNICODE_CTRLS - падение где-то в TObj.Final... NIL_EVENTS решает проблему.. Вообще идея NIL_EVENTS как-то не нравится мне..
Проект с NewDirChangeNotifier - сразу падение
-
Во втором проблема с созданием потока. А там опять же NIL_EVENTS.. только там ошибочно стоят директивы {$IFDEF SAFE_CODE} вместо {$IFDEF NIL_EVENTS}
NIL_EVENTS в топку...
-
Po povodu knopok, 4itaj post [44]
-
Ponjal. Respekt.
-
а мошт убрать все что связано с GRAPHCTL и XPSTYLES ибо нафиг надо ?
-
QAZ, это почему нафиг надо? :D
-
Из 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.
-
> это почему нафиг надо?
ну потому что GRAPHCTL актуален мог быть онли винда 95\98 а без XPSTYLES и так все работает,достаточно манифеста ну а рисовать кнопки програмно ,заместо винды - смешно и очень велосипедно
-
2QAZ: Вы не разобрались, а я не исправил комментарий. Первоначально были придуманы графические контролы. Кстати, вполне себе даже актуальные, хотя и в редких случаях. Например, 100 контролов на форме будут тормозить однозначно. Графических - не будут. Потом были дописаны visual_xp_styles. И приспособлены, чтобы обеспечить более корректную отрисовку некоторых оконных контролов, а заодно и реагировать на изменение темы. Не совсем в стиле KOL (включая только код для того, что есть), а скорее в стиле VCL (включить на всякий случай все, что только вдруг да понадобится), но это не ко мне, а к авторам. В примерах на баги нет ни одного графического контрола.
-
> а без 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.
Проверить смогу только завтра...
|