Где я могу найти документацию для фактического языка PowerBuilder. Я обращаюсь к виду кода, который Вы получаете при выборе "Источника Редактирования" из контекстного меню на живописце библиотеки. Не вид кода Вы обычно пишете.
Нет официальной документации на языке синтаксиса PowerBuilder, который вы видите, когда вы делаете редактирование источника. Большинство, которые работают с ним только что должны были использовать проб и ошибку, чтобы понять его. Раньше в новостях было задано в новостях о синтаксическом файле, поэтому для него можно построить анализ, но никогда не предусмотрено. Вот это сообщение, говорящее об этом
, я полагаю, что следующая версия PowerBuilder будет уходить от этого синтаксиса до более формата на основе XML (и перемещение из PBL в качестве двоичных файлов в текстовый формат).
Шаг 1
Обычно следует по мере возможности придерживаться «нормальных» типов: т. е. Последовательность и Char
Таким образом, код будет «автоматически» преобразован при обновлении.
ПРИМЕЧАНИЕ : Существует несколько специфических для приложения исключений.
Если вы этого не сделаете, вы, вероятно, столкнетесь с проблемой, возникшей у меня при обновлении библиотеки кода, в которой в некоторых местах использовался AnsiString. Это не было проблемой в старых Delphi, когда AnsiString = последовательность. Но очевидно это было проблематично, когда типы уже не были одинаковыми.
Шаг 2
Ознакомьтесь с инструкциями по переходу на Unicode Delphi 2009. В нем упоминаются функции, которые обычно используются при работе со последовательностями, поскольку предполагается, что каждый символ равен 1 байту. Принять к сведению эти положения и кодекс в соответствии с этими рекомендациями.
Шаги 3, 4 и 5
Избегайте использования условной компиляции. У тебя будет только больше головных болей.
Шаги 6, 7, 8, 9 и 10
Не пытайтесь повторно угадать компилятор путем переопределения его внутренних типов. Ты подвергаешь себя многим головным болям. Дело в том, что VCL, библиотеки времени выполнения и компоненты сторонних производителей имеют «понимание» того, что такое Последовательность . «Новое понимание» все еще будет использоваться при обновлении до Delphi 2009.
Если вы измените это определение, то все еще может работать в старой версии из-за неявной совместимости; однако это, вероятно, сломается ужасно, когда в Delphi 2009 вещи внезапно меняются.
Запомните! Тип используемой последовательности является важным фактором при вызове Windows API. Как правило, Windows поддерживает версии большинства функций Ansi и Wide. В старых Delphi версии Ansi используются по умолчанию; а из Delphi 2009 по умолчанию используются версии Wide.
Примечания
Относительно ваших опасений по поводу WeyString в разработке COM:
Более старые версии Delphi обеспечивают автоматический набор текста между String и WireString, что позволяет компилятору работать там, где он может. Очевидно, что ваши COM-интерфейсы должны быть объявлены с помощью WireString, но старайтесь избегать чего-либо сверх этого.
EDIT
Посмотрите на ссылку, предоставленную Хьюзом: Готовьтесь к Delphi 2009 и при разработке с Delphi 7?
Также, чтобы подчеркнуть: каждая новая версия Delphi пытается поддерживать некоторый уровень обратной совместимости (Delphi 2009 включен). Если вы просто закодируете «нормально», вы вряд ли окажетесь под большим влиянием . На самом деле обратное, как правило, верно; чем больше фантазии вы получаете, тем больше вероятность того, что вы столкнетесь с проблемами.
Единственные серьезные проблемы, которые у меня когда-либо возникали в перемещение с новыми версиями Delphi:
# Comment in the beginning of the file
По крайней мере, это делают встроенные модули Python. (выясняется при помощи grep 'Copyright '/usr/lib64/python2.4/* .py
)
PowerScript (язык, используемый в PowerBuilder) был расширен в PB12, но должен быть совместим с предыдущими версиями. Синтаксис PowerScript находится в грамматике ANTLR, поэтому создание документации из него должно быть достаточно простым. Если это было сделано, я не уверен, но я упомяну это для сотрудников компилятора (на данный момент команда разработчиков очень занята завершающими фазами PB12).