Проблемы с Bitbtn в Delphi 6 под Windows Vista

Давно работаю под Windows XP с Delphi 6 (а раньше под Win2k). Так как я недавно купил новый ноутбук, мне пришлось начать использовать Windows Vista.

Я установил Delphi 6. Когда бы я ни использовал компонент TBitBtn, я получаю сообщение об ошибке при запуске скомпилированной программы: например, ресурс BBOK не найден, ресурс BBcancel не найден и т. Д.

«Project Project1.exe вызвал класс исключения EReadError с сообщением« Ошибка чтения BitBtn1.Kind: ресурс BBCANCEL не найден ». Процесс остановлен. Для продолжения используйте Step или Run».

Сейчас у меня нет возможности попробовать запустить exe-файл на WinXP; однако мне удалось скомпилировать тот же код под WinXP, и созданный исполняемый файл отлично работал и под Windows Vista.

Есть ли какой-нибудь простой обходной путь, кроме обновления до более новой версии Delphi?

Заранее спасибо!


person Martin    schedule 27.12.2010    source источник
comment
Я бы не назвал переход на более новую версию Delphi обходным путем. Это просто устраняет причину проблемы.   -  person Uwe Raabe    schedule 27.12.2010
comment
Я получал редактирование ресурсов и проверял, действительно ли эти растровые изображения не найдены.   -  person Free Consulting    schedule 27.12.2010
comment
@Uwe Я сделаю это, если потребуется, но боюсь, что некоторые проблемы могут возникнуть при использовании вещей, которые я запрограммировал в Delphi 6. @user Спасибо за предложение, я попробовал какой-то редактор ресурсов и обнаружил, что нет растровое изображение BBOK в исполняемом файле, но оно содержит QBOK.   -  person Martin    schedule 27.12.2010
comment
Во-первых, @Uwe, мы не знаем, действительно ли другая версия устранит причину. И даже если это так, до тех пор, пока мы не определили причину, обновление все равно будет восприниматься как обходной путь.   -  person Rob Kennedy    schedule 27.12.2010
comment
@Rob, это только мое мнение, но запуск приложения 10-летней давности на современной ОС вызывает проблемы. Даже если вы определите причину этой конкретной проблемы, вы просто перейдете к следующей. Я сам не использую D6, а D5, а также D7 и D2007 - в ВМ с XP.   -  person Uwe Raabe    schedule 27.12.2010
comment
@Uwe Чепуха, я с радостью запускаю D6 на 64-битной Win7 вместе с D2010. Совместимость от MS отличная, сколько я себя помню.   -  person David Heffernan    schedule 27.12.2010


Ответы (1)


Это определенно не очень изящное решение, но эта проблема, похоже, работает после:

  • Копирование Buttons.pas и buttons.res из Sources \ Vcl в каталог с моим проектом.
  • Редактирование Buttons.pas для использования QBOK, QBCANCEL и т. Д. Вместо BBOK, BBCANCEL.

Спасибо за ваши комментарии.

person Martin    schedule 27.12.2010
comment
Ресурсы QB поступают из элементов управления CLX, которые никогда не следует использовать в программе VCL. Вы случайно использовали блок QButtons или один из других блоков Q? (Насколько я понимаю, справка может сбивать с толку, потому что не всегда ясно, что некоторые полезные функции доступны только с CLX, а не с VCL.) Если эти ресурсы подключаются к вашему проекту, то похоже, что у вас есть пути поиска неверны, или некоторые файлы Delphi находятся в неправильных местах. Вам не придется перекомпилировать стандартный Buttons.pas. - person Rob Kennedy; 27.12.2010
comment
Роб прав, вы почти наверняка где-то включили Q-модуль. - person David Heffernan; 27.12.2010
comment
Спасибо за ваши комментарии. Я, вероятно, буду работать с этим как с временным решением, так как я не могу найти проблему, о которой вы говорите в данный момент. Надеюсь, что в конце концов найду. - person Martin; 27.12.2010