Добро пожаловать на MidletPascal - а теперь еще скоро и Android и Iphone...
Авторизироваться
Меню сайта
Категории раздела
Для начинающих [16]
С этих статей вырасли все, кто сейчас программирует на MP. Именно с этих статей надо начинать новичку, качество у них не всегда хорошее, но почитать стоит.
Разбираем.Обьясняем [1]
В этой категории обьясняем, разьясняем библиотеки,примеры,мидлеты и т.д.
Прочее [4]
Прочее, что не касается программирования: как настроить MP, что нужно для работы и др...
Наш опрос
Вы программируете на MP?
Всего ответов: 616
Мини-чат
200
Статистика

Онлайн : 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Midlet Pascal » Для начинающих

Делаем книгу

Скачать пример Java-книги к статье

Сетевые закрома WAP-серверов ломятся от мобильного Java-контента: всевозможные игры, полезные и не очень программы, каталоги, слайд-шоу, книги и др. При желании из обычного телефона удастся получить машинку, лишь немного уступающую по функциям полноценному «умнику» — смартфону. Минус массового контента в том, что он ориентирован исключительно на популярные бренды. Обладателям менее тиражных, но по-своему уникальных мобильных от Fly, Sagem, Voxtel и др. приходится испытывать судьбу и загружать приложение, рассчитанное на другой аппарат, иногда с иным разрешением экрана.

Здорово, если бы мы смогли с минимальными затратами времени и без специальной подготовки собирать Java-приложения для собственного телефона... Эта возможность есть и называется MIDletPascal! Конечно, состряпать за пять минут игрушку или чрезмерно сложное приложение не получится: это процесс трудоемкий. Особенно для мало знакомых с программированием. А вот сделать Java-книгу со свежим фантастическим романом или слайд-шоу, к примеру из шпаргалок, под силу обычному пользователю. Мы расскажем именно о создании книжки. Прочесть о создании Java-шпаргалок на основе других программ можно здесь.

Экипируемся

  • Бесплатная программа MIDletPascal 2.02, скачать (2,2 Мб).
  • Бесплатный эмулятор MidpX J2ME Emulators Package, скачать (1,74 Мб).
окно приветствия MIDletPascal

Окно приветствия MIDletPascal

MIDletPascal — паскалеподобный язык программирования, предназначен для разработки мобильных приложений. Компилятор MIDletPascal транслирует исходный текст на Паскале в код Java micro edition (J2ME). Программы MIDletPascal могут исполняться любым мобильным телефоном с поддержкой платформ MIDP 1.0 и CLDC 1.0.

Java - интерпретируемый язык программирования, то есть программы на нём требуют дополнительного приложения - интерпретатора. Почти на каждом телефоне установлена собственная виртуальная Java-машина, которая переводит код Java-программы в понятные данному телефону инструкции. Поэтому одни и те же Java-программы удаётся запускать как на современных Windows Mobile коммуникаторах, так и на простеньких телефонах.

Разработка мобильных приложений с использованием MIDletPascal — простой и быстрый процесс. Если уже знакомы с Паскалем, Delphi или Kylix, вы можете начать разработку собственного мобильного приложения в считанные минуты.

MIDletPascal поставляется с собственной, дружественной к пользователю средой разработки (IDE) для ОС Windows (98/2000/XP). Среда имеет встроенный компилятор, инспектор кода Java и обеспечивает построение архива JAR. В итоге компиляция и компоновка мидлетов (Java-программы) проста, как нажатие на кнопку.

Поскольку MIDletPascal создает непосредственно низкоуровневый код Java, полученные мидлеты имеют небольшой размер и эффективное время исполнения. Аналогичные средства, которые можно найти в интернете, создают промежуточный код и компонуют его в архив JAR вместе с интерпретатором; при подобном подходе получаются большие и медленно исполняющиеся JAR-файлы.

Эмулятор MidpX J2ME Emulators Package

Эмулятор MidpX J2ME Emulators Package

Эмулятор MidpX интегрируется в ОС Windows «Проводник» и браузер Internet Explorer. С этого момента JAD- и JAR-файлы запускаются одним кликом.

MidpX эмулирует устройства с профилем MIDP 2.0 и конфигурацией CLDC 1.0. Следует отметить поддержку мультимедийных функций, кириллицы и интерфейсов (API) Nokia UI и Nokia Sound. Эмулятор позволяет сглаживать шрифты, управлять контрастностью и яркостью экрана и настраивать массу других параметров. Есть возможность замедления выполнения мидлетов.

Схема работы MidpX:

1. Запуская мидлет, пользователь передает управление консольному конвертеру.

2. Консольный конвертер генерирует исполняемый EXE-файл эмулятора.

3. EXE-файл автоматически выполняется в системе, а на экране компьютера мы видим виртуальный телефон с запущенным Java-приложением.

