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

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

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

Ответ
 
Опции темы
Старый 23.06.2009, 02:14   #1
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Lib_suspend - Сворачивание мидлета

Простая библиотека, добавляющая функцию сворачивания мидлета (для многозадачных телефонов).
Проверялось на Sony Ericsson K550i, за другие телефоны не ручаюсь - нужно проверять.
Функций в библиотеке всего одна. Вызывается она как Suspend.Start;
Для продолжения работы программы нужно её снова развернуть с помощью функций телефона и нажать на любую клавишу.

Простейший пример использования:
Program SuspendTest;
Uses suspend;
Begin
    DrawText
('Сворачивание'55);
    
RepaintDelay(5000); // Ждем 5 секунд
    
Suspend.start// Сворачивание
    
DrawText('Работаем дальше'525);
    
RepaintDelay(5000);
End
Собственно, сворачивается только главный поток приложения. Остальные потоки (если есть) продолжают работать. Это только первая версия библиотеки, если хотите, могу сделать отдельно функции для сворачивания и разворачивания (восстановления работы) мидлета отдельно. В этом случае даже главный поток остановлен не будет. Но при сворачивании телефон полностью захватывает дисплей на себя и поэтому вывод на экран чего-либо в свернутом состоянии будет невозможен.
Вложения
Тип файла: zip Lib_suspend.zip (831 байт, 666 просмотров)
Тип файла: zip SuspendTest.zip (2.8 Кб, 645 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Skythrone (23.06.2009)
Старый 23.06.2009, 06:38   #2
demon112
Знающий
 
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений
(для 17 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

А при сворачивание приложение продолжает работать?
__________________
И суслики вам не помогут
(Offline)
 
Ответить с цитированием
Старый 24.06.2009, 00:30   #3
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

Сообщение от demon112 Посмотреть сообщение
А при сворачивание приложение продолжает работать?
Параллельные процессы да, а M.class - нет. Могу переделать либу чтоб всё работало, но тогда для разворачивания мидлета придется вызывать отдельный метод и как-то определять свернуто ли приложение или нет. Короче, либу ещё нужно доработать. Но кому сильно надо, можно пользоваться и этой.
(Offline)
 
Ответить с цитированием
Старый 24.06.2009, 01:35   #4
Skythrone
ПроЭктировщик
 
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений
(для 14 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

А развернуть можно будет (если в мидлете произойдёт какое-то событие) ?
(Offline)
 
Ответить с цитированием
Старый 24.06.2009, 10:39   #5
demon112
Знающий
 
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений
(для 17 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

Эм, а какой ещё кроме м класса существует?) это либой для многопоточности надо пользоваться? А в свёрнутом состоянии функция IsMidletPause возвращает верно?
__________________
И суслики вам не помогут
(Offline)
 
Ответить с цитированием
Старый 24.06.2009, 23:01   #6
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

Сообщение от Skythrone Посмотреть сообщение
А развернуть можно будет (если в мидлете произойдёт какое-то событие) ?
Пока нет, но в следующей версии библиотеки скорее всего сделаю.

Кстати, спасибо за напоминание о IsMidletPaused. Его тоже можно задействовать.
(Offline)
 
Ответить с цитированием
Старый 24.06.2009, 23:35   #7
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

Готово. Переделал библиотеку с учетом ваших пожеланий.
Теперь функций в библиотеке две:
start - свернуть мидлет;
finish - развернуть мидлет.
Библиотека влияет на переменную IsMidletPaused.

Проверял библиотеку на таком примере:
Program SuspendTest;
Uses suspend;
Var 
iinteger;
Begin

    DrawText
('Сворачивание'55);
    
RepaintDelay(5000);
    
    
Suspend.start// Сворачивание
    
    
for i:=0 to 100 do Delay(50); // Имитация бурной трудовой деятельности
    
    
Suspend.finish// Разворачиваем мидлет
    
    
DrawText('Работаем дальше'525);
    
RepaintDelay(5000);
    
End
Вложения
Тип файла: zip Lib_suspend.zip (936 байт, 583 просмотров)
Тип файла: zip SuspendTest.zip (2.9 Кб, 559 просмотров)
(Offline)
 
Ответить с цитированием
Старый 04.10.2009, 08:25   #8
Trazzy
Разработчик
 
Аватар для Trazzy
 
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений
(для 225 пользователей)
Хорошо Ответ: Lib_suspend - Сворачивание мидлета

Долго искал альтернативы сворачивания мидлета т.к. уже много раз видел подобное.. и вот наконец нашел для Сименса. Выкладываю пример. Проверьте, работает? У мя да тестил на C65. Кому интересно могу описать каким методом
Вложения
Тип файла: zip SuspendSimak.jar.zip (9.6 Кб, 540 просмотров)
__________________
Уважай собеседника, а лучше подари ему +
(Offline)
 
Ответить с цитированием
Старый 08.10.2009, 17:21   #9
Trazzy
Разработчик
 
Аватар для Trazzy
 
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений
(для 225 пользователей)
Счастье Атвэт: Lib_suspend - Сварачывание мыдлита

Приходилось мне както прошивать М65го.. и вот вспомнил, что когда работал с меню мобилы - выковырял файлег с командами меню, что передаются платформе телефона.. (перерыл все диски - нашел!)
CNCT_PREFRDBOOK //Телеф.срав.
RECD_RECORDMENU //Спис. вызовов
ELSE_SUFFUNUMNU //Интерн/игр
ELSE_INTRCAMERA //Камера
MESG_MESSGEMENU //Сообщения
ORGZ_ORGANIZMNU //Органайзер
ELSE_EXTRASMENU //Еще
FLSH_MYOWNSTUFF //Мои файлы
STUP_SETPUPMENU //Настройки
FLSH_FLEXPLORER //Card-explorer
ELSE_STR_MYMENU //Мое меню
(я накопал этих параметров штук 180, правда еще не со всеми разобрался, если комуто нужно - дам..)
Попробовал передать команды телефону, подав запрос платформе Симака через библу Lib_m2 - не реагирует!
Начал разбираться в чем же дело. Спасибо знакомому челу за подсказку.. Нужно было указать телу native (вроде tel)вначале и все заработало.
index:=platform_request('native:CNCT_PREFRDBOOK');
__________________
Уважай собеседника, а лучше подари ему +
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Trazzy за это полезное сообщение:
odd (12.10.2009), PacMan (08.10.2009)
Старый 08.10.2009, 17:54   #10
Trazzy
Разработчик
 
Аватар для Trazzy
 
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений
(для 225 пользователей)
Подмигивание Ответ: Lib_suspend - Сворачивание мидлета

А вот и сам исходный код проги:
(даю "как есть".. кому нужно - разберется, все просто!)
program SuspendSimak;
uses m2, font32;

var gk, gw, gh, index: integer;

procedure initi;
begin
  gw:=getwidth;
  gh:=getheight;
  Font32.Init(1);
  Font(0); LoadFont('font/artikz');
end;

procedure susp;
begin
  SetColor(0, 0, 0);
  FillRect(0, 0, gw, gh);
  drawString('[Created by ArtikZ]', 2, 2);
	drawString('1: Телеф.срав.', 2, 14);
	drawString('2: Спис. вызовов', 2, 24);
	drawString('3: Интерн/игр', 2, 34);
	drawString('4: Камера', 2, 44);
	drawString('5: Сообщения', 2, 54);
	drawString('6: Органайзер', 2, 64);
	drawString('7: Еще', 2, 74);
	drawString('8: Мои файлы', 2, 84);
	drawString('9: Настройки', 2, 94);
	drawString('*: Мое меню', 2, 104);
	drawString('#: Выход', 2, 114);
	repaint;
  repeat
   gk:=getKeyClicked;
   if gk=KE_KEY1 then
      index:=platform_request('native:CNCT_PREFRDBOOK'); //Телеф.срав.
   if gk=KE_KEY2 then
      index:=platform_request('native:RECD_RECORDMENU'); //Спис. вызовов
   if gk=KE_KEY3 then
      index:=platform_request('native:ELSE_SUFFUNUMNU'); //Интерн/игр
   if gk=KE_KEY4 then
      index:=platform_request('native:ELSE_INTRCAMERA'); //Камера
   if gk=KE_KEY5 then
      index:=platform_request('native:MESG_MESSGEMENU'); //Сообщения
   if gk=KE_KEY6 then
      index:=platform_request('native:ORGZ_ORGANIZMNU'); //Органайзер
   if gk=KE_KEY7 then
      index:=platform_request('native:ELSE_EXTRASMENU'); //Еще
   if gk=KE_KEY8 then
      index:=platform_request('native:FLSH_MYOWNSTUFF'); //Мои файлы
   if gk=KE_KEY9 then
      index:=platform_request('native:STUP_SETPUPMENU'); //Настройки
   if gk=KE_KEY0 then
      index:=platform_request('native:FLSH_FLEXPLORER'); //Card-explorer
   if gk=KE_STAR then
      index:=platform_request('native:ELSE_STR_MYMENU'); //Мое меню
   if gk=KE_POUND then halt; //Выход
  until gk <> GA_NONE;
  susp;
end;

begin
  initi;
  susp;
end.
__________________
Уважай собеседника, а лучше подари ему +
(Offline)
 
Ответить с цитированием
Старый 13.10.2009, 02:41   #11
Trazzy
Разработчик
 
Аватар для Trazzy
 
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений
(для 225 пользователей)
Стрелка Ответ: Lib_suspend - Сворачивание мидлета

Вот список стандартных шорткатов (для x65-x75 серий Симёнов):
Вложения
Тип файла: txt shortcuts_base.txt (5.6 Кб, 744 просмотров)
__________________
Уважай собеседника, а лучше подари ему +
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 18:49   #12
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

как и планировалось, на se мидлет упал.
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 09:34   #13
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

ээ...
сразу полез в список либ, но там м2 нет((
ну, пофиг, смысл понятен)))

интересно где бы найти похожие списки для се, нокии и т.д...
помню что перерывал все файлы на прошлом своем телефоне (6260), находил файлы с т9, а вот команд меню вроде не было(..
(Offline)
 
Ответить с цитированием
Старый 15.01.2010, 02:07   #14
NightDeath
Оператор ЭВМ
 
Регистрация: 18.11.2009
Сообщений: 48
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

Как сделать во второй версии,чтоб мидлет развернулся,как дать мидлету понять,что его развернули?
(Offline)
 
Ответить с цитированием
Старый 15.01.2010, 22:32   #15
NightDeath
Оператор ЭВМ
 
Регистрация: 18.11.2009
Сообщений: 48
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Lib_suspend - Сворачивание мидлета

Ну вроде немного разобрался,но когда мидлет разворачиваю,то если не нажать никакой кнопки,то он сразу же опять сворачивается,как исправить этот баг,вот код
...
repeat
if getkeypressed=rsoft then
suspend.start;
repeat
delay(100);
until ismidletpaused=false;
suspend.finish;
until getkeypressed=lsoft;
end., или дайте пример,чтобы использовалась функция ismidletpaused.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание ger1234567 Delphi 8 29.12.2008 17:59
Подписывание мидлета Skythrone Основной форум 6 27.09.2008 06:21
Размер мидлета archerix Основной форум 10 12.02.2008 16:37
Внешние шрифты для мидлета kyb66 Основной форум 4 05.12.2007 14:05
Покачивание оружия DeltaOps 3D-программирование 15 29.12.2006 02:11


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


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