forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   MidletPascal (http://forum.boolean.name/forumdisplay.php?f=46)
-   -   Прошу помощи в некоторых вопросах... (http://forum.boolean.name/showthread.php?t=11883)

Ksanatos 10.02.2010 16:43

Прошу помощи в некоторых вопросах...
 
:SOS: 1. Подскажите мне пожайлуста, как получить скан код клавиши?
2. У меня возникла такая проблема: на телефоне(SE) после нескольких запусков программы картинка приветствия не рисуется. Т.е. первый тест проходит нормально, после нескольких запусков картинка исчезает.:(

demon112 10.02.2010 17:50

Ответ: Прошу помощи в некоторых вопросах...
 
1.почитай о GetKeyClicked, GetKeyPressed, KeyToAction или можно воспользоваться какой нить библиотекой :)
2.даже не представляю :4to:

im_zorg 10.02.2010 18:21

Ответ: Прошу помощи в некоторых вопросах...
 
2.Попробуй подождать она медленнее чем первые запуски ведь ты память в 3 раза больше занимаешь тем самым быстродействие падает)))

Ksanatos 10.02.2010 19:18

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

1.почитай о GetKeyClicked, GetKeyPressed, KeyToAction или можно воспользоваться какой нить библиотекой
GetKeyClicked, GetKeyPressed читают только 0..9,*,#. А KeyToAction объединяет 2 и верх, 4 и вправо, и т.д.
насчет библиотек я и спрашиваю, т.к. самостоятельно найти подходящей не смог.

temned 10.02.2010 22:14

Ответ: Прошу помощи в некоторых вопросах...
 
Кидаю тебе java мидлет, который дает коды клавиш - Бери здесь или сразу здеся

Ksanatos 10.02.2010 22:37

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

odd 11.02.2010 00:01

Ответ: Прошу помощи в некоторых вопросах...
 
Вложений: 2
Цитата:

Сообщение от Ksanatos (Сообщение 136820)
Конечно спасибо, кое где пригодится, но можно материал? хотя бы в какой библиотеке искать процедуру(или функцию) позволяющюю их использовать и определять при вводе.

Получать код нажатой клавиши можно с помощью функций GetKeyPressed и GetKeyClicked. Для SE (и для других телефонов) таблица скан-кодов такая:

Ksanatos 11.02.2010 09:19

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от odd (Сообщение 136835)
Цитата:

Сообщение от Ksanatos (Сообщение 136820)
Конечно спасибо, кое где пригодится, но можно материал? хотя бы в какой библиотеке искать процедуру(или функцию) позволяющюю их использовать и определять при вводе.

Получать код нажатой клавиши можно с помощью функций GetKeyPressed и GetKeyClicked. Для SE (и для других телефонов) таблица скан-кодов такая:

Ну если можно то как? мне высвечивает только от 0 до 9,* и #

Ksanatos 11.02.2010 15:33

Ответ: Прошу помощи в некоторых вопросах...
 
У меня тут нарисовался ещё один вопросик: как можно поставить ширину строки в меню созданном lib_menu32?

GRAY_WOLF 11.02.2010 16:25

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 136903)
У меня тут нарисовался ещё один вопросик: как можно поставить ширину строки в меню созданном lib_menu32?

В хелпе и либе все подробно написано!!!

Ksanatos 11.02.2010 16:58

Ответ: Прошу помощи в некоторых вопросах...
 
А ну да. Я как то просмотрел:) :pardon:
И всё таки ни кто так и не ответил, как можно получить скан код например клавиш вверх, вниз и т.д.
Ну или дайте пример какой-нить если объяснять не хотите.

Ksanatos 11.02.2010 18:08

Ответ: Прошу помощи в некоторых вопросах...
 
Может кто нибудь сказать здесь есть ошибка?
PHP код:

menu32.init;
  
loadcursor(m[8]);
  
setmenuwindow(0,15,getwidth,getheight-30);
  
menufonts(0,0);
  
ItemHeight(20);
  
additem2(none,'Калькулятор','calc');
  
additem2(none,'Формулы','formuli');
  
additem2(none,'Выход','exit');
  
drawmenu;
  
repaint

все компилируется. на эмуляторе белый экран на телефоне всё нормально.
Ошибку нашёл методом тыка где-то здесь.

GRAY_WOLF 11.02.2010 19:49

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 136923)
Может кто нибудь сказать здесь есть ошибка?
PHP код:

menu32.init;
  
loadcursor(m[8]);
  
setmenuwindow(0,15,getwidth,getheight-30);
  
menufonts(0,0);
  
ItemHeight(20);
  
additem2(none,'Калькулятор','calc');
  
additem2(none,'Формулы','formuli');
  
additem2(none,'Выход','exit');
  
drawmenu;
  
repaint