Управление виртуальным телефоном сродни настоящему. Нажимать клавиши можно мышкой либо при помощи клавиатуры компьютера. В меню Options предусмотрен ползунок для регулировки громкости звука.

Структура книги

Что такое книга? По сути — массив текста, разбитый для удобства на главы, которые, в свою очередь, иногда делятся на подглавы или параграфы. Представим содержание книги с помощью вложенных списков:

Книга

  • o     Глава1
  • §     Параграф1_1
  • §     Параграф1_2
  • §     Параграф1_3
  • §     Параграф1_4
  • o     Глава2
  • §     Параграф2_1
  • §     Параграф2_2
  • o     Глава3
  • §     Параграф3_1
  • §     Параграф3_2
  • §     Параграф3_3
  • o     Глава4
  • §     Параграф4_1
  • §     Параграф4_2
  • §     Параграф4_3

Кроме самого текста, удастся вставить обложку, оглавление, аннотацию и др.

Работа с книгой представлена на блок-схеме (для простоты книга разбита только на главы):

схема работы с книгой

Cхема работы с книгой

После запуска книги на экране телефона увидим сначала ее лицо — обложку, а затем оглавление. После выбора главы у нас есть два варианта: читать ее или вернуться к списку. И, конечно же, никто не мешает в любой момент времени закрыть книгу.

Создаем проект

Запускаем MIDletPascal. Выбираем в меню «File» пункт «New Project...», в появившемся диалоговом окне кликаем по типу проекта «Default MIDP project». Задаем имя проекта (скажем, «Book») и путь (скажем, «C:\Program Files\MIDletPascal\Projects\»). Когда все выбрано, нажимаем «Create».

Cоздание проекта

Cоздание проекта

Теперь на экране представлена рабочая область, состоящая из трех окошек. Левое окно — «Files» — содержит информацию о файлах нашего проекта. Правое окно содержит закладку «Book.mpsrc», предназначено для ввода текста программы, текстовых ресурсов и редактирования графических ресурсов. Нижнее окно — «Build output» — отображает информацию об ошибках в тексте программы после компиляции.

Очищаем область текста программы и копируем туда приведенный код.

Program Book;

Var

s, d: Array[1..4] Of String;

r, m: Array[1..4] Of Integer;

i, j, index: Integer;

img: Image;

res: Resource;

heads, clicked, exit: Command;

line, buf, str, f: String;

Function StrToUtf8(s: String;): String;

Var i, c: Integer;

ch: Char;

ss: String;

Begin

If (pos(s,chr(65488))<>-1) Or (pos(s,chr(65489))<>-1) Then

Begin

For i:=1 To Length(s) Do

Begin

ch:=GetChar(s,i-1); c:=ord(ch);

If c=65488 Then

Begin

ss:=ss+CHR(ord(GetChar(s,i))-64384);

i:=i+1;

End

Else

Begin

If c=65489 Then

Begin

ss:=ss+chr(ord(GetChar(s,i))-64320);

i:=i+1;

End

Else ss:=ss+ch;

End;

End;

StrToUtf8:=ss;

End

Else StrToUtf8:=s;

End;

Procedure Choise;

Var

j: Integer;

OK, clicked: Command;

Begin

ShowMenu('Оглавление', CH_EXCLUSIVE);

For j:=1 To 4 Do r[j]:=MenuAppendString(s[j]);

OK := CreateCommand('OK', CM_OK, 2);

AddCommand(OK);

repeat

clicked := GetClickedCommand;

until clicked = OK;

end;

Procedure ReadWrite;

Var

j: Integer;

Begin

For j:=1 To 4 Do

Begin

If MenuGetSelectedIndex = r[j] Then

Begin

res := OpenResource(d[j]);

for i:=1 to 4 do

Begin

f:= ReadLine(res);

buf := StrToUtf8(f);

line:=line+buf+chr(10);

i:=1;

if buf = '###' then

begin

i:=4;

line:=Copy(line, 0, Length(line)-5);

end;

End;

CloseResource(res);

End;

End;

End;

Procedure OutOfText;

Begin

For j:=1 To 4 Do

Begin

If MenuGetSelectedIndex = r[j] Then

Begin

ShowForm;

m[j] := FormAddString(line);

j:=4;

End;

End;

End;

BEGIN

ShowCanvas;

Repaint;

img:=LoadImage('/1.png');

DrawImage(img, 0, 0);

Repaint;

Delay(1000);

img:=LoadImage('/2.png');

DrawImage(img, 0, 0);

Repaint;

Delay(1000);

s[1]:='Глава1';

s[2]:='Глава2';

s[3]:='Глава3';

s[4]:='Глава4';

d[1]:='/data1.txt';

d[2]:='/data2.txt';

d[3]:='/data3.txt';

d[4]:='/data4.txt';

Repeat

Choise;

ReadWrite;

ClearForm;

