Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > FAQ

FAQ Часто задаваемые вопросы

Ответ
 
Опции темы
Старый 18.12.2005, 17:18   #1
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Прежде всего нам понадобятся:

1. JAVA SDK
2. JAVA WTK
3. jGRASP
4. ну и MidletPascal для тестирования либ.
Примечание: JAVA WTK должен быть установлен после JAVA SDK

Далее я опишу последовательность создания либы, описанной в справочной системе MidletPascal, но буду использовать для этого Java IDE jGRASP.

Начнем с настроек jGRASP.

1. В Меню Settings->Compiler Settings выбираем пункт File.

2. В закладке Environment выбираем j2me - WTK1 generic и жмем кнопку Use.

3. Создаем проект j2me (Project->New->New J2ME Project), указываем путь и название проекта, убираем галочку с пункта Import Files Now.

4. Добавляем файл Java в проект, он будет содержать модуль, который мы потом подключим к MidletPascal. Для этого в меню Project выбираем пункт Add Files, заходим в папку \src\ нашего проекта, пишем название файла Lib_mylib.java и жмем кнопку Add. Слева в окне Open Projects под названием нашего проекта появится пункт Lib_mylib.java src\ . Щелкните по нему два раза и нажмите кнопку Create, для создания этого файла.

5. Теперь самая интересная чать... кодинг . В открывшееся окно вводим следующий код:

// Класс модуля НЕ ДОЛЖЕН содержаться в каком-либо архиве!!! 

// Имя класса должно начинаться с префикса Lib_ и все символы *
// идущие после L должны иметь нижний регистр 
public class Lib_mylib 
{ 
 *// Все функции должны быть статическими, и все символы 
 *// в функциях должны иметь нижний регистр 
 *public static int square(int val) 
 *{ 
 * *return val * val; 
 *} 

 *public static int count_numbers(String text) 
 *{ 
 * *int count = 0; 
 * *int i; 
 * *for(i = 0; i < text.length(); i++) 
 * *{ 
 * * *if ((text.charAt(i) >= '0') && (text.charAt(i) <= '9')) 
 * * * *count ++; 
 * *} 
 * *return count; 
 *} 
}
6. Настало время компиляции. В меню Build последовательно выбираем пункты Compile и Preverify.

Вот и все. Нащ модуль готов.

Теперь настало время его протестировать.

Для начала скопируем наш модуть из папки \classes\ нашего проекта в папку \Program Files\MIDletPascal\Libs\. Далее в MIDletPascal создаем новый проект и вводим туда следующий код:

program NewProject;
uses MyLib; 

var idx : integer; 
begin 
 *ShowForm; 
 * 
 *idx := FormAddString('5 squared is: ' + MyLib.square(5)); 
 * 
 *idx := FormAddString('There are ' + *
 * * * * * * * * * * * MyLib.count_numbers('a0b2c') + *
 * * * * * * * * * * * ' numbers in ''a0b2c'' '); 
 *Delay(5000); 
end.
Жмем кнопку Build and run и наслаждаемся результатом
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
dmitriy-dim (20.09.2010), Igor (09.04.2012), Nibbler (03.09.2008)
Старый 24.12.2005, 10:13   #2
Guest
 
Сообщений: n/a
Ага из хелпа пример работает. А больше 2к кода перестает видеть функции.
 
Ответить с цитированием
Старый 24.12.2005, 22:45   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Originally posted by Guest@Dec 24 2005, 10:13 AM
Ага из хелпа пример работает. А больше 2к кода перестает видеть функции.
Ну можно разбить либу на несколько , если конечно одна функция не больше 2-х кб
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dmitriy-dim (20.09.2010)
Старый 25.12.2005, 12:35   #4
pilgrim
 
Сообщений: n/a
Не не прикольно. Хочу разобраться где тут собака порылась. На java то все работает.
Ведь переношу функцию выше по исходному тексту и все начинает работать.
 
Ответить с цитированием
Старый 02.08.2006, 02:08   #5
dzaniss
AnyKey`щик
 
Регистрация: 02.08.2006
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Пишем либы для MidletPascal на JAVA

Я столкнулся с проблемой,как вытянуть имена записей RMS!?Вот и написал сам на яве и добавил к Lib_rsenum!Точку применил для скрытых записей,например имя .CONFIG не добавится в строку!

public static String list(int idx) {
StringBuffer s = new StringBuffer();
try{

String as[] = RecordStore.listRecordStores();
if(as != null)
{
for(int l = 0; l < as.length; l++)
if(as[l].charAt(0) != '.')
s.append(as[l]).append('|');

}

}catch(Exception e) {return "";}
return s.toString();
}


Только вот вопрос,не выходит таким образом s:= list(); Поэтому так и зделал,любую цифру вставлять s:= list(1); И спасибо piligrimu за его работу,я на ура применил его библиотеку для файлменеджера,но с байтами там нето что-то!
(Offline)
 
Ответить с цитированием
Старый 31.01.2007, 15:08   #6
EQ
AnyKey`щик
 
Регистрация: 29.01.2007
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Пишем либы для MidletPascal на JAVA

