Программирование под 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

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

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

 

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