все компилируется. на эмуляторе белый экран на телефоне всё нормально.
Ошибку нашёл методом тыка где-то здесь.

Если на телефоне все норм, то это глюк эмулятора.

Ksanatos 11.02.2010 20:42

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от GRAY_WOLF (Сообщение 136935)
Если на телефоне все норм, то это глюк эмулятора.

Возможно.

И ещё кое что: как можно безболезненно создать шрифт для МП? т.е. чтобы *.dat оформлялся сам, а мне надо было только над буковками химичить. Ну или хотя бы конвертор стандартных шрифтов.

GRAY_WOLF 11.02.2010 22:20

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 136939)
Возможно.

И ещё кое что: как можно безболезненно создать шрифт для МП? т.е. чтобы *.dat оформлялся сам, а мне надо было только над буковками химичить. Ну или хотя бы конвертор стандартных шрифтов.

А поисковик по форуму у Нас разве не работает? Вот тема...

Ksanatos 11.02.2010 22:31

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

А поисковик по форуму у Нас разве не работает?
Да я искал ниче дельного не нашел.

GRAY_WOLF 11.02.2010 22:40

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 136960)
Да я искал ниче дельного не нашел.

Первый пост в этой теме. Там генератор шрифтов( шрифты на лювой вкус), пример и сама библиотека, ну и обсуждение то же...

Ksanatos 11.02.2010 22:56

Ответ: Прошу помощи в некоторых вопросах...
 
Угу. Работает отлично. А где можно новые шрифты делать? Или для этого придётся делать стандартные, а потом уже генерировать в МП?

cherepets 12.02.2010 11:07

Ответ: Прошу помощи в некоторых вопросах...
 
да, только из стандартных делает эта прога. нокте тебе мешает открыть результат фотошопом и переделать все?

Ksanatos 12.02.2010 12:47

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от cherepets (Сообщение 137011)
да, только из стандартных делает эта прога. нокте тебе мешает открыть результат фотошопом и переделать все?

Да хоть паинтом, только в большинстве случаев придется менять dat. так что легче будет найти прогу создающую шрифты, а потом уже конвертировать.

Ksanatos 13.02.2010 22:29

Ответ: Прошу помощи в некоторых вопросах...
 
А если шрифт в папке, то как его загружать?
так можно:
PHP код:

loadfont('/fonts/Central Gothic_10'); 

?

А ещё есть такой вопрос: как вырисовывать буквы загруженным шрифтом.
Например процедурой drawstring.

odd 14.02.2010 02:49

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 137300)
А ещё есть такой вопрос: как вырисовывать буквы загруженным шрифтом.
Например процедурой drawstring.

Ты угадал. Так и рисуй. К примеру:

PHP код:

DrawString('Вася Пупкин'55);
Repaint


Ksanatos 14.02.2010 19:08

Ответ: Прошу помощи в некоторых вопросах...
 
Ну я загружаю два шрифта так:
font(0); loadfont('font_1');
font(1); loadfont('font_2');
И как мне писать первым, а после этого надо будет ещё и вторым?

Ksanatos 14.02.2010 19:47

Ответ: Прошу помощи в некоторых вопросах...
 
Почему если я использую процедуру textwidth ни телефон ни эмулятор не фурычат, а если меняю на стандартную length всё впорядке?
работает:
PHP код:

x:=trunc((getwidth-length(st))/2);
      
y:=getheight-25;
      
drawtext(st,x,y); 

не работает:
PHP код:

x:=trunc((getwidth-textwidth(st))/2);
      
y:=getheight-25;
      
drawtext(st,x,y); 


GRAY_WOLF 14.02.2010 21:21

Ответ: Прошу помощи в некоторых вопросах...
 
PHP код:

st:='text';font(0);DrawString(st,getwidth/textwidth(st)/2,getheight-25);//шрифт 0
 
st:='text.TXT';font(1);DrawString(st,getwidth/textwidth(st)/2,getheight-45);//шрифт 1 

Текст по центру относительно оси Х.

odd 15.02.2010 02:55

Ответ: Прошу помощи в некоторых вопросах...
 
Команда font(n); служит именно для выбора текущего шрифта.

Ksanatos 15.02.2010 19:59

Ответ: Прошу помощи в некоторых вопросах...
 
И что же неправильно я делаю опять(белый экран):
PHP код:

font32.init(2);
  
font(1); loadfont('century gothic_9'); 


odd 15.02.2010 21:19

Ответ: Прошу помощи в некоторых вопросах...
 
Скачай новую версию библиотеки. Там эта ошибка исправлена.

dess 18.02.2010 18:54

Ответ: Прошу помощи в некоторых вопросах...
 
и у меня вопро
мне понравилось писать на MIDletPascal 3.0 BETA 2
а с русским текстом проблемка можно это как то исправить?