Ё-моё, у вас всё хорошо идёт, а у меня не компилится ни так, как в хелпе написано, ни так, как здесь сказано. У меня WTK25, как мне быть? Если так нужен WTK1, то где его взять? На сайте видел только 2.2...
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 16:12   #7
Fire_Phoenix
Оператор ЭВМ
 
Регистрация: 15.12.2007
Сообщений: 34
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Пишем либы для MidletPascal на JAVA

Я заметил, что после компиляции приложения, в jar архиве появляется FW.class, что это такое и откуда берется? Если заглянуть в справку, то там этот же файл использовался для написания своей библиотечки....
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dmitriy-dim (20.09.2010)
Старый 17.12.2007, 18:36   #8
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Пишем либы для MidletPascal на JAVA

Это главный класс приложения, он генерируется самим MP.
В основном взаимодействие библиотек с приложением происходит именно через классы FW и M.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dmitriy-dim (20.09.2010)
Старый 17.12.2007, 21:34   #9
Fire_Phoenix
Оператор ЭВМ
 
Регистрация: 15.12.2007
Сообщений: 34
Написано 2 полезных сообщений
(для 2 пользователей)
Re: Пишем либы для MidletPascal на JAVA

То есть при написании библиотек нужно/можно ссылаться на эти классы?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dmitriy-dim (20.09.2010)
Старый 17.12.2007, 23:04   #10
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Пишем либы для MidletPascal на JAVA

Да, если например нужно работать с дисплеем, то это можно делать только через эти классы. То же самое относится и к плееру(класс P, переменная p).
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 08:31   #11
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Re: Пишем либы для MidletPascal на JAVA

А как компилить либы с использованием MP классов? Скажем, я хочу обратитьься к M.G. компилятор ругается на отсутствие этих классов, может надо прилагать M.java к файлу библиотеки? Опишите plz такую компиляцию, а то я чисто java классы могу использовать, а к классам MP нет доступа.
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 13:30   #12
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Пишем либы для MidletPascal на JAVA

при компиляции просто кладешь в папку со своей библиотекой FW.java и он компилируется вместе с ней, ну а потом его просто игнорируешь.
можно еще другим способом: указать в classpath папку с FW.class
(Offline)
 
Ответить с цитированием
Старый 07.07.2008, 06:53   #13
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Здравствуйте, я джаву не знаю толком, только в общих чертах. Не могли бы вы написать пример либы, как вывести текст на канвас. Я понимаю, что в мидлет паскале это просто через drawText() делается =) Но мне просто посмотреть охота, как в либе это реализовать, понять нужно. Ну вот, например, нужно сделать либу с одной функцией, которая будет работать аналогично drawText(), но называться, скажем, printText(). Напишите, если не сложно, а то я уже как только не пробовал.
(Offline)
 
Ответить с цитированием
Старый 07.07.2008, 08:23   #14
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Сообщение от Phantom_wc Посмотреть сообщение
Здравствуйте, я джаву не знаю толком, только в общих чертах. Не могли бы вы написать пример либы, как вывести текст на канвас. Я понимаю, что в мидлет паскале это просто через drawText() делается =) Но мне просто посмотреть охота, как в либе это реализовать, понять нужно. Ну вот, например, нужно сделать либу с одной функцией, которая будет работать аналогично drawText(), но называться, скажем, printText(). Напишите, если не сложно, а то я уже как только не пробовал.
Ну типа так:

import javax.microedition.lcdui.Graphics;

class Lib_test
{
    public static void printtext(String s, int x, int y)
    {
        M.G.drawString(s, x, y, 20);
    }
}

Последний раз редактировалось odd, 07.07.2008 в 08:51.
(Offline)
 
Ответить с цитированием
Старый 07.07.2008, 14:37   #15
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Спасибо =) Как я понимаю, нужно при компиляции M.class в папку положить, чтобы компилятор не ругался, да? Вот только, как вы понимаете, где писать M.G, а где, например, FW.fw?.. Я не знаю, как это называется, у меня с терминологией проблемы =) Грубо говоря, где вы вычитали через какие классы к каким кускам Джавы обращаться нужно? Я к Graphics только не пробовал, но всё ошибка была =) По такому-то ведь в джаве можно так, если не ошибаюсь:
javax.microedition.lcdui.Graphics.drawString(s, x, y, 20);
Почему же в мидлет паскале нельзя так? Почему всё так запутано?
- - -
Сорри за такой тупой пост, просто я до этого толком только на php писал, а на нём даже обезьяну можно научить кодить :D

Последний раз редактировалось Phantom, 07.07.2008 в 14:49.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dmitriy-dim (20.09.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависит ли MidletPascal от установленного пакета Java? artemff Прочие вопросы 4 11.02.2010 02:44
Хорошие 3Д движки \ либы klopmaks C++ 83 11.11.2009 12:56
Как подключать либы?.. beloff FAQ 2 25.12.2007 14:03
помогите с написанием либы Eddy MidletPascal 23 17.12.2007 23:38
Как компилить либы с помощью WTK??? kolyacher Прочие вопросы 4 03.11.2007 11:19


Часовой пояс GMT +4, время: 02:43.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com