Для начинающих
[16]
С этих статей вырасли все, кто сейчас программирует на MP. Именно с этих статей надо начинать новичку, качество у них не всегда хорошее, но почитать стоит.
|
Разбираем.Обьясняем
[1]
В этой категории обьясняем, разьясняем библиотеки,примеры,мидлеты и т.д.
|
Прочее
[4]
Прочее, что не касается программирования: как настроить MP, что нужно для работы и др...
|
Главная » Статьи » Midlet Pascal » Для начинающих |
Интерфейс пользователя и работа с ним. Если вы хотите создать простенькую программу, которая будет спрашивать имя пользователя, его пол и т. д. Либо ещё какую-либо программу которая будет осуществлять диалог с пользоватлем, с целью получения какой-либо инфы... Пользоваться функциями GetKeyClicked и GetKeyPressed в этом случае не удобно, более удобный и мощный механизм это использование форм, которые очень похожи на Windowsкие. Простое приложение используещие формы Начнем знакомство с формами создав приложение которое будет отображать введенное пользователем имя в виде Привет "введенное имя": program HelloForm;var itemId : integer; cmdNext : command; cmdQuit : command; name : string; begin // переход в режим формы со стандартного режима холста(для рисования) ShowForm; //добавляем текстовое поле на форму itemId := FormAddTextField("Введите ваше имя", "", 20, TF_ANY); // Создаем кнопку cmdNext := CreateCommand("OK!", CM_OK, 1); AddCommand(cmdNext); // ждать пока не будет нажата кнопка OK repeat until GetClickedCommand = cmdNext; // Получаем введенное имя name := FormGetText(itemId); // переключаемся обратно в режим холста и прорисовываем текст с именем ShowCanvas; DrawText("Привет, " + name + "!", 0, 0); Repaint; // создаем команду выхода cmdQuit := CreateCommand("Выход", CM_EXIT, 1); AddCommand(cmdQuit); repeat until GetClickedCommand = cmdQuit; end. Заметим пару вещей: во-первых, вы должны переключаться в режим формы перед тем как добавлять какие-либо элементы на форму. FormAddTextField создает текстовое поле и возвращает его индекс. Этот индекатор будет использоваться позже, для получению информация введенной в текстовое поле. Команды интересны тем что они могут быть использованы как и в режиме формы, так и в режиме холста... Исключением является режим холста который прорисовывает свои элементы на весь экран. Формы могут содержать заголовки для задания заголовка формы пользуйтесь процедурой SetFormTitle Элементы формы В предыдущем примере мы создавали форму с малым количеством элементов, давайте теперь рассмотрим форму с большим количеством элементов для взаимодействия с пользователем: program HelloForm; var stringID, textID, passID, imgID, gaugeID, choiceID, maleID, femaleID: integer; cmdQuit, cmdResetName, clicked : command; begin ShowForm; SetTicker("Плавающая строка"); // добавим несколько элементов stringID := FormAddString("Just some title");//добавим на форму текстовую строку textID := FormAddTextField("Enter name", "Mr. Smith", 20, TF_ANY);//добавим на форму passID := FormAddTextField("Enter password", "", 20, TF_PASSWORD);//текстовые поля imgID := FormAddImage(LoadImage("/icon.png")); //добавим картинку gaugeID := FormAddGauge("Choose your age", true, 100, 18); choiceID := FormAddChoice("Select your gender", CH_EXCLUSIVE );//добавим меню выбора // устанавливаем пункты меню выбора maleID := ChoiceAppendString(choiceId, "Male"); femaleID := ChoiceAppendString(choiceId, "female"); // создадим команды cmdQuit := CreateCommand("Quit", CM_EXIT, 1); AddCommand(cmdQuit); cmdResetName := CreateCommand("Reset", CM_SCREEN, 1); AddCommand(cmdResetName); repeat clicked := GetClickedCommand; if clicked = cmdResetName then FormSetText(textID, ""); until clicked = cmdQuit; end. Для получения данных, введённых в текстовое поле, пользуйтесь функцией FormGetText. Чтобы получить информацию с gauge control используйте ф-ю FormGetValue. Функции ChoiceIsSelected и ChoiceGetSelectedIndex используются для нахождения выделенных элементов меню выбора. Если вам необходима более полная информация по использованию форм смотрите раздел Процедуры и Функции. Менюшки Кроме режима холста и режима формы MidletPascal поддерживает ещё несколько режимов. Один из таких режимов - режим меню. Следующий пример продемонстрирует как пользоваться этим режимом: program Menu; var tetris, minesweeper, snake : integer; play, clicked : command; begin ShowMenu("Select a game", CH_IMPLICIT);//переход в режим меню tetris := MenuAppendString("Tetris"); //добавим пункт меню Tetris minesweeper := MenuAppendString("Minesweeper"); //добавим пункт меню Minesweeper snake := MenuAppendStringImage("Snake", LoadImage("/icon.png")); //добавим пункт меню //с графикой Snake //создадим команду выбора play := CreateCommand("Play", CM_SCREEN, 1); AddCommand(play); repeat Delay(100); until GetClickedCommand = play; { делаем что-то наподобии этого: if menuGetSelectedIndex = tetris then playTetris; if menuGetSelectedIndex = minesweeper then playMinesweeper; if menuGetSelectedIndex = snake then playSnake; ... } end. Сообщения Ещё один режим - режим сообщений. Собшения это просто окошки с текстом, которые вы видите, например при вкл. выкл. звука и т. д. Ини могут содержать любой ваш текст. Приведём пример программы использующей сообщения. program Alert; begin ShowAlert("New message", "You have just received a message from MrSmith", LoadImage("/icon.png"), ALERT_INFO ); PlayAlertSound; Delay(2500); end. Полноэкранные текстовые поля Последний режим это режим полноэкранных текстовых полей. Этот режим похож на компонент формы текстовое поле, просто содержит намного большее количество строк. Применяется когда нужно ввести больщое кол-во текста. Приведем пример с использованием данного режима: program FTextBox; var cont : command; quote : string; begin ShowTextBox("Enter message", "", 200, TF_ANY); //переход в режим полноэкранной формы cont := CreateCommand("Send", CM_SCREEN, 1); AddCommand(cont); repeat delay(100); until GetClickedCommand <> EmptyCommand; quote := GetTextBoxString; end. Итак в этом разделе мы изучили основы работы с интерфейсом пользователя, для того чтобы узнать болше деталей по работе с формами смотрите раздел Процедуры и Функции. В следующем разделе мы узнаем как сохранять данные в телефоне. статья взята с http://aleksphone.narod.ru | |
Просмотров: 2835 | Комментарии: 5 | Рейтинг: 0.0/0 |
Всего комментариев: 5 | |||||||
| |||||||