Ksanatos 18.02.2010 20:08

Ответ: Прошу помощи в некоторых вопросах...
 
меня уже зае... эти проблемы со шрифтом!
я использую эмуль KEmulator lite v0.9.7 и в логах высвечивается сообщение
PHP код:

Custom.jar.getResourceStream: /century gothic_9.png (null

почему не загружается шрифт, то же самое на мобиле.

GRAY_WOLF 18.02.2010 20:20

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 138118)
меня уже зае... эти проблемы со шрифтом!
я использую эмуль KEmulator lite v0.9.7 и в логах высвечивается сообщение
PHP код:

Custom.jar.getResourceStream: /century gothic_9.png (null

почему не загружается шрифт, то же самое на мобиле.

Каким пользуешся генератором шрифтов? А прописывать надо так
PHP код:

font32.init(2);Font(0); LoadFont(CenturyGothic9);color(255000); // четный шрифт
Font(1); LoadFont(CenturyGothic9);color(255255255255);// белый шрифт 

а к проекту нужно обязательно подгружать оба файла CenturyGothic9.dat и CenturyGothic9.png это если ты используешь генератор от сюда пост #94.

Ksanatos 19.02.2010 21:12

Ответ: Прошу помощи в некоторых вопросах...
 
бля-а-а-а, не работает.
font32.init(2);
font(0); loadfont('moy'); color(255,0,0,0);
font(1); loadfont('centurygothic_9'); color(255,0,0,0);

GRAY_WOLF 19.02.2010 21:48

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 138309)
бля-а-а-а, не работает.
font32.init(2);
font(0); loadfont('moy'); color(255,0,0,0);
font(1); loadfont('centurygothic_9'); color(255,0,0,0);

А шрифты ты сам так переименовывал? Если да, то и файлы dat тоже нужно было переименовать в соответствии и так-же их подгружать к проекту.

Ksanatos 20.02.2010 21:46

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от GRAY_WOLF (Сообщение 138311)
А шрифты ты сам так переименовывал? Если да, то и файлы dat тоже нужно было переименовать в соответствии и так-же их подгружать к проекту.

Да я преименовал потом перезалил, также пробовал loadfont2, загружал и dat и png отдельно результат тот же. Может сам MP юлозит?

odd 20.02.2010 22:40

Ответ: Прошу помощи в некоторых вопросах...
 
А как именно не работает? Зависает или возникает какая-то ошибка?

Ksanatos 21.02.2010 08:36

Ответ: Прошу помощи в некоторых вопросах...
 
зависает. На эмуле в логах выскакивает ошибка:
PHP код:

Custom.jar.getResourceStream: /century gothic_9.png (null

в общем не находит он рисунок

GRAY_WOLF 21.02.2010 09:43

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от Ksanatos (Сообщение 138493)
зависает. На эмуле в логах выскакивает ошибка:
PHP код:

Custom.jar.getResourceStream: /century gothic_9.png (null

в общем не находит он рисунок

Выложи исходник. Поможем.

odd 21.02.2010 11:53

Ответ: Прошу помощи в некоторых вопросах...
 
Да переименуй DAT и PNG файлы в более короткое название типа cg_9.

GRAY_WOLF 21.02.2010 13:43

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от odd (Сообщение 138505)
Да переименуй DAT и PNG файлы в более короткое название типа cg_9.

Генератор не выдает нижний дефис, возможно в этом и заключается проблема.

Ksanatos 21.02.2010 15:40

Ответ: Прошу помощи в некоторых вопросах...
 
Вложений: 1
вот исходник. тут только оболочка. мне надоело с ним возится я и отложил)

odd 21.02.2010 16:07

Ответ: Прошу помощи в некоторых вопросах...
 
Шрифт сгенерирован старым генератором, поэтому и глючит.
Я же говорил, что обратите внимание, что генератор поменялся, формат DAT файлов тоже.

GRAY_WOLF 21.02.2010 21:09

Ответ: Прошу помощи в некоторых вопросах...
 
Цитата:

Сообщение от odd (Сообщение 138535)
Шрифт сгенерирован старым генератором, поэтому и глючит.
Я же говорил, что обратите внимание, что генератор поменялся, формат DAT файлов тоже.

Так я же про это еще в 31-м посте писал.....

DIMMON4IK 21.02.2010 21:50

Ответ: Прошу помощи в некоторых вопросах...
 
И стоило столько морочится? :)

Ksanatos 02.03.2010 11:48

Ответ: Прошу помощи в некоторых вопросах...
 
И опять поднялся вопрос: как можно отдельно идентифицировать например вверх и 2? Дайте пример

odd 02.03.2010 13:21

Ответ: Прошу помощи в некоторых вопросах...
 
PHP код:

