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

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

Контактируем с приложением!
Сегодня мы поговорим о контакте приложения с пользователем. Чтобы легко законтачить с приложением можно использовать форму. Для чего нужна форма? Форма нужна для размещения на ней различных объектов для контакта с пользователем. Например: текстовое поле, градусник, различные сообщения и тд. Ладно, ближе к делу. Нужно сделать какое нибудь приложение что бы оно запрашивало данные пользователя. Ага, всё поняли и открываем наш МР ("MIDlet Pascal"). 
Пишем код (код на паскале): 

Program form; 
var nameid, ageid, numberphoneid, siteid: integer; // переменные текстовых полей 
name, age, numberphone, site, 
data: string; // переменные для значения текстовых полей 
exit, ok, clicked: command; // наши комманды (ок, выход) 
begin 
ShowForm; // Показываем форму 
Nameid:=FormAddTextField('Введите ваше имя','',30,TF_ANY); // сюда будем вводить имя 
Ageid:=FormAddTextField('Введите ваш возраст','',3,TF_NUMERIC); // будем вводить возраст 
numberphoneid:=FormAddTextField('Введите ваш номер телефона','',14,TF_PHONENUMBER); // Ввод номера телефона 
siteid:=FormAddTextField('Введите адрес вашего сайта, если у вас его нет, то оставьте поле пустым','',30,TF_URL); // ввод адреса сайта 
name:=formGetText(nameid); // берем данные из полей текстовых 
age:=formGetText(ageid); 
phonenumber:=formGetText(numberphoneid); 
site:=formGetText(siteid); 
{ получили данные и идем дальше } 
ok:=createCommand('всё ввел',CM_SCREEN,1); // создаем команду 
addCommand(ok); // и помешаем её на экран 
repeat // пока не нажнём на кнопку ок, программа будет стоять на месте 
delay(100); 
clicked:=getClickedCommand; 
until clicked = ok; 
data:='Ваше имя: '+name+'; Ваш возраст: '+age+'; Ваш номер телефона: ' +numberphone+'; Ваш сайт: '+site; 
ShowTextBox('Результат',data,200,TF_ANY); 
exit:=createCommand('Выйти',CM_SCREEN,1); 
addCommand(exit); 
Repeat 
Delay(100); 
Clicked:=getClickedCommand; 
Until clicked = exit; 
End. 


Вот вам и прога с формой, которая свободно может контактировать с пользователем, если он введет данные в поля. После ввода, нажнём 'Всё ввел' и программа покажет введеные данные. 
Теперь разберемся с самой программой. 
Итак, var - здесь содержатся все наши переменные. 
nameid - для объекта "текстовое поле" для ввода имени 
ageid - текстовое поле для ввода возраста 
numberphoneid - для ввода телефоного номера 
siteid - для ввода сайта. Эти переменные используются для создания текстовых полей, но не содержит значений введеных в текстовое поле. 
Теперь строковые переменные: name, age, numberphone, site. Эти переменые для извлечения данных из текстовых полей. Переменная data - для хранения форматированой строки, в которую добавляются такие слова: "Ваш возраст" и тд. 
Теперь переменые для создания команд: 
ok - команда "Всё ввел" 
exit - команда "Выйти" 
clicked - переменная для хранения значения возвращаемой команды. Итак, все переменные я объяснил, теперь перейдем к основной программе. 
FormAddTextField(title,value,maxSize,type) - это текстовое поле в который вводится текст. Title - Это строка которая находится над полем ввода,value - значение (если вы хотите чтобы в текстовом поле было введено какое нибудь значение, то в одинарные ковычки введите строку, если надо оставить текстовое поле пустым, то оставьте ковычки пустыми),maxSize - максимальное количество символов, которое можно ввести в поле,type - тип (может быть такой: TF_ANY - можно водить все символы,TF_NUMERIC - для ввода только цифр,TF_EMAIL - только для ввода емаил адреса,TF_URL - для ввода адреса сайта,TF_PHONENUMBER - для ввода телефоного номера). 

FormAddTextField - является функцией (не процедурой). Функция отличается от процедуры тем что функция возвращает значение, а процедура нет. И чтобы извлечь текст из функции FormAddTextField, нужно использовать функцию FormGetText. Синтаксис использования функции formGetText:

строковая_переменная:=FormGetText(метка_текстового_поля); 

После того как мы получили все данные, мы создаем команду "Ввел всё", по нажатию на которою программа переходит к следующему шагу. Оперетор цикла repeat .. Until не пускает программу выполнятся дальше пока мы не нажнём на команду. Т.е. по нажатию команды цикл получает истинное условие и цикл прекращается тем самым продолжается выполнение программы дальше. 
Думаю что вы поняли. 
Теперь процедура showTextBox, эта процедура показывает окно ввода, которое размещается на весь экран телефона. В этом окне могут присутствовать только команды. Синтаксис этой процедуры такой: 
ShowTextBox(title,value,maxSize,type); 
У процедуры ShowTextBox такие же свойства как и у функции FormAddTextField. В этом окне мы отображаем содержимое переменной data. После когда мы нажнём команду выход, приложению уже будет нечего выполнять и оно завершается. 
Вот мы и разобрали пример контакта пользователя с программой посредством формы.


Категория: Для начинающих | Добавил: 133_Mhz (25.01.2009)
Просмотров: 2147 | Комментарии: 4 | Рейтинг: 0.0/0
Всего комментариев: 3
15.08.2009 в 23:20 Спам
Вот переработанный код, РАБОЧИЙ

Program form;
var nameid, ageid, numberphoneid, siteid: integer; // переменные текстовых полей
name, age, site, phonenumber,
data: string; // переменные для значения текстовых полей
exit, ok, clicked: command; // наши комманды (ок, выход)
begin
ShowForm; // Показываем форму

Nameid:=FormAddTextField('Введите ваше имя','',30,TF_ANY); // сюда будем вводить имя
Ageid:=FormAddTextField('Введите ваш возраст','',3,TF_NUMERIC); // будем вводить возраст
numberphoneid:=FormAddTextField('Введите ваш номер телефона','',14,TF_PHONENUMBER); // Ввод номера телефона
siteid:=FormAddTextField('Введите адрес вашего сайта, если у вас его нет, то оставьте поле пустым','',30,TF_URL); // ввод адреса сайта

ok:=createCommand('всё ввел',CM_SCREEN,2); // создаем команду
addCommand(ok); // и помешаем её на экран
repeat // пока не нажнём на кнопку ок, программа будет стоять на месте
delay(100);
clicked:=getClickedCommand;
until clicked = ok;
name:=formGetText(nameid); // берем данные из полей текстовых
age:=formGetText(ageid);
phonenumber:=formGetText(numberphoneid);
site:=formGetText(siteid);
data:='Ваше имя: '+name+'; Ваш возраст: '+age+'; Ваш номер телефона: ' +phonenumber+'; Ваш сайт: '+site;
ShowTextBox('Результат',data,200,TF_ANY);
exit:=createCommand('Выйти',CM_SCREEN,1);
addCommand(exit);
Repeat
Delay(100);
Clicked:=getClickedCommand;
Until clicked = exit;
End.

14.04.2009 в 12:51 Спам
sad
25.01.2009 в 19:52 Спам
Молодец 133_Mhz smile smile smile Все понятно обьснил
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]