Программирование под Palm OS: Урок 1. Знакомство с CodeWarrior и Constructor’ом

Программирование под Palm OS: Урок 1. Знакомство с CodeWarrior и Constructor’ом

15.11.2002

Автор: Ронин Виктор
Источник: ladoshki.com

Итак, если вы достали все, что было написано в уроке 0, то начнем....

Первое, что вам необходимо сделать — это
инсталлировать CodeWarrior. Запустите его. Не буду особенно вдаваться в
то, как его инсталлировать — все, что нужно делать — это соглашаться со
всем, что он предлагает. И буквально через 10 минут вы будете иметь
доступ к CodeWarrior’у через меню Start->Programs->Metrowerks
CodeWarrior->CodeWarrior for Palm OS V6.0 (** или Lite или
V8.0)->CodeWarrior IDE. Запустите его и посмотрите на серые просторы
CodeWarrior’а.

Можете его временно закрыть, и разберемся теперь с эмулятором. Все что
нужно — это развернуть Emulator в какую-нибудь директорию и туда же
развернуть (если он запакован) или скопировать какой-нибудь из ROM’ов.
Теперь запустите Emulator.exe. Он должно запросить добавление в меню
Start себя (Emulator) — выберете, куда вам его добавлять. Дальше
появиться форма, в которой надо выбрать ROM, для этого необходимо
щелкнуть на ListBox справа от строки Rom file. Выбрать other, а после
этого выбрать распакованный вами ROM file. В поле Device появиться —
название Palm’а который храниться в этом Rom’е. Остальное оставляйте в
таком виде как есть и нажимайте на кнопку Ok.

И вот перед вами Palm Emulator. Если вы еще не сроднились с Palm’ом то
пощелкайте кнопочки внизу эмулятора и по экрану эмулятора (аналогично
щелканью стилусом по экрану Palm’а), посмотрите как он реагирует на
это, разберитесь как запускать на нем программы. Кстати документация по
Emulator’у лежит в поддиректории Docs, расположенной в папке, куда вы
распаковали Emulator. Там есть файл UserGuide.pdf, который описывает,
как пользоваться Emulator’ом (его читать не обязательно, особенно если
вы знакомы с Palm’ами). И еще... Если вы захотели поставить на Emulator
дополнительную программу, нужно нажать правую клавишу, выбрать Install
Application/Database -> Other и выбрать файл .prc (Palm Resource
файл — выполняемый файл для Palm’а) или .pdb (Palm Database — файл
данных для Palm’а).

Итак, вы уже видели CodeWarrior и Emulator. Теперь пришло время
создать свою первую программу. Как принято во всем мире, первая
программа на любом языке программирования должна показать на экран
Hello World. Вот этой задачей мы и займемся на этом уроке.

