MIDlet Pascal
Поиск по сайту
Форма входа

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Яндекс.Метрика

Друзья сайта
IT юмор - развлечения
Заработать в интернете - легко!Просто сиди и кликай.
Воскресенье, 23.09.2018, 02.02.30
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход
Урок №9 "Формы"
Здравствуйте. В этом уроке вы немного научитесь работать с формами.
Я употреблял формы в предыдущих уроках, а сейчас мы рассмотрим их подробнее. Формы предлагают программисту быстро сделать интерфрейс какой нибудь програмы в которой красивый интерфрейс не играет роли. Например: секундомер, таймер, сборник информации и т.д..Но для начала нужно знать что в приложениях есть два режима canvas - режим холста, form - режим формы. Стандартно стоит всегда режим холста(Canvas) и для того что-бы работать из режимом форм(Form), нужно вызвать процедуру ShowForm, относительно переключение в режим холста процедурой ShowCanvas.Формы в отличии от холста, меньше нагружают процессор.Для того что-бы вывести какое либо сообщение в режиме холста, нужно всего навсего прописать функцию FormAddString(s:string):integer где s - текст который нужно вывести, функция возвращает индентификатор ID созданного элемента.В отличии от DrawText(где текст не переносится) - текст переноситься.Например:

var i:integer;
begin
  ShowForm; //Переходим в режим форм
  i:=FormAddString('Привет.Как дела?Ну и сюда какой-то длинный текст'); //Добавляем элемент с текстом
  repeat until false; //создаём бесконечный цикл
end.

  Давайте теперь научимся переходить из формы в холст, для этого давайте удалить строку "repeat until false; //создаём бесконечный цикл".И добавить такой код:

Delay(2000);
ShowCanvas;
DrawText('А теперь пока', 0, 0);
Repaint;
Delay(2000);

  Теперь давайте создадим программку которая будет запрашивать ваше имя, после нажатия на кнопку "Ок", программа с вами поздоровается.Для этого нам нужна как минимум переменная command, функция CreateCommand(s:string;Type,priority:integer):command, функция FormAddTextField(text,defaultvalue:string;maxSiza,type:integer)Integer, процедура AddCommand(c:command),функция GetClicked:command.Давайте для начала рассмотрим для чего эти две функции:

функция CreateCommand(s:string;Type,priority:integer):command;  Создаёт какуе-то команду на экране. s - текст команды Type - тип команды. priority - приоритет команды чем больше значение, тем выше.Параметр type может принимать такие значения
 CM_SCREEN - для любого типа команд 
 CM_BACK - для команды типа НАЗАД 
 CM_CANCEL - команда ОТМЕНА 
 CM_OK - команда ОК 
 CM_HELP - команда ПОМОЩЬ v  CM_STOP - команда СТОП 
 CM_EXIT - команда ВЫХОД 
 CM_ITEM - команда выбора элемента из списка 
функция FormAddTextField(text,defaultvalue:string;maxSiza,type:integer)Integer; Выводит на экран поле ввода. text - служит приглашением для ввода, defaultvalue - стандартное значение, maxSize - максимальный рамер вводимого текста type - тип вводимого текста.Значение type может принимать такие значения:
 TF_ANY - Можно вводить любой текст 
 TF_EMAIL - Можно вводить только адрес EMAIL 
 TF_NUMERIC - Можно вводить только цифры 
 TF_PHONENUMBER - Можно вводить только номер телефона 
 TF_URL - Можно вводить только адрес URL в Интернете 
 TF_PASSWORD - Поле для ввода пароля. Все символы будут отображаться в виде *.


А теперь давайте приступим к написанию кода:

var i:integer;
    c:command; //создаём переменную command
    s:string;
begin
  ShowForm;
  i:=FormAddTextField('Ваше имя:','Вася Пупкин',20,TF_ANY);
  c:=CreateCommand('Ок', CM_OK, 1);
  AddCommand(c);
  repaint;
  repeat until GetClickedCommand=c;
  s:=FormGetText(i);
  ShowCanvas;
  DrawText('Привет, '+s+'!', 0, 0);
  Repaint;
  Delay(5000);
End.

  Поздравляем. Вы прошли урок №9
← Урок №8Урок №10 →
Если вы нашли ошибки/очепятки в тексте то сообщите о них на форуме
А также можете заказать программу/игру на этой странице

www.parkflyer.ru - радиоуправляемые модели, радиоуправляемые модели самолетов, магазин радиоуправляемых моделей
Роспись стен, скульптуры на заказ
Wladymyr © 2012-2018
Создать бесплатный сайт с uCoz