Ответ: Пишем либы для MidletPascal на JAVA
А файл gr.class в проект добавлял? Вообще библиотеки к MP лучше писать одним файлом, а не разбивать на кучу файлов.
|
Ответ: Пишем либы для MidletPascal на JAVA
Всё добавлял. Не работает =( Так я просто тренируюсь, изучаю. Хотел написать класс, а добавить его к мидлет паскалю при помощи либы. Вот =( Не выходит...
- - - Блин. У меня по ходу что-то с компилятором не в порядке... Пытаюсь откомпилировать либу пилигрима, мне ошибку пишет: Код:
Lib_text.java:9: cannot find symbol |
Ответ: Пишем либы для MidletPascal на JAVA
Я если честно не уловил где g, который Graphics в классе gr получает значение M.G? Если этого нет, то простите, на чем мы рисуем?
|
Ответ: Пишем либы для MidletPascal на JAVA
Ыыы... Пардон... Ща попробую исправить. Но, кстати, когда пытаюсь откомпилить твою либу, как раз компилятор ругается на M.G, которое ты передаёшь классу. Я уж не знаю почему. Класс M.class лежит где надо, его компилятор видит.
- - - Добавил спустя пару минут: Мда... Теперь компилятор и на мою либу ругается с точно такой же ошибкой. Указатель показывает на точку между M и G. То есть, как я понимаю, класс M.class видит, но пишет, что переменной G нет или что-то типа того =( Раньше пробовал подобное делать, вроде получалось... Что-то тут нездоровое... - - - Ещё спустя минут 7: Блин. Я вообще ничего не понимаю. Заменил M.class на другой, из другого проекта - всё нормально откомпилировало! Видимо, у меня ещё и класс этот какой-то не сосем нормальный был... Но ведь в принципе от приложения не зависит. От любого ведь должен подойти, мидлетпаскалевского, разумеется. - - - Спустя почти два часа: А можно как-нибудь из либы передать M.G сразу в класс, а не в определённую функцию? Можно, конечно, сразу в классе прописать private Graphics g=M.G; тогда работает. Но если поставить себе такое условие, что нельзя так делать. А в классе две функции. Одна из них будет через либу использоваться в паскале, а вторая многократно вызывается первой. Обоим им нужен M.G. Пока сделал, чтобы из первой во вторую передавалась переменная g в качестве параметра. То есть, первая из либы получает M.G, юзает там его, потом вызывается много раз вторая функция и каждый раз передаётся в неё полученный M.G... Во как. - - - Спустя ещё два часа: Всё. Пора убить телефон ап стену и выкинуть комп в окно. Ничего у меня не получается. На эмуляторе идёт, на сименсе белый экран и висит. У брата на смарте тоже белый экран и висит. Переписал всё просто в либу, без класса. Ситуация не изменилась. Добавил в каждую функцию try/catch, всё равно на эмуляторе идёт, а на телефонах нет. В чём может быть дело? Памяти, вроде, тут не использует много. Всё только примитивная работа с графикой... |
Ответ: Пишем либы для MidletPascal на JAVA
А что за компилятор, если не секрет? Какая среда разработки?
|
Ответ: Пишем либы для MidletPascal на JAVA
SUNовский компилятор. Через командную строку. javac.exe и preverify1.1.exe...
|
Ответ: Пишем либы для MidletPascal на JAVA
Не советую компилять либы напрямую через javac(нсли это WTK) - у меня только 2 из 10 нормально компилятся, на остальных мобила зависает - моторовский отладчик в MIDWay пишет ошибку верификации класса. Юзайте JB и будет вам счастье =).
|
Ответ: Пишем либы для MidletPascal на JAVA
Можно и напрямую javac, просто не забывайте добавлять -source 1.3 -target 1.3, чтобы соответсвовало CLDC 1.1
|
Ответ: Пишем либы для MidletPascal на JAVA
Пилигрим, так ведь прога-то получается в CLDC 1.0. По крайней мере так в манифесте прописано. Но попробую добавить эти ключи. А JB я как-то, вроде, качал, точно не помню. Ещё когда в первый раз хотел заняться Джавой. Что-то он мне не понравился, может путаю, или это я про MS VS... О_о То, что VS мне не понравился - это точно, один дебагер только ваще задрал. В основном брата =) У него постоянно из игр выкидывало с какими-то ошибками =) А вообще, мне среду разработки не надо, компилятора хватает. Так понять суть работы проще. А ещё подумываю написать он лайн компилятор, чисто так, ради интереса. Буду с локала запускать. Кто тестером будет? =)
- - - Чуть позже: Пилигрим, ты гений! Добавил ключи и всё работает!!! - - - Позднее: А у брата на смарте так и белый экран :'( |
Ответ: Пишем либы для MidletPascal на JAVA
для CLDC 1.0 по-моему вообще надо -target 1.1.
Да, вот точно: Цитата:
|
Ответ: Пишем либы для MidletPascal на JAVA
Написал -source 1.1 -target 1.1 вместо -source 1.3 -target 1.3.
Компилятор ругался на -source 1.1. Написал -source 1.3 -target 1.1 - всё заработало!!! И на сименсе, и на смарте, и на эмуле!!! Родили, блин :D :D :D Вот оно - счастье! =) - - - P.S: Ничего, что эта тема больше походит на мой блог? |
Ответ: Пишем либы для MidletPascal на JAVA
Блин, Джава вообще со строками работать умеет??? Я полночи инфу в гугле ищу, ещё смотрю книжки Пирумяна и Горнакова. Ничего не могу толком найти. Или я чего-то не понимаю. Как мне, например, получить субстроку от строки, начиная с определённого по счёту символа? Как узнать длину строки? Как поиндексно обращаться к строке? Ну например:
Код:
String s = "Привет"; - - - Позже: Создал по аналогии с декомпилированным мидлетпаскалевским классом вот такую функцию: Код:
public static int myfunc(String s,int i){ - - - Я так понимаю, в моём примере выше s - можно назвать объектом типа String, а всё, что после приписывается через точку - это типа методы что ли? Это я просто так спрашиваю, так как с формулировками ещё не особо разобрался... |
Ответ: Пишем либы для MidletPascal на JAVA
Ну ты даешь. Это же азы.
String s = "Привет"; Длину строки теперь можно узнать так: int len = s.length(); Вырезать одну букву: char ch = s.charAt(0); Отрезать кусок текста: String s2 = s.substring(2, 5); // Результат: "иве" PS: Юзай NetBeans 6.1 и будет тебе щастье. Советую также заглядывать в документацию по MIDP2.0 из пакета WTK. |
Ответ: Пишем либы для MidletPascal на JAVA
Спасибо огромное! Я заглядывал в документацию MIDP2.0 из пакета WTK, только дальше главной страницы не пошёл, что-то мне всё показалось там не в тему =)
- - - Слушайте, а вот если я использую indexOf(">") и в строке находит этот символ, то возвращается его индекс в строке, а если нет - мидлет повисает на этом месте =( А можно как-нибудь сделать так, чтобы в таком случае возвращался индекс последнего символа ну или символ конца строки типа?.. Пробовал засунуть эту функцию в условие if и приравнять внутри условия к нулю: if((i=s.indexOf(">"))==0) i=s.length()-1; То есть по моей логике если символ будет найден в строке, то возвратится TRUE и условие будет ложным, а если символ не найден, то возвратится FALSE, который при сравнивании с нулём выдаст TRUE и i будет равно последнему символу =) В php я подобным способом пользуюсь часто, думал и сдесь прокатит... Так ведь нет... Мидлет повисает при запуске... Почему? Может вставить try? А он не тормозит в общем? Просто я после php помешан на оптимизации =) А в скобочках у catch() что писать? Смотрел исходники разные, там по-разному пишут. В общем, что в таких ситуациях обычно делают при кодинге на Джаве? - - - P.S: А компилятор у меня теперь почти никогда не ругается, то ли совет Пилигрима помог, то ли я меньше ошибок делать стал =) = = = Блиин. Так тоже повисает: try{ i=s.indexOf(">"); }catch(Exception exception){ i=s.length()-1; } = = = Ещё такой вопрос. Если у меня есть строка "32fd45" - цвет rrggbb, то как мне эту строку самым простым способом заюзать в setColor? |
Ответ: Пишем либы для MidletPascal на JAVA
То есть нужно как-то строку вида "rrggbb" превратить в 0xrrggbb (это как называется? Константа? Ну типа три байта). Можно, конечно, написать функцию, которая пропарсит строку и сделает три числа 0-255 для передачи их в функцию setColor(), но мне кажется можно как-то проще это сделать.
|
Часовой пояс GMT +4, время: 15:40. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot