|
23.06.2009, 02:14
|
#1
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Lib_suspend - Сворачивание мидлета
Простая библиотека, добавляющая функцию сворачивания мидлета (для многозадачных телефонов).
Проверялось на Sony Ericsson K550i, за другие телефоны не ручаюсь - нужно проверять.
Функций в библиотеке всего одна. Вызывается она как Suspend.Start;
Для продолжения работы программы нужно её снова развернуть с помощью функций телефона и нажать на любую клавишу.
Простейший пример использования:
Program SuspendTest; Uses suspend; Begin DrawText('Сворачивание', 5, 5); Repaint; Delay(5000); // Ждем 5 секунд Suspend.start; // Сворачивание DrawText('Работаем дальше', 5, 25); Repaint; Delay(5000); End.
Собственно, сворачивается только главный поток приложения. Остальные потоки (если есть) продолжают работать. Это только первая версия библиотеки, если хотите, могу сделать отдельно функции для сворачивания и разворачивания (восстановления работы) мидлета отдельно. В этом случае даже главный поток остановлен не будет. Но при сворачивании телефон полностью захватывает дисплей на себя и поэтому вывод на экран чего-либо в свернутом состоянии будет невозможен.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.06.2009, 06:38
|
#2
|
Знающий
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений (для 17 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
А при сворачивание приложение продолжает работать?
__________________
И суслики вам не помогут
|
(Offline)
|
|
24.06.2009, 00:30
|
#3
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
Сообщение от demon112
А при сворачивание приложение продолжает работать?
|
Параллельные процессы да, а M.class - нет. Могу переделать либу чтоб всё работало, но тогда для разворачивания мидлета придется вызывать отдельный метод и как-то определять свернуто ли приложение или нет. Короче, либу ещё нужно доработать. Но кому сильно надо, можно пользоваться и этой.
|
(Offline)
|
|
24.06.2009, 01:35
|
#4
|
ПроЭктировщик
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений (для 14 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
А развернуть можно будет (если в мидлете произойдёт какое-то событие) ?
|
(Offline)
|
|
24.06.2009, 10:39
|
#5
|
Знающий
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений (для 17 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
Эм, а какой ещё кроме м класса существует?) это либой для многопоточности надо пользоваться? А в свёрнутом состоянии функция IsMidletPause возвращает верно?
__________________
И суслики вам не помогут
|
(Offline)
|
|
24.06.2009, 23:01
|
#6
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
Сообщение от Skythrone
А развернуть можно будет (если в мидлете произойдёт какое-то событие) ?
|
Пока нет, но в следующей версии библиотеки скорее всего сделаю.
Кстати, спасибо за напоминание о IsMidletPaused. Его тоже можно задействовать.
|
(Offline)
|
|
24.06.2009, 23:35
|
#7
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
Готово. Переделал библиотеку с учетом ваших пожеланий.
Теперь функций в библиотеке две:
start - свернуть мидлет;
finish - развернуть мидлет.
Библиотека влияет на переменную IsMidletPaused.
Проверял библиотеку на таком примере:
Program SuspendTest; Uses suspend; Var i: integer; Begin
DrawText('Сворачивание', 5, 5); Repaint; Delay(5000); Suspend.start; // Сворачивание for i:=0 to 100 do Delay(50); // Имитация бурной трудовой деятельности Suspend.finish; // Разворачиваем мидлет DrawText('Работаем дальше', 5, 25); Repaint; Delay(5000); End.
|
(Offline)
|
|
04.10.2009, 08:25
|
#8
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
Долго искал альтернативы сворачивания мидлета т.к. уже много раз видел подобное.. и вот наконец нашел для Сименса. Выкладываю пример. Проверьте, работает? У мя да тестил на C65. Кому интересно могу описать каким методом
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
08.10.2009, 17:21
|
#9
|
Разработчик
Регистрация: 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 за это полезное сообщение:
|
|
08.10.2009, 17:54
|
#10
|
Разработчик
Регистрация: 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
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
Вот список стандартных шорткатов (для x65-x75 серий Симёнов):
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
08.12.2009, 18:49
|
#12
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
как и планировалось, на se мидлет упал.
|
(Offline)
|
|
09.12.2009, 09:34
|
#13
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
ээ...
сразу полез в список либ, но там м2 нет((
ну, пофиг, смысл понятен)))
интересно где бы найти похожие списки для се, нокии и т.д...
помню что перерывал все файлы на прошлом своем телефоне (6260), находил файлы с т9, а вот команд меню вроде не было(..
|
(Offline)
|
|
15.01.2010, 02:07
|
#14
|
Оператор ЭВМ
Регистрация: 18.11.2009
Сообщений: 48
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Lib_suspend - Сворачивание мидлета
Как сделать во второй версии,чтоб мидлет развернулся,как дать мидлету понять,что его развернули?
|
(Offline)
|
|
15.01.2010, 22:32
|
#15
|
Оператор ЭВМ
Регистрация: 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)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:28.
|