- •Программирование на языке Delphi.
- •1. Краткий экскурс в историю
- •1.1. Языки программирования
- •1.2. Объектно-ориентированное программирование
- •1.3. Визуальное программирование
- •1.4. Среда программирования Delphi
- •1.5. Технология Java
- •1.6. Среда программирования Kylix
- •1.7. Технология .Net
- •... И опять среда Delphi
- •2. Основы языка Delphi
- •2.1. Алфавит
- •2.1.1. Буквы
- •2.1.2. Числа
- •2.1.3. Слова-идентификаторы
- •2.1.4. Комментарии
- •2.2. Типы данных
- •2.2.1. Понятие типа данных
- •2.2.2. Простые типы данных
- •Целочисленные типы данных
- •Вещественные типы данных
- •Временной тип данных
- •Символьные типы данных
- •Булевские типы данных
- •Определение новых типов данных
- •Перечисляемые типы данных
- •Интервальные типы данных
- •2.3. Данные
- •2.3.1. Константы
- •2.3.2. Переменные
- •2.4. Операции
- •2.4.1. Выражения
- •2.4.2. Арифметические операции
- •2.4.3. Операции отношения
- •2.4.4. Булевские операции
- •2.4.5. Операции с битами (эта часть пока не нужна)
- •2.4.6. Очередность выполнения операций
- •2.5. Строки
- •2.5.1. Строковые значения
- •2.5.2. Строковые переменные
- •2.5.3. Операции над строками
- •2.5.4. Стандартные процедуры и функции для работы со строками
- •2.6. Операторы
- •2.6.1. Общие положения
- •2.6.2. Простые операторы
- •Оператор присваивания
- •Оператор вызова процедуры
- •Пустой оператор
- •Оператор безусловного перехода
- •2.6.3. Структурированные операторы
- •Составной оператор
- •Оператор ветвления if
- •Оператор множественного выбора case
- •Оператор повтора for
- •Оператор повтора repeat
- •Оператор повтора while
- •2.6.4. Прямая передача управления в операторах повтора
- •2.7. Подпрограммы
- •2.7.1. Общие положения
- •2.7.2. Объявление процедур и функций
- •Список формальных параметров
- •Локальные объявления
- •Тип возвращаемого значения
- •Соглашения о вызове подпрограмм
- •2.7.3. Вызов процедур и функций
- •2.7.4. Перегрузка процедур и функций
- •2.7.5. Рекурсивные подпрограммы
- •2.7.6. Упреждающее объявление процедур и функций
- •2.7.7. Процедурные типы данных
- •2.7.8. Стандартные процедуры и функции
- •2.8. Структура программных единиц
- •2.8.1. Структура файла проекта
- •Заголовок программы
- •Подключение модулей
- •Программный блок
- •2.8.2. Структура модуля
- •2.8.3. Стандартные модули языка Delphi
- •2.8.4. Область действия идентификаторов
- •2.9. Массивы
- •2.9.1. Статические массивы
- •2.9.2. Работа с массивами
- •2.9.3. Массивы в параметрах процедур и функций
- •2.9.4. Уплотнение структурных данных в памяти
- •2.9.5. Динамические массивы
- •2.10. Множества
- •2.10.1. Объявление множества
- •2.10.2. Операции над множествами
- •2.10.3. Стандартные процедуры для работы с множествами
- •2.11. Записи
- •2.11.1. Объявление записи
- •2.11.2. Операции над записями
- •2.11.3. Записи с вариантами
- •2.12. Файлы
- •2.12.1. Понятие файла
- •2.12.2. Работа с файлами
- •2.12.3. Стандартные подпрограммы управления файлами
- •2.13. Переменные с непостоянным типом значений
- •2.13.1. Тип данных Variant
- •2.13.2. Значения переменных с типом Variant
- •2.13.3. Variant в выражениях
- •2.13.4. Преобразование вариантов к другим типам данных
- •2.13.5. Подпрограммы для работы с вариантами
- •2.13.6. Вариантные массивы
- •2.14. Указатели
- •2.14.1. Понятие указателя
- •2.14.2. Стандартные указательные типы
- •2.14.3. Динамическое распределение памяти
- •2.14.4. Операции над указателями
- •2.14.5. Процедуры GetMem и FreeMem
- •2.15. Представление строк в памяти
- •2.16. Нуль-терминированные строки
- •2.17.1. Встроенный ассемблер
- •2.17.2. Подключение внешних подпрограмм
- •Delphi 6 в подлиннике
- •Часть I. Введение в delphi 6
- •Глава 1. Среда Delphi 6
- •Глава 2. Язык Object Pascal
- •Глава 3. Использование визуальных компонентов
- •Глава 4. Форма - главный компонент приложения
- •Глава 20. Реляционный способ доступа к данным
- •Глава 21. Работа с отчетами
- •Глава 22. Инструментальные средства
- •Часть V. Удаленные базы данных
- •Глава 23. Введение в работу с удаленными базами данных
- •Глава 24. Работа с удаленными базами данных
- •Глава 25. Инструментальные средства для
- •Глава 26. Трехуровневые приложения
- •Часть VI. Публикация баз данных в интернете
- •Глава 27. Введение в технологии публикаций
- •Глава 28. Web-приложения, серверы и интерфейсы
- •Глава 29. Публикация баз данных средствами Delphi
2.13.5. Подпрограммы для работы с вариантами
1. Тип значения выясняется с помощью функции
VarType(const V: Variant): Integer;
Возвращаемый результат формируется из констант, перечисленных в таблице. Например, следующий условный оператор проверяет, содержит ли переменная строку (массив строк):
|
if VarType(V) and varTypeMask = varString then ... |
| ||
Код типа |
Значение |
Описание | ||
varEmpty |
$0000 |
Переменная содержит значение Unassigned. | ||
varNull |
$0001 |
Переменная содержит значение Null. | ||
varSmallint |
$0002 |
Переменная содержит значение типа Smallint. | ||
varInteger |
$0003 |
Переменная содержит значение типа Integer. | ||
varSingle |
$0004 |
Переменная содержит значение типа Single. | ||
varDouble |
$0005 |
Переменная содержит значение типа Double. | ||
varCurrency |
$0006 |
Переменная содержит значение типа Currency. | ||
varDate |
$0007 |
Переменная содержит значение типа TDateTime. | ||
varOleStr |
$0008 |
Переменная содержит ссылку на строку формата Unicode в динамической памяти. | ||
varDispatch |
$0009 |
Переменная содержит ссылку на интерфейс IDispatch (интерфейсы позже). | ||
varError |
$000A |
Переменная содержит системный код ошибки. | ||
varBoolean |
$000B |
Переменная содержит значение типа WordBool. | ||
varVariant |
$000C |
Элемент варьируемого массива содержит значение типа Variant (код varVariant используется только в сочетании с флагом varArray). | ||
varUnknown |
$000D |
Переменная содержит ссылку на интерфейс IUnknown (интерфейсы рассмотрены в главе 6). | ||
varShortint |
$0010 |
Переменная содержит значение типа Shortint | ||
varByte |
$0011 |
Переменная содержит значение типа Byte. | ||
varWord |
$0012 |
Переменная содержит значение типа Word | ||
varLongword |
$0013 |
Переменная содрежит значение типа Longword | ||
varInt64 |
$0014 |
Переменная содержит значение типа Int64 | ||
varStrArg |
$0048 |
Переменная содержит строку, совместимую со стандартом COM, принятым в операционной системе Windows. | ||
varString |
$0100 |
Переменная содержит ссылку на длинную строку. | ||
varAny |
$0101 |
Переменная содержит значение любого типа данных технологии CORBA | ||
Флаги |
|
| ||
varTypeMask |
$0FFF |
Маска для выяснения типа значения. | ||
varArray |
$2000 |
Переменная содержит массив значений. | ||
varByRef |
$4000 |
Переменная содержит ссылку на значение. |
2. Функция
VarAsType(const V: Variant; VarType: Integer): Variant;
позволяет вам преобразовать значение варьируемой переменной к нужному типу, например:
V1 := '100'; V2 := VarAsType(V1, varInteger); |
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; |
|