Отличный вопрос.
Я разрабатывал свое приложение более 10 лет, начиная с Delphi 2, 3, а затем 4, а затем оставался там и ждал много лет , чтобы перейти на Delphi 2009 , потому что Unicode был необходим. Я обновлю еще раз, когда выйдет 64-битная версия.
Итак, я ознакомился с целым рядом операционных систем: Windows 98, Windows 2000, XP, Vista и теперь 7. Каждый из них несколько нарушает ваш пользовательский интерфейс, но Delphi был довольно хорош в этом. В какой-то момент вы должны решить, что больше не можете поддерживать более старые ОС, и переход на Unicode окончательно исключает Windows 98 из моего списка поддерживаемых.
Как правило, я обнаружил, что ядро Delphi обеспечивает наилучшую поддержку пользовательского интерфейса. Может показаться, что некоторые сторонние пакеты предоставляют больше, но их несоответствия являются более серьезными проблемами, чем их преимущества. Минимизируйте другие пакеты, где вы можете.
Единственная цель пользовательского интерфейса, которую я поставил, - это использовать программу с логотипом Windows Vista, а в последнее время - программу Windows 7, и Microsoft действительно предоставляет много информации о том, какими должны быть стандарты. соотнесите ваши условия с 1 по 7 в вашем вопросе. Но в конечном итоге заставить программу Delphi использовать манифест и пройти через обходы Microsoft не стоило хлопот и затрат, тем более что моя несовместимая программа прекрасно работала на Vista и 7.
Работа моей программы и внешний вид интерфейса в Windows XP, Vista и 7 при разработке на 64-битной машине Vista означает, что я использую виртуальную машину Microsoft, когда мне это нужно. Мне сказали, что моя программа также работает на Wine, так что это еще один тестовый компьютер.
Теперь отвечаю на ваши вопросы:
а) Delphi 2010 приносит что-то новое в таблицу, чтобы помочь в этой ситуации?
Да. Каждая версия добавляет новые компоненты VCL, которые были добавлены в новые ОС. например Добавлены новые интерфейсы Windows 7.
б) Должны ли мы выбрать комплект компонентов послепродажного обслуживания и положиться на них для решения всех этих проблем? И в) Должны ли мы использовать механизм скининга вторичного рынка?
Как я уже говорил выше, я думаю, что лучше делать это в самом Delphi, чем в стороннем пакете.
d) Возможно, лучше использовать графический интерфейс типа html. Можем ли мы создать относительно сложное графическое приложение с HTML, которое не требует использования браузера? (предпочитаю держать это на основе формы)
Мое приложение похоже на текстовый процессор с форматированным текстом. Я посмотрел на наборы редакторов на основе HTML, и есть несколько, но я не думаю, что это путь для настольного приложения. Если вам нужно веб-приложение, вам лучше использовать .NET и Prism.
e) Должны ли мы просто опускать руки и кодировать каждый из этих сценариев и перестать ссориться по этому поводу?
Обновите до Delphi 2010 первым. Вы обнаружите, что Delphi сама справится с большинством таких ситуаций за вас.
f) И, наконец, как в мире мы должны испытывать все эти условия?
Делать это самостоятельно - большая задача, даже с виртуальными машинами. Вам нужно иметь открытую бета-версию и привлечь как можно больше разных пользователей в разных средах, чтобы протестировать вашу программу для вас. Затем вы будете обрабатывать все среды, которые наиболее важны для ваших пользователей.
Теперь, если вы считаете, что обеспечить совместимость пользовательского интерфейса в разных средах Windows сложно, просто подождите, пока Embarcadero выпустит версию Delphi, которая будет компилироваться для Mac. Ваши нынешние опасения по поводу пользовательского интерфейса покажутся тривиальными по сравнению с тем, чем он тогда станет.