OutOfText;

line:='';

exit := CreateCommand('Закрыть', CM_EXIT, 1);

AddCommand(exit);

heads := CreateCommand('Оглавление', CM_SCREEN, 1);

AddCommand(heads);

clicked := GetClickedCommand;

Repeat

Delay(100);

clicked := GetClickedCommand; If clicked = exit Then Break;

Until clicked = heads;

Until clicked = exit;

ClearForm;

ShowForm;

index := FormAddString('На выход...');

Delay(3000);

END.

Если хотите изменить число глав книги, обратите внимание на выделенные красным цветом участки кода. Например, если глав ожидается семь, надо участок s, d: Array[1..4] Of String; превратить в s, d: Array[1..7] Of String;. Ниже потребуется добавить строки: после s[4]:='Глава4' s[5]:='Глава5' и т.д.

Подготавливаем начинку

Следующий шаг — создание ресурсных файлов. Это графические файлы 1.png, 2.png (обложка книги, страница со словами автора, имеют размеры экрана вашего телефона, например 128х160 точек, и редактируются хотя бы в графическом редакторе Adobe Photoshop) и текстовые data1.txt, data2.txt, ..., dataN.txt (N — число глав будущей книги, например 4, сами файлы пока пустые). Создаем эти файлы в «Проводнике» в какой угодно папке, а затем добавляем их в наш проект: выбираем меню «Project», нажимаем «Import resource file...» и указываем полное имя файла (включая путь), жмем «Открыть». Добавив таким образом ресурсные файлы, убедитесь, что в окне «Files» каталог «Resource file(s)» содержит все необходимое.

Главы книги должны обязательно содержать текст. Чтобы его вставить, кликните дважды левой кнопкой мыши по текстовому файлу в окне «Files». В правом окне откроется вкладка с именем файла и его содержимым. Сюда и нужно копировать текст. Важно! Конец главы обозначается символом «###» и последующей пустой строкой.

Среда MIDletPascal

Среда MIDletPascal

Таким образом, нужно заполнить все четыре файла data1.txt, data2.txt, data3.txt, data4.txt.

Теперь осталось скомпилировать проект, нажав клавишу «F7» или кнопку меню с изображением молотка. Если в программе ошибок нет, появится окошко с надписью «Build finished succesfully»:

Компиляция завешилась успешно!

Компиляция завешилась успешно!

Результаты компиляции — два файла: JAR-архив book.jar и JAD-указатель на этот архив book.jad, которые находятся в папке C:\Program Files\MIDletPascal\Projects\Book\bin\. Архив готов к загрузке в мобильный телефон, но для начала следует испытать его на эмуляторе:

Обложка книги
Аннотация

Обложка книги

Аннотация

Оглавление, выбрана глава1
Текст главы 1, можно просматривать его, перейти к оглавлению или закрыть книгу. Выбрано «закрыть»

Оглавление

Текст главы 1

Сообщение о выходе

Сообщение о выходе

Загрузка приложения в телефон

Если телефон поддерживает загрузку Java-контента через кабель, загружайте файл book.jad или book.jar согласно инструкции к телефону (некоторые модели поддерживают только jar-архивы, другие требуют загрузки jad-файла). Если такая опция не предусмотрена, есть другой путь — WAP-обменники в интернете. Схема проста:

  • Заходим на сайт WAP-обменника с компьютера. Убеждаемся, что сайт позволяет загружать Java-приложения!
  • Регистрируемся если требуется.
  • Закачиваем файлы book.jad и book.jar на сайт.
  • Получаем код для загрузки с WAP-портала.
  • Используя WAP-браузер мобильного, загружаем в него book.jad или book.jar, используя полученный ранее код.
  • Устанавливаем Java-книгу!

Скачать пример Java-книги к статье

Автор: Касимов Роман

Источник статьи

Категория: Для начинающих | Добавил: KIR (09.02.2009)
Просмотров: 4505 | Комментарии: 8 | Рейтинг: 0.0/0
Всего комментариев: 8
30.04.2011 в 21:34 Спам
ОК, не работает
10.02.2011 в 10:01 Спам
Вставил код , нерабит :)
07.09.2010 в 09:58 Спам
Всё работает! Сам стормозил... ;-)
30.08.2010 в 07:43 Спам
пример к статье работает (вопросов нет), а сам код нет. в эмуляторе не работает "Ok".(clicked := GetClickedCommand;и следовательно не запускается процедура res := OpenResource(d[j]);)
27.08.2010 в 16:49 Спам
Запускается, только "Ok" не работает!
27.08.2010 в 17:07 Спам
Попробуйте скачать пример к статье
27.05.2010 в 23:30 Спам
нуб ты проста у меня лично все получилась
23.03.2010 в 04:40 Спам
Не робит!!! Эмулятор вообще не включается с ней, телефон выдает ошибку(((
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]