- •Средства визуального программирования
- •090105 «Комплексное обеспечение информационной безопасности
- •Ставрополь, 2010 Содержание
- •Введение
- •Задачи дисциплины – дать основы:
- •В результате изучения дисциплины студенты должны
- •1.1. Версия 1
- •1.2. Версия 2
- •1.3. Версия 3
- •1.4. Версия 4
- •1.5. Версия 5
- •1.6. Версия 6
- •2.1. Главное окно
- •2.2. Окно формы
- •2.3. Окно дерева объектов
- •2.4. Окно инспектора объектов
- •2.5. Окно кода программы
- •3.1. Пустая форма и ее модификация
- •3.2. Размещение нового компонента
- •3.3. Реакция на события
- •3.4. Некоторые итоги
- •4.1. Страница standard
- •4.2. Страница additional
- •4.3. Страница win32
- •4.4. Страница system
- •4.5. Страница dialogs
- •4.6. Страница win31
- •4.7. Страница samples
- •4.8. Компоненты для работы с базами данных
- •4.9. Компоненты для доступа к интернет
- •4.10. Доступ к серверам автоматизации
- •5.1. Учебная программа
- •5.2. Структура программ delphi
- •5.3. Типы
- •5.4. Операторы языка
- •5.5. Массивы
- •5.6. Процедуры и функции
- •6.1. Алфавит
- •6.2. Идентификаторы
- •6.3. Константы
- •6.4. Выражения
- •6.5. Операции
- •7.1. Простые типы
- •7.2. Структурированные типы
- •7.3. Строки
- •7.4. Указатели и динамическая память
- •7.5. Псевдонимы типов
- •8.1. Локализация имен
- •8.2. Описание подпрограммы
- •8.3. Параметры-массивы и параметры-строки
- •8.4. Процедурные типы
- •8.5. Рекурсия и опережающее описание
- •9.1. Основные понятия
- •9.2. Составляющие класса
- •9.3. Объявление класса
- •9.4. Интерфейсы
- •10.1. Основные свойства варианта
- •10.2. Преобразование вариантов к данным других типов
- •10.3. Подпрограммы для работы с вариантами
- •10.4. Вариантные массивы
- •10.5. Пользовательские варианты
- •11.1. Доступ к файлам
- •11.2. Процедуры и функции для работы с файлами
- •11.3. Текстовые файлы
- •11.4. Типизированные файлы
- •11.5. Нетипизированные файлы
- •11.6. Средства windows для работы с файлами
- •11.7. Отображение файлов в память
- •11.7.1. Создание/открытие файла
- •11.8. Объектная модель работы с файлами
- •12.1. Структура модулей
- •12.2. Заголовок модуля и связь модулей друг с другом
- •12.3. Интерфейсная часть
- •12.4. Исполняемая часть
- •12.5. Инициирующая и завершающая части
- •12.6. Доступ к объявленным в модуле объектам
- •12.7. Типы модулей в delphi
- •13.1. Назначение
- •13.2. Реализация
- •13.3. Пример
- •13.4. Использование
- •13.5. Включение в библиотеку форм
- •15.1. Константы простых типов и типа string
- •15.2. Константы-массивы
- •15.3. Константы-записи
- •15.4. Константы-множества
- •15.5. Константы-указатели
- •15.6. Инициация переменных
- •16.1. Класс exception - обработка исключений
- •16.2. Класс tlist - списки
- •16.3. Классы tstrings и tstringlist -наборы строк и объектов
- •16.4. Графический инструментарий
- •Список используемой литературы
10.2. Преобразование вариантов к данным других типов
При участии вариантов в выражениях, а также при присваивании их значений переменным других типов тип размещенных в варианте данных преобразуется по следующим правилам:
Таблица 10.2. Преобразование типов для вариантов
Здесь
К целым Отнесены varByte, varSmallInt, varlnteger/ varError;
К вещественным — varSingle, varDouble/ varCurrency;
К строковым -var String, varOleStr.
10.3. Подпрограммы для работы с вариантами
Для работы с вариантами можно использовать такие подпрограммы:
Таблица 10.3. Подпрограммы для работы с вариантами
function VarAsType(const V: Variant; VarType: Integer): Variant; |
Преобразует данные варианта V к типу, определяемому параметром VarType |
procedure VarCast(var Dest: Variant; const Source: Variant; Var Type: Integer) ; |
Преобразует данные варианта Source к типу,определяемому параметром VarType, и помещает результат в переменную Dest |
procedure VarClear(var V: Variant) ;
|
Освобождает динамическую память, если она была связана с вариантом, и дает ему тип varEmpty |
procedure VarCopy(var Dest: Variant; const Source: Variants; |
Копирует параметр Source в вариант Dest |
function VarFrom-DateTime(DateTime: TDateTime):Variant; |
Возвращает вариант, содержащий данные DateTime типа дата-время |
function VarIsEmpty(const V: Variant): Boolean; |
Возвращает True, если вариант V не содержит данных |
function VarIsNull(const V: Vari ant) : Boolean; |
Возвращает True, если вариант V содержит данные неопределенного типа (varNull) ', |
function VarToDateTime(const V: Variant): TDateTime) ; |
Преобразует данные варианта V к типу дата-время |
function VarToStr(const V: Vari ant) : String; |
Преобразует данные варианта V к строке ; |
function VarType(const V: Variant) : Integer; |
Возвращает тип хранящихся в варианте данных i |
10.4. Вариантные массивы
Значением варианта может быть массив данных, такие варианты называются вариантными массивами. (Не путайте с обычным или динамическим массивом, элементами которого являются варианты!) Значениями элементов вариантного массива могут быть любые допустимые для варианта значения, кроме строк varstring. Значениями элементов вариантного массива могут быть и варианты, а это значит, что в таком массиве могут одновременно храниться данные разных типов (и в том числе строки). Например:
var
V: Variant;
begin
// Создаем одномерный вариантный массив с 5 элементами:
V := VarArrayCreate([0, 4], varVariant);
// Наполняем его:
V[0] := 1; //Тип целый
V[1] := 1234.5678; //Тип вещественный
V[2] := 'Hello world'; //Строковый тип
V[3] := True; //Логический тип
//Пятым элементом исходного массива сделаем еще один массив:
V[4] := VarArrayOf([l, 10, 100, 1000]);
Caption := V[2]; //Hello world
IbOutput.Caption := IntToStr(V[4][2]); //200
end;
Все действия с вариантными массивами осуществляются с помощью следующих процедур и функций:
Таблица 10.4. Подпрограммы для работы с вариантными массивами
function VarArrayCreate(const Bounds: array of Integer; VarType: Integer): Variant; |
Создает вариантный массив из элементов типа VarType с количеством и границами измерений, указываемых параметром Bounds |
function VarArrayDimCount(const A: Variant): Integers; |
Возвращает количество измерений вариантного массива А или 0, если А не массив |
function VarArrayHighBound(const A: Variant; Dim: Integer): Integer; |
Возвращает верхнюю границу индекса вариантного массива А по измерению Dim |
function VarArrayLock(var A: Variant): Pointer;
|
Блокирует массив (предотвращает его возможные изменения размеров) и возвращает указатель на связанные с ним данные |
function VarArrayLowBound(const A: Variant; Dim: Integer): Integers; |
Возвращает нижнюю границу индекса вариантного массива А по измерению Dim |
function VarArrayOf(const Values: array of Variant): Variants;
|
Создает одномерный вариантный массив по перечню значений, содержащихся в открытом массиве Values. Нижняя граница индексов вариантного массива в этом случае равна 0 |
procedure VarArrayRedim(var A: Variant; HighBound: Integer) ;
|
Изменяет верхнюю границу индекса вариантного массива А на величину HighBound. Вызов про цедуры игнорируется, если массив был заблоки рован функцией VarArrayLock |
function VarArrayRef(const A: Variant): Variants; |
Возвращает ссылку на вариантный массив. Ис пользуется при обращении к API-функциям |
procedure VarArrayUnlock(var A: Variant) |
Отменяет действие функции VarArrayLock
|