key:=GetKeyPressed// Или GetKeyClicked
k1:=KeyToAction(key);
if (
k1 GA_UPthen // нажали вверх
if (key KE_KEY2then // нажали 2 


cherepets 03.03.2010 13:19

Ответ: Прошу помощи в некоторых вопросах...
 
я обычно не так делаю...
PHP код:

key:=getkeypressed;
   if 
key=KE_KEY2 then...
   if 
key=KE_KEY8 then...
key:=keytoaction(key);
   if 
key=GA_UP then...
   if 
key=GA_DOWN then... 

хотя наверно разницы особой нет... просто переменных меньше)

odd 03.03.2010 13:33

Ответ: Прошу помощи в некоторых вопросах...
 
Я лично всегда непосредственно через коды опрашиваю и не пользуюсь константами типа GA_UP или KE_KEY2. Но этот скорее вопрос личных предпочтений.

Ksanatos 09.03.2010 17:26

Ответ: Прошу помощи в некоторых вопросах...
 
PHP код:

function rts (chislo real) : string;
var
    
integer;
    
real;
    
st string;
begin
    
if frac(chislo)=0 then
        begin
            
if chislo<0 then
                st
:=' '+trunc(chislo)
            else
                
st:=''+trunc(chislo);
        
end;
    if 
frac(chislo)<>0 then
        begin
            l
:=trunc(chislo);
            
r:=frac(chislo)*pow(10,length(''+frac(chislo))-1);
            if 
l<0 then st:=' '+l+'.'+r
            
else st:=''+l+'.'+r;
        
end;
    
rts:=st;
end

компилится, но на вызове этой функции останавливается. В чём проблема?:dontknow:

Ksanatos 24.03.2010 19:22

Ответ: Прошу помощи в некоторых вопросах...
 
Помогите найти ошибку:
PHP код:

for i:=1 to mapy-do
                
begin
                    st
:=readline(map);
                    if 
getchar(st,0)<>'.' then
                        begin
                            j
:=0;
                            
a:=getchar(st,j);
                            while 
a<>'_' do
                                
begin
                                    buf
:=buf+a;
                                    
j:=j+1;
                                
end;
                            
l:=trunc(stringtointeger(buf));
                            
j:=j+1;
                            
a:=getchar(st,j);
                            while (
a<>';') or (a<>'.') do
                                
begin
                                    buf
:=buf+a;
                                    
j:=j+1;
                                
end;
                            
r:=trunc(stringtointeger(buf));
                            for 
j:=1 to r-l+do
                                
drawimage(wallstyle,l+j*20-3,i*20-3);
                            if 
a=';' then
                                begin
                                    st
:=copy(st,length(''+l+'_'+r+';')+1,length(st)+1);
                                    
i:=i-1;
                                
end;
                        
end;
                
end


odd 25.03.2010 19:04

Ответ: Прошу помощи в некоторых вопросах...
 
Ошибка в цикле:
PHP код:

while a<>'_' do
begin
buf
:=buf+a;
j:=j+1;
end

Переменная "a" не меняется, что приводит к зависанию.

Ksanatos 01.04.2010 13:52

Ответ: Прошу помощи в некоторых вопросах...
 
Kak, spravitsya s problemoy perepolneniya pamyati?

cherepets 01.04.2010 21:49

Ответ: Прошу помощи в некоторых вопросах...
 
покупкой другого телефона :)
и еще из очевидных ответов: уменшить кол-во используемых переменных

odd 02.04.2010 13:23

Ответ: Прошу помощи в некоторых вопросах...
 
Можно делать очистку памяти с помощью специальных библиотек, например Lib_memclean, после операций, которые отжирают много памяти.
А это такие операции:
- Работа с файлами (в том числе и ресурсами)
- Склейка длинных строк
- Распаковка/запаковка информации из/в архив
- Операции с графикой типа генерации картинок, переделке их и проч.
- Другие операции с большими объемами данных

cherepets 02.04.2010 20:37

Ответ: Прошу помощи в некоторых вопросах...
 
у меня почему то память всегда позже чистится и лагает прога в итоге от lib_memclean. хотя некоторые пишут, что у них норм

Ksanatos 19.04.2010 15:35

Ответ: Прошу помощи в некоторых вопросах...
 
Я щас делаю игру типа настольной(не знаю зачем мне это?), и с помощью lib_beta(за каторую odd огромное спасибо) делаю карту, повидимому это "жрёт всю память и рубит кайф"(сказал кто-то из друзей:)), и мне надо понять при стирании с помощью lib_memclean переменные в которые я запихнул картинки будут стираться или нет?

DIMMON4IK 19.04.2010 20:38

Ответ: Прошу помощи в некоторых вопросах...
 
Да, только создай переменную nil типа image, и ненужную картинку im:=nil; а потом вызывай clean
Впринципе пример к либе есть


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot