Управляющие конструкции языка FoxPro
1. Конструкция IF … ENDIF
IF условие
Команды (операторы)
ELSE
Команды (операторы)
ENDIF
2. Конструкция IIF (непосредственно выполняемый оператор IF, имеющий вид функции)
IIF(условие,значение для .T., значение для .F.)
Пример: y=IIF(x>0,1,-1) –если x>0 то y=1 иначе y=-1
3. Конструкция DO CASE … ENDCASE
Конструкция последовательно проверяет условия, расположенные за словом CASE. Если условие выполняется, выполняются команды, расположенные ниже (до следующего слова CASE). Затем управление передается на конец конструкции (endcase)
Конструкция | Пример |
DO CASE CASE условие1 Команды (операторы) CASE условие1 Команды (операторы) ENDCASE | DO CASE CASE x>=pi( ) Y=cos(x) (выполняется при x>=p) CASE x>0 Y=Sin(x) (выполняется при p>x>0) ENDCASE |
4. Цикл FOR … NEXT
Шаг цикла может быть отрицательным или опущен (по умолчанию шаг равен 1). Пример:
FOR i=10 to 1 step -0.5
? i
NEXT
6. Цикл DO WHILE … ENDDO
Условие, стоящее за словом While (пока) проверяется на истинность при входе в цикл и с каждым проходом цикла. Возможен досрочный выход из цикла (Exit). Пример:
DO WHILE условие Команды (операторы) [EXIT] ENDDO | X=1 DO WHILE X<10 (пока X<10) S=S+X IF S>8 (если S>8 то досрочный выход) EXIT ENDIF X=X+1 (изменение параметра цикла) ENDDO |
7. Цикл SCAN … ENDSCAN
Цикл предназначен для непосредственной работы с записями таблицы. В примере на все телевизоры (из таблицы “Tovar” назначена скидка 0.1 (10%)
SCAN [FOR условие] операторы [EXIT] ENDSCAN | Select Tovar (выбираем таблицу) Scan FOR cnametovar=”телевизор” REPL skidka WITH 0.1 EndScan |
Процедуры.
|
|
Вы можете хранить каждую процедуру в отдельном программном файле (типа *.prg) или выполнить несколько процедур в одном файле. В последнем случае вам перед обращение к процедурам нужно задать имя процедурного файла: SET PROCEDURE TO имя_файла.
Синтаксис процедуры | Вызов процедуры |
PROCEDURE имя_процедуры PARAMETERS список_параметров <Тело процедуры> RETURN | DO имя_процедуры WITH список_параметров |
Пример: Преобразовать в строке каждую букву в словах в прописную и удалить «пробелы» в начале и в конце строки. Назовем нашу процедуру FIO:
S=" петров иван петрович "
DO fio WITH s (вызов процедуры и передача в нее значения переменной S)
? S (получим на экране результат: Петров Иван Петрович)
PROCEDURE FIO
PARAMETERS st
st=alltrim(proper(st))
RETURN
Объектно-ориентированное программирование
VFP является объектно-ориентированным, визуально программируемым языком, управляемым по событиям.
Последовательность выполнения действий в VFP:
1) Событие (нажатие клавиши, клик)
2) Определяется связанный с этим событием объект (кнопка, поле, форма и т.д.)
3) Вызывается метод, содержащий действия по обработке данного события.
Базовые понятия в VFP – объект и класс.
|
|
Класс содержит информацию о том, как должен выглядеть объект и определяет выполняемые им действия.
Объект является экземпляром класса, который наследует характеристики класса и имеет определенные свойства и методы.
Свойства объекта находятся в окне PROPERTIES. Данное окно имеет 5 закладок:
ALL – все свойства и методы
DATA - данные Пример:ControlSource
Metods - методы (Click, DblClick, KeyPress)
Layout - планировка (размер шрифта и т.д)
Over - другие (класс и т.д.)
Идентификация объекта :
по имени: Form1.command1.caption=”Выход”
по ссылке: ThisForm.BackColor=RGB(128,128,255)
Характеристики ООП :
1)ИНКАПСУЛЯЦИЯ (Свойства и методы существуют только вместе с объектом).
2)НАСЛЕДОВАНИЕ (Объект наследует свойства класса).
3)ПОЛИМОРФИЗМ (Использование имен одних и тех же методов для выполнения различных действий)
Таблица 2. Базовые классы VFP.
Класс | Назначение | Класс | Назначение | ||
Check Box | Флажок | Timer | Таймер | ||
Combo Box | Раскрыв. Список | ListBox | Список | ||
Command Button | Кнопка управления | OptionGroup | Набор переключат. | ||
Command Group | Группа кнопок | OleBoundControl | OLE –объект данных | ||
Container | Контейнер | OleContainerControl | OLE –объект управления. | ||
Edit Box | Поле редактирования | PageFrame | Рамка со страницами | ||
Grid | Таблица | Shape | Обрамление | ||
Image | Рисунок | TextBox | Поле ввода | ||
Label | Надпись | Spinner | Счетчик |
|
|
СВОЙСТВА ОБЪЕКТОВ
Таблица 3.Свойства объектов.
Свойство | Описание | Значение по умолчанию | ||
Надписи | ||||
Caption | Надпись | |||
FontBold | Жирный шрифт | .f. | ||
FontItalic | Наклонный шрифт | .f. | ||
FontStrikethru | Зачеркнутый шрифт | .f. | ||
FontOutLine | Подчеркнутый шрифт | .f. | ||
FontName | Имя шрифта | Arial | ||
FontSize | Размер шрифта | 9 | ||
Цвет (палитра вызывается двойным кликом по значению свойства) | ||||
ForeColor | Цвет надписи | 0,0,0 | ||
BackColor | Цвет фона | 255,255,255 | ||
DisabledForeColor | Цвет надписи при неактивном объекте | 0,0,0 | ||
Disabled BackColor | Цвет фона при неактивном объекте | 255,255,255 | ||
Размещение | ||||
Top | Расстояние данного объекта от верхнего края объекта-контейнера (pixel) | |||
Left | Расстояние данного объекта от левого края объекта-контейнера (pixel) | |||
Height | Высота объекта (pixel) | |||
Width | Ширина объекта (pixel) | |||
SpecialEffect | Объемность (плоскость) объекта | 0 -3D | ||
Данные | ||||
ControlSource | Источник данных (поле, переменная) | |||
Value | Начальное значение переменной | |||
SpinnerHightValue | MAX значение счетчика | +2147483647 | ||
SpinnerLowValue | MIN значение счетчика | -2147483647 | ||
Increment | Шаг счетчика | 1 | ||
RowSourceType | Тип источника строк (поле,массив,запрос) | |||
RowSource | Источник данных для строк списка | |||
Доступ к объекту
| ||||
ReadOnly | Только для чтения | .f. | ||
Enabled | Объект активный (неактивный) | .t. | ||
Visible | Объект видимый (невидимый) | .t. | ||
Класс Timer | ||||
Interval | Значение интервала в мс, после истечения которого управление передается методу Timer данного объекта | 0 | ||
Класс Grid | ||||
ColumCount | Количество колонок (столбцов) | -1 | ||
GridLine | Тип раздел. линии (вертик., гориз., сетка) | 3 | ||
GridLineColor | Цвет разделительной линии | 0,0,0 | ||
GridLineWidth | Ширина разделительной линии | 1 | ||
RecordSourceType | Тип источника данных (таблица, запрос) | |||
RecordSource | Источник данных (имя таблицы, запроса) | |||
Класс PageFrame | ||||
ActivePage | Активная страница (при запуске) | 1 | ||
PageCount | Количество страниц | 2 | ||
Picture | Фоновая картинка на странице |
Таблица 2 (продолжение)
Свойство | Описание | Значение по умолчанию |
Класс Line | ||
BorderColor | Цвет линии | 0,0,0 |
BorderStyle | Стиль: 0 Линия имеет цвет фона 1 Тонкая 2 Штриховая 3 Пунктирная 4 Штрих-пунктир 5 Штрих -двойной пунктир 6 Непрерывная | 1 |
BorderWidth | Толщина линии | 1 |
LineClant | Ориентация линии “/” или “\” | / |
Класс Shape | ||
BackStyle | Фон 1 – непрозрачный 0 – прозрачный | 1 |
FillStyle | Узор заполнения (по умолчанию-сплошной) | 1 |
Curvature | Изгиб от 0 до 99 | 0 |
Таблица 3
Допустимые типы полей
Дата добавления: 2021-06-02; просмотров: 51; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!