Практическое использование переменных

Сейчас рассмотрим, как применить все сказанное ранее на практике. Откроем нашу форму (Formi) в окне конструктора форм и, воспользовавшись командой системного меню File | Save As (Файл | Сохранить как), сохраним эту форму под другим именем, например FormWithVar. Вызовем окно Data Environmennt (Среда данных) и удалим из него таблицу mytab, используя команду Remove (Удалить) контекстного меню.

Теперь у нашей формы отсутствует “официальный” источник данных. Он нам и не требуется, потому что в этом примере мы будем использовать переменные памяти, присваивая им значения объектов TextBox.

По ходу реализации данной задачи мы познакомимся еще с одним инструментом, широко используемым при создании приложений. Речь идет о построителе объекта (Builder).

Использование построителей существенно облегчает процесс настройки свойств объектов. К сожалению, в Visual FoxPro имеются построители не для всех размещаемых в экранной форме объектов. Мы рассмотрим использование большинства из них, а сейчас остановимся на применении построителя для поля ввода.

Вообще, построители можно использовать не только для создания новых объектов, но и для редактирования свойств уже существующих. Именно этим мы займемся, и в качестве примера будем “препарировать” объект Textl В форме FormWithVar.

Для этого выделим объект поле ввода Textl и, нажав правую кнопку мыши, выберем пункт Builder (Построитель). Откроется диалоговое окно Text Box Builder (Построитель поля ввода) с тремя вкладками:

• Format (Формат);
• Style (Стиль);
• Value (Значение).

Вкладка Format (Формат) содержит раскрывающийся список Data Type (Тип данных), используя который мы можем установить необходимый тип данных для нашего объекта. Так как значения из нашего примера будут принимать участие в вычислениях, установим числовой тип Numeric.

После установки всех параметров нажимаем кнопку ОК. Расположенная рядом кнопка Cancel (Отмена) отменяет все изменения и закрывает окно построителя. Ну а про кнопку Help (Помощь) и говорить не приходится — Help он и в Африке Help!

Флажки, расположенные на этой же вкладке, имеют следующее назначение:

• Enable at run time (Доступно) — устанавливает, будет ли разрешен доступ к объекту при запуске формы. Данный флажок связан со свойством объекта Enabled;
• Alphabetic characters only (Только буквы) — при установке данного флажка в поле можно вводить только буквы алфавита;
• Make read-only (Сделать доступным только для чтения) — при включении этого флажка пользователь не сможет вводить и редактировать данные. свойство Readonly;
• Select on entry (Выделять при вводе) — при получении фокуса (установке курсора) содержимое этого поля будет выделяться целиком;
• Hide selection (Убрать выделение — после перехода курсора на другой объект (потеря фокуса) выделение будет снято. Свойство HideSeiection;
• Display leading zeros (Показывать ведущие нули) — отображает ведущие нули при выводе их в поле ввода.

В нижней части находится еще один раскрывающийся список: Input Mask (Маска ввода или Шаблон). Он предназначен для задания шаблона ввода данных. Справа от списка находится надпись User-defined mask (Маска, определенная пользователем). Это означает, что мы можем как выбирать значения, так и вводить свои, что и сделаем — введем свой шаблон, например 999.99.

Определившись с вкладкой Format, перейдем к рассмотрению следующей — Style (Стиль), используя которую можно изменять стиль отображения объекта.

Переключатель Special effect (Специальный эффект) содержит две опции: 3D (Трехмерный) и Plain (Плоский). При включенном 3D объект отображается с эффектом объемности. Это свойство speciaiEffeet.

Переключатель Border (Обрамление) позволяет задать стиль обрамления объекта: Single (Одинарный) устанавливает стиль обрамления в виде одинарной линии, a None (Нет) показывает объект без обрамления.

Раскрывающийся список Character alignment (Выравнивание) позволяет определить, каким образом будет происходить выравнивание данных в объекте. Это свойство Alignment.

Флажок Size text box to fit “подгоняет” размер объекта под длину “содержимого”.

Вкладка Value (Значение) предназначена для связывания объекта поле ввода с полем таблицы. В раскрывающемся списке Field name (Имя поля) можно выбрать поле, с которым мы хотим связать наш объект (в данном случае этого делать не нужно — таблицы-то нет). Кнопка с тремя точками позволяет выбрать таблицу, используя диалоговое окно Open (Открыть).

После установки всех параметров нажимаем кнопку ОК. Расположенная рядом кнопка Cancel (Отмена) отменяет все изменения и закрывает окно построителя. Ну а про кнопку Help (Помощь) и говорить не приходится — Help он и в Африке Help!
Используя построитель, установим такие же параметры для объектов Text2 и Text3.

Теперь осталось изменить программный код для события click кнопки Расчет.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
note объявляем переменные:
LOCAL lnvara,lnvarb,lnvarc,lnd,lnxl,lnx2,lcresult
* присваиваем переменным значения полей ввода
invara=THISFORM.ТЕХТ1.VALUE
lnvarb =THISFORM.TEXT2.VALUE
lnvarc =THISFORM.TEXT3.VALUE
* вычисляем дискриминант d
* для этого заменяем значение переменной lnd на математическое выражение: lnd=lnvarb**2 - (4*lnvara*lnvarc)
* проверяем значение d
DO CASE && начало проверки
CASE lnd>0 && если d больше нуля, выполняем команды:
lcresult="ypaвнeниe имеет два корня"
* вычисляем первый корень, присваивая значение переменной lnxl lnxl=(-lnvarb+sqrt(lnd))/(2*lnvara)
* то же самое для второго корня: 1пх2=(-lnvarb-sqrt(lnd))/(2*lnvara)
CASE lnd=0 && если d равен нулю, то: lcresult="ypaвнeниe имеет один корень" lnxl=lnvarb/(2*lnvara)
CASE lnd<0
lcresult = "Уравнение не имеет решения"
*заканчиваем проверку условий:
ENDCASE
*присваиваем значения переменных объектам:
THIS FORM.ТХТХ1.VALUE =lnxl
THISFORM.TXTX2.VALUE = lnx2
THISF0RM.TEXT4.VALUE = lcresult
обновляем информацию в форме:
THISFORM.REFRESH{}

.
Я использовал в начале программы команду Note — это еще один способ объявить строку комментарием. В данном примере можно обойтись и без команд присваивания переменным значений полей ввода (lnVarA = THISFORM.TEXTI. VALUE и т. д.) — достаточно указать имена этих переменных в поле Field name (Имя поля) на вкладке Value (Значение) в диалоговом окне построителя объекта.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100