Конференция "KOL" » GRushControls неустойчивая ошибка
 
  • mdw (18.02.11 17:39) [0]
    Использую в приложении GRushControls. Приложение активно используется на ~20 компах. На всех работает нормально, кроме одного. Года 2 назад возникала аналогичная проблема, то же на одном, но тогда списали на одаренного юзера, который наставил всякой фигни на комп и забили.

    Теперь в чем выражается проблема.  
    Приложение состоит из главной формы, и нескольких модальных, вызываемых из главной. Запускается программа нормально, кнопочки реагируют на мышку, все контролы отрисовываются, короче все в порядке. При нажатии на кнопку, вызывается модальная форма. И все, дальше начинается фигня. Тут несколько вариантов. Окно (модальное) может просто не отрисоваться сразу (просто черный квадрат), может показаться нармально, но  кнопки не нажимаются, или нажимаются через раз, а через некоторое время приложение повисает. Если главное окно не трогать после запуска проги, то через какое-то время (небольшое) происходит тоже самое уже с ним.

    Что делал.
    После плясок с бубном (включение\отключение различных опций компилятора, удаление манифеста и т.д.), которые никак не помогли, утащил к себе комп, поставил делфи. из под среды делфи все  работает нормально. Просто так - нифига! Скачал последнюю версию GRushControls для KOL 3.00+, немного подрихтовал, скомпилил - эффект нулевой. Проект рализован так, что GRush можно отключить. Отключил - все работает.

    Мысли.
    Возникает ощущение что это проблемы с обработкой сообщений Windows, т.е. они не доходят до окна, а если доходят то не все. Только куда они деваются и почему только GRushControls так реагирует.

    В общем я в напонятках. Может у кого какие мысли есть?

    P.S. OS: WinXP, Delphi7, KOL 2.90
    PP.S. KOL 3.x не ставлю пока т.к. там вроде проблемы со списками\сортировкой и.т.д. были. Мне это критично, а сидеть тестировать сейчас времени нет. Это я к тому что не нужно говорить: "используй KOL 3, и будет тебе счастье!".
  • Vladimir Kladov © (19.02.11 19:37) [1]
    Никто не заставляет ставить навсегда новую версию. Но можно положить в отдельную директорию, в проекте указывать, где брать исходники KOL. 2 раза прописать, потом только из комбо выбирать. И смотреть на разницу.

    Если пробема с сообщениями, то их можно в лог посбрасывать, и посмотреть что происходит. Если что, это можно сделать даже не меняя код в KOL.pas: DEBUG_MONITOR_MESSAGES, и назначить обработчик OnMonitorMessage. Правда, это только в последних версиях. Можно и прямо в WndFunc прописать запись в журнал всех (нужных) сообщений по определенным условиям (например, при включенном Caps Lock, чтобы не гигабайты потом изучать).

    А то, что из-за установленного на компе софта такое может быть - в принципе, возможно. Типа заменителя десктопа Aston или еще какого.
  • mdw (21.02.11 13:19) [2]

    > А то, что из-за установленного на компе софта такое может
    > быть - в принципе, возможно. Типа заменителя десктопа Aston
    > или еще какого.

    Возможно, то возможно. Вот только почему только на GRushControls проявляется?! Та же самая программа скомпиленная без GRushControls работает на ура...
  • Vladimir Kladov © (21.02.11 15:57) [3]
    Там иногда используются api-функции, которые могут работать не всегда. Какой-нибудь патчер для поддержки расширенных тем может заменять системне библиотеки своими. В опции посмотрите, где-то отрисовку можно заменить на самописанную, изменением опций компиляции.

    Вообще, я не очень понял, что именно не работает: только рисование, или нарушается функциональность, или юзабилити из-за некачественной отрисовки падает, или вообще вешается и падает. Это поддается отладке, хотя бы в режиме удаленного отладчика (и даже лучше именно в этом режиме)? Можно как-нибудь отследить проблемный участок, если не в отладчике, то, например, отрезая часть функций рисования (заменяя градиент "плоской заливкой", удаляя "живую реакцию на мышь" и т.д.

    А автор не отвечает на е-мейл? Вроде как с год назад он форум заходил.
  • mdw (21.02.11 17:44) [4]
    Вешается, но не всегда сразу, иногда работает несколько секунд.:) Но не падает, просто виснет и только уже снимать задачу.

    Буду ковырять. Примерно по этому пути и шел...
  • mdw (22.02.11 11:15) [5]

    > У меня на сайте лежит старый достаточно уже Zoomer, он сделан с Grush
    > (режим dual). Можете его запстить - упадет или нет, на той же машине?
    > Просто интересно. Вдруг дело все-таки в версии KOL, и тогда что-то было
    > устойчивее.


    Нашел c GRushControls Zoomer501C.  Виснет практически сразу при запуске установки (SetupZoomer501C.exe). Потом еще пару своих программ c GRushControls запустил - тоже самое.
    Потом залогинился под другим именем (своим), и все сразу заработало! Короче, как всегда виноват оказался не в меру одаренный пользователь, чего то там настроил...:)
    Желание разбираться дальше что-то пропало. Хотя зарубочку в памяти нужно сделать, что GRushControls могут подвешивать приложение при каких-то условиях.

    Всем спасибо за помощь. Тему можно закрывать.
  • mdw (28.02.11 18:23) [6]
    Предыдущий пост - фигня. Проблема была в другом. Там всё валилось, в смысле все программы.

    Но все же вычислил условия возникновения проблем, описанных в первом посте. Возникает если AlphaBlend <> 255, т.е. форма полупрозрачная. Причем на любой машине, просто никто не использовал полупрозрачность, поэтому и не заметили раньше. Правда тестовый пример сделать толком не получилось - возникает редко, если разгрузить форму...
    В общем убрал полупрозрачность (зачем вообще делал?) - проблемы исчезли. Причины понять не удалось.
 
Конференция "KOL" » GRushControls неустойчивая ошибка
Есть новые Нет новых   [120354   +32][b:0][p:0]