Итак, вернемся в CodeWarrior. Первое, что надо сделать — это создать
новый проект, проект. Проект — это набор файлов (С++ файлы, файлы с
нарисованными формами и т.п). Для это выберите пункт меню файл — New. В
появившемся окне выбирайте Palm OS 3.1 (English) Stationary (* либо
Palm OS Application Stationary, в зависимости от версии CodeWarrior). В
поле Location введите директорию, в которой вы будете хранить все свои
проекты (пусть это, например, будет С:PalmWork. В Project Name наберите
HelloWorld1 и нажмите Ok. После чего, в появившемся окне, выберите Palm
OS C App и нажмите Ok. В дальнейших уроках будут более подробно
объяснено, зачем и что было выбрано. Появятся два окна — Project
Messages, которое можно сразу закрыть и окно проекта HelloWorld1.mcp.

Первым делом научимся компилировать программу и устанавливать ее на
эмулятор. Для этого нужно нажать F7 находясь в CodeWarrior’е и имея
открытое окно проекта *. После чего открываем эмулятор, делаем Install
Application и выбираем Starter.prc, который теперь лежит в выбранной
вами дирректории Location + ProjectName (тоесть С:PalmWorkHelloWorld1),
** либо в С:PalmWorkHelloWorld1Obj. Дальше на эмуляторе найдите в
Launcher’е приложение с названием Starter. Запустив его вы увидите
пустую форму (фактически, Palm’овое понятие формы равно понятию окна в
Windows) c заголовком «StarterApp». Кроме того, в меню есть пункт
About, который показывает форму About.

Вот такую программу CodeWarrior делает в виде заготовки для вас. В
рамках этого урока основная наша задача — поменять в пустой форме
заголовок «StarterApp» на заголовок «Hello World», а также показать
текст «Hello World» в этой же форме, но уже не в заголовке, а по
середине формы.

В окне проекта есть три закладки — Files,
Segments, Targets. Пока, что нам нужна только закладка Files. В ней мы
видим 3 папки — AppSources (** Sources) , AppResources (** Resources) и
Palm OS Device,которая вам временно не понадобиться. В AppSources
хранятся все C файлы, в AppResources хранятся файлы ресурсов,
содержащие формы и другие элементы управления.

Раскроем папки AppSource и AppResources путем нажимания + слева от них.
В них вы увидите файлы Starter.c (здесь, собственно, находится код
вашей программы) и Starter.rsrc (здесь находятся визуальные ресурсы
программы*).

Для того, чтобы просмотреть код программы надо дважды щелкнуть на
Starter.c — в появившемся окне вы увидите программу вполне не маленьких
размеров (особенно если ее полистать) — не надо сразу хвататься за
голову и кричать, что ничего не понятно. На данный момент полное
понимание этих строк пока не обязательно. Теперь можно закрыть это окно
и сделать двойной щелчок на Starter.rsrc. С небольшой задержкой (в
зависимости от мощности вашего ПК) появится Constructor for Palm OS.
Программа для редактирования визуальных ресурсов программы.

В левой части экрана появится окно с название Starter.rsrc. В этом окне
видно разбиение на Forms, Alerts, Menu Bars, Menus, Strings, String
Lists и т.п.
На данный момент нас интересует только форма «Main», находящаяся в
разделе Forms. Дважды щелкнем на нее, в появившемся окне показана форма
Main (не правда ли она похожа на то, что мы видели в Emulator’е).
Собственно, это и есть ее заготовка, которая потом будет вставлена в
программу и показана. Слева от изображения формы есть много разных
настроек. Это настройки размеров формы, ее заголовка и некоторых других
настроек. Щелкнем в поле Top Origin (на число слева от него) и запишем
туда 20. Видите, заголовок формы сместился? Это значит что верх нашей
формы теперь начинается не с самой верхней точки (с номером 0), а с
двадцатой, сверху, точки. Тоже самое можно сделать и с Left Origin и
форма сместится вправо. Дальше зайдем в поле Form Title и введем туда
«Hello World ”. Собственно сейчас мы выполнили половину урока. Дальше
надо сохранить изменения, внесенные в эту форму, для этого выбирайте
File->Save в меню окна Constructor for Palm OS. После этого можно
закрыть Constructor. Теперь надо заново скомпилировать программу (нажав
на F7), установить ее на эмулятор (Install), запустить ее и увидеть
изменения. Ура!!! Вы только, что пополнили ряды программистов под Palm
OS.
Теперь стадия 2, вам нужно показать на форме Hello World (не в
заголовке). Сейчас я расскажу один из способов это сделать, хотя их
достаточно много. Двойным щелчком зайдите в Starter.c в проекте
HelloWorld1. Дальше щелкните по значку {} в левом верхнем углу окна
редактирования программы. Выпавший список — это список всех функций в
.c файле. Выберите функцию MainFormHandleEvent. Этим самым вы перешли
на первую строку функции MainFormHandleEvent. Фактически эта функция
отвечает за то, что будет делать программа в форме Main. И мы сейчас
сделаем так, чтобы при показе этой формы на ней показывалось «Hello
World». Спуститесь, в функциях, до строки case frmOpenEvent — дальше
расположены строки, которые ответственны за действия, происходящие при
открытии (показе *) формы. Вставьте новую строку после строки
FrmDrawForm(frmP); и впишите туда

 WinDrawChars(«Hello World», 11, 20, 20);

Теперь разберемся, что вы вписали. WinDrawChars — это функция
которая отвечает за вывод (показ*) текста на экран, «Hello World» — это
то, что вы хотите вывести, 11 — это кол-во букв, которые вы хотите
показать, 20 и 20 — это сколько отступить точек от левого верхнего угла
формы по горизонтали и вертикали при показе надписи.
Дальше, как обычно, нажимаете F7, устанавливаете на эмулятор
обновленную программу и смотрите результат. Вы увидите форму с
заголовком и надписью Hello World. Итак, вы освоили первый урок, и
готовы переходить к второму.
Есть вероятность, что при нажатии F7, выпадет окно (с рисунком руки на
красном фоне) и с ругательными надписями про ошибку. Пока что для
исправления ошибки вам легче всего будет удалить ту строку, которую вы
вписали и вставить ее заново более аккуратно (не пропуская ; в конце).
Если и в этом случае обнаружатся ошибки, то напиши, что там за ошибка,
мне. Я расскажу, какие шаги надо повторить или сделать точнее, чтобы ее
избежать.

Итак, подведем краткие итоги первого урока.

Вы знаете как :

  • Запускать CodeWarrior и Emulator
  • Изменить заголовок формы
  • Компилировать проект в CW (сокращение от CodeWarrior)
  • Вывести фразу на открытие формы
  • Устанавливать программы на Emulator

Если вы обнаружили, что не помните, как делать какой-то из этих пунктов, прочтите соответствующую часть урока еще раз.

В следующем уроке вы познакомитесь с разнообразными элементами
управления. Научитесь их добавлять в форму, и писать код обработки
событий произошедших при использование этих элементов управления
(нажатие на кнопки и т.п.)

Итак, урок первый окончен.