Авторизироваться
Меню сайта
Категории раздела
Для начинающих [16]
С этих статей вырасли все, кто сейчас программирует на MP. Именно с этих статей надо начинать новичку, качество у них не всегда хорошее, но почитать стоит.
Разбираем.Обьясняем [1]
В этой категории обьясняем, разьясняем библиотеки,примеры,мидлеты и т.д.
Прочее [4]
Прочее, что не касается программирования: как настроить MP, что нужно для работы и др...
Наш опрос
Стоит ли на нашем сайте публиковать мобильные новости?
Всего ответов: 190
Мини-чат
210
Статистика

Онлайн : 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Midlet Pascal » Для начинающих

5. Меню или пишем шпоры на экзамен.

Скачать в  TXT

Странное название статьи, не правда ли? Просто в этом материале я покажу как делать менюшки в приложениях для мобильника на МидлетПаскале, и попутно мы напишем шпоры на экзамены. Естественно шпоры будут в виде проги для мобилы, ведь на бумажке мелким почерком каждый и так умеет:) 


Ну, давай начинать! Запускай MidletPascal и создовай новый проект, предварительно создав для него отдельную директорию. Всегда старайся держать исходники по папочкам, а то в полном хаосе вряд ли ты чего-нибудь найдёшь. Можешь переименовать прогу как твоей душе угодно, а я назвал её "menu", потому что в первую очередь - это пример, который научит тебя создовать менюшки для прог. Сразу объявляй восемь 
переменных : пять из них сделай типа integer, а остальные command (надеюсь, ты знаешь что такое integer:), а про command я уже говорил в других статьях). Вот, что должно получиться : 


var bilet1, bilet2, bilet3, bilet4, bilet5 : integer; 
show, clicked, exit : command; 


Для чего нам так много числовых переменных? Да они то и будут у нас пунктами меню! И названия соответствующие, ведь шпаргалку на экзамен пишем. Так, с переменными разобрались, идём дальше. Пиши в теле программы следующий кусок кода : 


showMenu('Select a bilet', CH_IMPLICIT); 
bilet1 := menuAppendString('Билет 1'); 
bilet2 := menuAppendString('Билет 2'); 
bilet3 := menuAppendString('Билет 3'); 
bilet4 := menuAppendString('Билет 4'); 
bilet5 := menuAppendString('Билет 5'); 


Итак, первой строкой мы создаём меню. Когда на дисплее показано меню, то больше ни какие элементы формы не могут быть отображены на экране, кроме команд. Процедура имеет два параметра: 


title:string - это название меню, т.е. текст, который будет показан перед меню. У меня это Select a bilet, что в переводе на великий и могучий означает "выберете билет". 
menuType:integer - это тип меню. Может быть вот таким: 
-CH_IMPLICIT - это самое обыкновенное меню. 
-CH_EXCLUSIVE - при этом параметре, перед пунктом меню будет маленькая радио-кнопка, которая и осуществляет выбор. 
-CH_MULTIPLE - с этим параметром можно выбирать несколько пунктов меню 

Нам много не надо, так что я поставил параметр menuType равным CH_IMPLICIT. Этого будет достаточно. Но ты можешь поэксперементировать с другими параметрами. 
Дальше, я присваиваю каждой переменной результат функции menuAppendString. Эта функция вставляет в меню пункт, название которого указанно в единственном параметре функции. У нас это "Билет 1", "Билет 2" и т.д. Ну вот меню и создано. Но ничего не происходит. Надо создать команды, как это делать ты знвешь, но я всё же приведу пример: 


show := createCommand('Показать', CM_SCREEN, 1); 
addCommand(show); 
repeat 
delay(100); 
clicked := getClickedCommand; 
until clicked = show; 


Это всё ты уже должен знать сам, так что я объяснять не буду, а сразу пойду дальше. Теперь нам надо, чтоб при нажатии на определённый пункт меню вылазила определённая информация. Вот как можно это реализовать: 


if menuGetSelectedIndex = bilet1 then 
begin 
showTextBox('Билет 1', 'Выбран Билет 1 ', 2000, TF_ANY); 
end; 
if menuGetSelectedIndex = bilet2 then 
begin 
showTextBox('Билет 2', 'Ты выбрал Билет 2 ', 2000, TF_ANY); 
end; 
if menuGetSelectedIndex = bilet3 then 
begin 
showTextBox('Билет 3', 'Билет 3 выбран тобою', 2000, TF_ANY); 
end; 
if menuGetSelectedIndex = bilet4 then 
begin 
showTextBox('Билет 4', 'Билет 4 рулит!!! ', 2000, TF_ANY); 
end; 
if menuGetSelectedIndex = bilet5 then 
begin 
showTextBox('Билет 5', 'Билет 5........!!!!!!.......', 2000, TF_ANY); 
end; 

exit := createCommand('Выход', CM_SCREEN, 1); 
addCommand(exit); 
repeat 
delay(100); 
clicked := getClickedCommand; 
until clicked = exit; 


Здесь всё очень просто : сначала идёт проверка, какой же пункт меню выбран? Проверка осуществлена с помощью функции menuGetSelectedIndex, которая возвращает имя (не название, не title) выбранного пункта меню. И если выбран первый пункт, то выводим первый текст, если выбран второй - то второй текст и т.д. Ну а потом мы создаём команду выхода, чтоб можно было нормально покинуть приложение. 

Ну вот, прога готова! Тебе осталось только набить её своими билетами и смело идти на экзамен :) Да, кстати, прога не может возвратиться из выбранного билета обратно в меню. Это дело уже за тобой, сам доделывай, фантазируй. Ну а я вроде всё сказал, что хотел.  Остальное позже...
Автор: Васючков Андрей aka Soffrick

Скачать в  TXT


Категория: Для начинающих | Добавил: admin (12.11.2008)
Просмотров: 2555 | Комментарии: 3 | Рейтинг: 2.0/2
Всего комментариев: 3
18.06.2011 в 15:52 Спам
Как вернуться обратно в меню??
02.01.2010 в 21:11 Спам
repeat
//вся прога здесь будет ...
until true = false; // выполнять пока не наступит конец света, и правда смешается с ложью xDD
26.08.2009 в 12:59 Спам
А как же сделать что бы возратиться в меню?гг
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]