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

Онлайн : 1
Гостей: 1
Пользователей: 0
Главная » Статьи » 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
Категория: Для начинающих | Добавил: alexandor (08.01.2009)
Просмотров: 2091 | Комментарии: 5 | Рейтинг: 0.0/0
Всего комментариев: 5
26.04.2010 в 22:25 Спам
подскажите пжл мб я чайник ноя не ставлю грандиозных планов но всётаки допустим как мне ввести переменную с клавиши например в паскале для этого надо было read(n); и ввести н с клавиатуры в мп незнаю как это сделать подскажите пжл......
22.12.2009 в 19:34 Спам
Dj_Alex, он прислал мне эту статью
16.05.2009 в 15:56 Спам
что-то админ чудит. alexandor зарегистрирован
Суббота, 07.03.2009, 14:51
а статья добавлена
08.01.2009
21.04.2009 в 10:58 Спам
чото со статьей sad
15.04.2009 в 14:12 Спам
smile
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]