Конференция "Прочее" » Что за проблема с кнопками?
 
  • sniknik © (08.09.10 10:01) [0]
    Прислали скриншот на котором в программе не видны кнопки со статусом  Enabled = false, т.е. вместо того чтобы "дизейблиться" кнопка пропадает (остается видимым небольшой "артефакт" в виде символа подчеркивания на месте Caption-а).

    Что это может быть? Кто-то сталкивался?

    Прога на Delphi 7. Кнопка простая типа TButton. Используется манифест (важно т.к. на скриншоте "настроечной" утилитки без него такие нормально видны в дизейбленном виде). Замечено на оси Windows 7.

    Причем люди не видят в этом проблемы, говорят "у нас бывает, не только в вашей программе", но мне как бы самому интересно, особенно если можно исправить (не менять все на TBitBtn, а с тем что есть. т.е. не уйти о нее, а решить, разобраться в причине, а то может не только на кнопки влияет...).
  • Омлет © (08.09.10 10:39) [1]
    Может стоит тема какая-нибудь хитрая, где цвет задизабленной кнопки совпадает с цветом фона.
  • sniknik © (08.09.10 10:53) [2]
    Было предположение, что типа яркость вывернута так что серый фон сливается со светло серым, но "артефакт" яркого черного цвета, такого же как символы на соседней активной...
    Т.е. с "цветами" это вряд ли. Тогда бы ничего видно не было (на дизейбленных нет яркого, да и символа подчеркивания тоже, также в каптионе нет символа &)

    Но тема действительно отличается от стандартной(аэро) и классической (as 2000-ый), не знаю какая (и не узнаю, т.к. "та сторона" просто отмахивается, типа "ну не видно кнопок на которые нельзя нажимать, ну и что, проблема была бы если было не видно тех на которые можно...").
  • Inovet © (08.09.10 10:54) [3]
    > [1] Омлет ©   (08.09.10 10:39)
    > Может стоит тема какая-нибудь хитрая, где цвет задизабленной
    > кнопки совпадает с цветом фона.

    Бывают любители ручками цвета покрутить, криво естественно.
  • Омлет © (08.09.10 11:10) [4]
    Интересно бы на скриншот глянуть.
  • И. Павел © (08.09.10 11:13) [5]
    Удалено модератором
  • И. Павел © (08.09.10 11:14) [6]
    Удалено модератором
  • sniknik © (08.09.10 11:22) [7]
    > Интересно бы на скриншот глянуть.
    Придет человек на компе которого его видел попрошу переслать мне,  выложу.

    > Может быть просто программа в это время не отвечала и не перерисовывались окна?
    И при этом осуществляла ввод, и после корректных данных "енейблила" кнопку и она становилась видимой... Нет.
    Было бы все так просто не спрашивал бы. И потом это не единичный случай (судя по их реакции), и не в единственной программе программе.
  • 12 © (08.09.10 15:28) [8]
  • sniknik © (08.09.10 19:40) [9]
    Похоже, но... Alt не нажимают, вообще все действия мышкой, и контролы пропадают только "дизейбленные" (и появляются при "раздизейбливании" также без нажатий). а тут вроде про обычные речь.

    Но может, вариация (если от видео зависит), может там на компе Alt залип... В любом случае проверю (как понял должно повториться и на другом висте/7, если Alt зажать. т.е. это уже можно проверять, не скриншот ;)).
  • MonoLife © (09.09.10 08:34) [10]
    Дык.. кнопки, поди, имеют самописные иконки (glyph).. можно так нарисовать, что кадр рисунка для статуса disable просто не будет виден, либо виден частично - > небольшой "артефакт"
  • Омлет © (09.09.10 08:41) [11]
    > MonoLife ©   (09.09.10 08:34) [10]
    > Дык.. кнопки, поди, имеют самописные иконки (glyph)..


    Сказано же: "Кнопка простая типа TButton."
  • sniknik © (09.09.10 10:03) [12]
    > Сказано же: "Кнопка простая типа TButton."
    Ага, к тому же сказано, что хочется исправить причину, а не "не менять все на TBitBtn". Можно понять, что "самописные"(переписанные Борландом) как раз таки работают.

    Но вообще проблема именно та на которую ссылка в [8] от 12. :о) Удалось повторить, а значит наполовину решить(по ссылке и варианты решений есть)... Отличие в мелочи, просто путаница, кнопки действительно исчезают по Alt... именно так как описано, все (+ еще там пару простых, базовых контролов), просто дизейбленные не восстанавливаются в последующем событии перерисовки (нет к ним событий). Т.е. если Alt зажат при создании то кнопки сразу в таком виде, все, но после оншоу/паинт не дизейбленные перерисовываются уже нормально.
    На XP то же действие (нажатие альт) выливается в то, что кнопки без подчеркивания (быстрого выбора)  становятся с подчеркиванием (для проверки кому интересно)... т.е. винда что-то меняет везде, и только на win7 это приводит к печальным (не для всех) последствиям.

    ИМХО неплохо, по одному мельком виденному скриншоту, при нежелании клиентов... :о)
    Спасибо.
  • sniknik © (09.09.10 10:32) [13]
    > и только на win7
    + Vista, там дела еще хуже чем на win7. Может повторяться по нескольку раз, на win7, если кнопка успела нормально прорисоваться, то больше не исчезнет.
    Но, зато тестить удобнее. ;о)
  • Darvin (10.09.10 14:44) [14]
    У меня была подобная проблема, пропадали некоторые кнопки и TLabel с форм.
    Решилась переводом приложения на D2009
  • sniknik © (10.09.10 15:36) [15]
    Ради пары строк кода 2009-й покупать? (решение есть в ссылке, и не одно, там как минимум пара рабочих вариантов)
    Нет, это только если понадобится юникодность программ.
  • 12 © (10.09.10 15:41) [16]
    а у меня другая проблема была -

    программа под w7 имеет нормальный, русский интерфейс.
    Русские caption на кнопках, tLabel и проч. и на верхнем уровне mainmenu
    а вот на втором уровне - кракозябры

    Файл                          Правка
      №;?:;%:;?                     ?:*?:*?:*:?
      *?:%*:%*:%                 *%*%*?*?:?
      :?%*%*:%*



    Читал на каком -то форуме совет про charset, поставить во все формы - все переставил как советовано - бесполезно..

    плюнул.
    вообще второй уровень снес, на toolButton все сделал - вроде нормально, кто под XP  - просят и им сносить, побольше батонов сделать, вроде де так быстрее и понятнее, не надо гадать что в каком item верхнего уровня сидит.
  • sniknik © (10.09.10 16:24) [17]
    > все переставил как советовано - бесполезно..
    Это советовали?
    "Панель управления"->"Язык и региональные настройки"->"Дополнительно". Выбрать "Русский" в выпадающем списке "Язык программ, не поддерживающих Юникод"
  • 12 © (10.09.10 16:51) [18]

    > Это советовали?
    > "Панель управления"->"Язык и региональные настройки"->"Дополнительно".
    >  Выбрать "Русский" в выпадающем списке "Язык программ, не
    > поддерживающих Юникод"

    не помню
    но уже не важно, уже утвердили интерморду.
    но на будущее запомню(проверить прямо сейчас не могу), спасибо
 
Конференция "Прочее" » Что за проблема с кнопками?
Есть новые Нет новых   [134431   +13][b:0][p:0.001]