Предисловие
Это не старый добрый Паскаль
Delphi для Linux
Об этой книге
Соглашения, используемые в книге
Символы примечаний
Другие источники информации
Как с нами связаться
Благодарности

Глава 1. Delphi Pascal
Модули (Unit)
Формы и файлы
Разделение интерфейса (interface) и реализации
(implementation)
Инициализация (initialization) и завершение
(finalization)
Модули System и SysInit
Программы
Библиотеки
Использование динамической памяти
Разделяемые объекты
Установка базового адреса
Пакеты
Пакеты для разработки (design-time) и пакеты для
выполнения (runtime)
Создание пакета
Типы данных
Целые типы
Вещественные типы
Массивы
Динамические массивы
Открытые массивы
Открытые массивы вариантного типа
Строки
Символьные константы
Смешение различных строковых типов
Строки Unicode и многобайтовые строки
Логические типы
Тип Variant
Указатели
Указатели на функции и методы
Объявления типов
Переменные и константы
Типизированные константы
Потоковые переменные
Обработка исключительных ситуаций
Файловый ввод/вывод
Функции и процедуры
Перегрузка подпрограмм
Параметры по умолчанию
Переменная Result

Глава 2. Объектная модель Delphi
Классы и объекты
Классы
Объекты
Наследование
Поля
Методы
Конструкторы
Деструкторы
Жизненный цикл объекта
Уровни доступа
Скрытый конструктор
Свойства
Интерфейсы
Счетчики ссылок
Сообщения
Управление распределением памяти
Компоненты и объекты
Ключевое слово "object"

Глава 3. Информация о типе времени выполнения
Таблица виртуальных методов
Секция Published
Публикуемые методы
Дополнительная RTTI-информация о методах
Публикуемые поля и типы полей
Публикуемые поля и компоненты
Публикуемые свойства
Модуль TypInfo
Дополнительная информация о типе
Публикуемые свойства
Виртуальные и динамические методы
Инициализация и завершение
Автоматические методы
Интерфейсы
Изучение RTTI

Глава 4. Создание многопоточных приложений
Потоки и процессы
Состояния и распределение потоков
Синхронизация потоков
Исключительные ситуации
Взаимная блокировка (deadlock)
Многопоточное программирование
Класс TThread
Функции BeginThread и EndThread
Локальные данные потока
Процессы
Фьючерсы

Глава 5. Справочник по языку
Abs, функция
Absolute, директива
Abstract, директива
AbstractErrorProc, переменная
AddModuleUnloadProc, процедура
Addr, функция
AllocMemCount, переменная
AllocMemSize, переменная
And, ключевое слово
AnsiChar, тип
AnsiString, тип
Append, процедура
ArcTan, функция
Array, ключевое слово
As, ключевое слово
Asm, ключевое слово
Assembler, директива
Assert, процедура
AssertErrorProc, переменная
Assign, процедура
Assigned, функция
AssignFile, процедура
At, директива
Automated, директива
Begin, ключевое слово
BeginThread, функция
BlockRead, процедура
BlockWrite, процедура
Boolean, тип
Break, процедура
Byte, тип
ByteBool, тип
Cardinal, тип
Case, ключевое слово
CDecl, директива
ChangeAnyProc, процедура
Char, тип
ChDir, процедура
Chr, функция
Class, ключевое слово
ClearAnyProc, переменная
Close, процедура
CloseFile, процедура
CmdLine, переменная
CmdShow, переменная
Comp, тип
CompToCurrency, функция
CompToDouble, функция
Concat, функция
Const, ключевое слово
Constructor, ключевое слово
Contains, директива
Continue, процедура
Copy, функция
Cos, функция
Currency, тип
CurrencyToComp, процедура
DataMark, переменная
DebugHook, переменная
Dec, процедура
Default, директива
Default8087CW, переменная
Delete, процедура
Destructor, ключевое слово
DispCallByIDProc, переменная
Dispid, директива
Dispinterface, ключевое слово
Dispose, процедура
Div, ключевое слово
DllProc, переменная
Do, ключевое слово
Double, тип
DoubleToComp, процедура
Downto, ключевое слово
Dynamic, директива
Else, ключевое слово
EmptyParam, переменная
End, ключевое слово
EnumModules, процедура
EnumResourceModules, процедура
Eof, функция
Eoln, функция
Erase, процедура
ErrorAddr, переменная
ErrorProc, переменная
Except, ключевое слово
ExceptClsProc, переменная
ExceptionClass, переменная
ExceptObjProc, переменная
ExceptProc, переменная
Exclude, процедура
Exit, процедура
ExitCode, переменная
ExitProc, переменная
Exp, функция
Export, директива
Exports, ключевое слово
Extended, тип
External, директива
Far, директива
File, ключевое слово
FileMode, переменная
FilePos, функция
FileSize, функция
FillChar, процедура
Finalization, ключевое слово
Finalize, процедура
Finally, ключевое слово
FindClassHInstance, функция
FindHinstance, функция
FindResouceHInstance, функция
Flush, процедура
For, ключевое слово
Forward, директива
Frac, функция
FreeMem, процедура
FreeMemory, функция
Function, ключевое слово
GetDir, функция
GetHeapStatus, функция
GetMem, процедура
GetMemory, функция
GetMemoryManager, процедура
GetPackageInfoTable, тип
Goto, ключевое слово
Halt, процедура
HeapAllocFlags, переменная
Hi, функция
High, функция
HInstance, переменная
HPrevInst, переменная
HResult, тип
IDispatch, интерфейс
If, ключевое слово
Implementation, ключевое слово
Implements, директива
In, ключевое слово
Inc, процедура
Include, процедура
Index, директива
Inherited, ключевое слово
Initialization, ключевое слово
Initialize, процедура
InitProc, переменная
Inline, ключевое слово
Input, переменная
Insert, процедура
Int, фукнция
Int64, тип
Integer, тип
Interface, ключевое слово
IOResult, функция
Is, ключевое слово
IsConsole, переменная
IsLibrary, переменная
IsMemoryManagerSet, функция
IsMultiThread, переменная
IUnknown, интерфейс
JITEnable, переменная
Label, ключевое слово
Length, функция
LibModuleList, переменная
Library, ключевое слово
Ln, функция
Lo, функция
LoadResouceModule, функция
LoadResString, функция
LongBool, тип
LongInt, тип
LongWord, тип
Low, функция
MainInstance, переменная
MainThreadID, переменная
MaxInt, константа
MaxLongInt, константа
Message, директива
MkDir, процедура
Mod, ключевое слово
ModuleIsCpp, переменная
ModuleIsLib, переменная
ModuleIsPackage, переменная
ModuleUnloadList, переменная
Move, процедура
Name, директива
Near, директива
New, процедура
Nil, ключевое слово
Nodefault, директива
NoErrMsg, переменная
Not, ключевое слово
Null, переменная
Object, ключевое слово
Odd, функция
Of, ключевое слово
OleStrToString, функция
OleStrToStrVar, процедура
OleVariant, тип
On, директива
OpenString, тип
Or, ключевое слово
Ord, функция
Out, директива
Output, переменная
Overload, директива
Override, директива
Package, директива
PackageInfo, тип
PackageInfoTable, тип
PackageUnitEntry, тип
Packed, ключевое слово
PAnsiChar, тип
PAnsiString, тип
ParamCount, функция
ParamStr, функция
Pascal, директива
PChar, тип
PCurrency, тип
PDateTime, тип
PExtended, тип
PGUID, тип
Pi, функция
PInt64, тип
PInterfaceEntry, тип
PInterfaceTable, тип
PLibModule, тип
PMemoryManager, тип
PModuleUnloadRec, тип
Pointer, тип
POleVariant, тип
Pos, функция
Pred, функция
PResStringRec, тип
Private, директива
Procedure, ключевое слово
Program, ключевое слово
Property, ключевое слово
Protected, директива
PShortString, тип
PString, тип
Ptr, функция
Public, директива
Published, директива
PUniEntryTable, тип
PVarArray, тип
PVarData, тип
PVariant, тип
PVarRec, тип
PWideChar, тип
PWideString, тип
Raise, ключевое слово
RaiseList, функция
Random, функция
Randomize, процедура
RandSeed, переменная
Read, директива
Read, процедура
ReadLn, процедура
Readonly, директива
Real, тип
Real48, тип
ReallocMem, процедура
ReallocMemory, функция
Record, ключевое слово
RefAnyProc, переменная
Register, директива
Register, процедура
RegisterModule, процедура
Reintroduce, директива
RemoveModuleUnloadProc, процедура
Rename, процедура
Repeat, ключевое слово
Requires, директива
Reset, процедура
Resident, директива
Resourcestring, ключевое слово
Result, переменная
Rewrite, процедура
RmDir, процедура
Round, функция
RunError, процедура
SafeCall, директива
SafeCallErrorProc, переменная
Seek, процедура
SeekEof, функция
SeekEoln, функция
Self, переменная
Set, ключевое слово
Set8087CW, процедура
SetInOutRes, процедура
SetLength, процедура
SetMemoryManager, процедура
SetRaiseList, функция
SetString, процедура
SetTextBuf, процедура
Shl, ключевое слово
ShortInt, тип
ShortString, тип
Shr, ключевое слово
Sin, функция
Single, тип
SizeOf, функция
Slice, функция
SmallInt, тип
Sqr, функция
Sqrt, функция
StdCall, директива
Stored, директива
Str, процедура
String, ключевое слово
StringOfChar, функция
StringToOleStr, функция
StringToWideChar, функция
Succ, функция
Swap, функция
SysFreeMem, функция
SysGetMem, функция
SysReallocMem, функция
TClass, тип
TDateTime, тип
TEnumModuleFuncLW, тип
Test8086, переменная
Test8087, переменная
TestFDIV, переменная
Text, тип
TextFile, тип
TGUID, тип
THeapStatus, тип
Then, ключевое слово
ThreadVar, ключевое слово
TInterfacedClass, тип
TInterfacedObject, тип
TInterfaceEntry, тип
TInterfaceTable, тип
TLibModule, тип
TlsIndex, переменная
TlsLast, переменная
TMemoryManager, тип
TModuleUnloadProcLW, тип
TModuleUnloadRec, тип
To, ключевое слово
TObject, тип
TResStringRec, тип
Trunc, функция
Truncate, процедура
Try, ключевое слово
TThreadFunc, тип
TVarArray, тип
TVarArrayBound, тип
TVarData, тип
TVarRec, тип
Type, ключевое слово
TypeInfo, функция
Unassigned, переменная
UniqueString, процедура
Unit, ключевое слово
UnitEntryTable, тип
UnregisterModule, процедура
Until, ключевое слово
UpCase, функция
Uses, ключевое слово
Val, процедура
Var, ключевое слово
VarArrayCreate, функция
VarArrayDimCount, функция
VarArrayHighBound, функция
VarArrayLock, функция
VarArrayLowBound, функция
VarArrayOf, функция
VarArrayRedim, процедура
VarArrayRef, функция
VarArrayUnlock, процедура
VarAsType, функция
VarCast, процедура
VarClear, процедура
VarCopy, процедура
VarDispProc, переменная
VarFromDateTime, функция
Variant, тип
VarIsArray, функция
VarIsEmpty, функция
VarIsNull, функция
VarToDateTime, функция
VarToStr, функция
VarType, функция
Virtual, директива
While, ключевое слово
WideChar, тип
WideCharLenToString, функция
WideCharLenToStrVar, процедура
WideCharToString, функция
WideCharToStrVar, процедура
WideString, тип
With, ключевое слово
Word, тип
WordBool, тип
Write, директива
Write, процедура
WriteLn, процедура
WriteOnly, директива
Xor, ключевое слово

Глава 6. Системные константы
Коды типов значений Variant
Типы открытых массивов
Смещения в таблице виртуальных методов
Коды ошибок времени выполнения

Глава 7. Операторы
Унарные операторы
Мультипликативные операторы
Аддитивные операторы
Операторы сравнения

Глава 8. Директивы компилятора
$A, директива компилятора
$Align, директива компилятора
$AppType, директива компилятора
$Assertions, директива компилятора
$B, директива компилятора
$BoolEval, директива компилятора
$C, директива компилятора
$D
$DebugInfo, директива компилятора
$Define, директива компилятора
$DefinitionInfo, директива компилятора
$DenyPackageUnit, директива компилятора
$Description, директива компилятора
$DesignOnly, директива компилятора
$E, директива компилятора
$Else, директива компилятора
$EndIf, директива компилятора
$ExtendedSyntax, директива компилятора
$ExternalSym, директива компилятора
$G, директива компилятора
$H, директива компилятора
$Hints, директива компилятора
$HppEmit, директива компилятора
$I, директива компилятора
$IfDef, директива компилятора
$IfNDef, директива компилятора
$IfOpt, директива компилятора
$ImageSize, директива компилятора
$ImplicitBuild, директива компилятора
$ImportedData, директива компилятора
$Include, директива компилятора
$IOChecks, директива компилятора
$J, директива компилятора
$L, директива компилятора
$Link, директива компилятора
$LocalSymbols, директива компилятора
$LongStrings, директива компилятора
$M, директива компилятора
$MaxStackSize, директива компилятора
$MinEnumSize, директива компилятора
$MinStackSize, директива компилятора
$NoDefine, директива компилятора
$NoInclude, директива компилятора
$O, директива компилятора
$ObjExportAll, директива компилятора
$OpenStrings, директива компилятора
$Optimization, директива компилятора
$OverflowChecks, директива компилятора
$P, директива компилятора
$Q, директива компилятора
$R, директива компилятора
$RangeChecks, директива компилятора
$RealCompatibility, директива компилятора
$ReferenceInfo, директива компилятора
$Resource, директива компилятора
$RunOnly, директива компилятора
$SafeDivide, директива компилятора
$StackFrames, директива компилятора
$T, директива компилятора
$TypedAddress, директива компилятора
$TypeInfo, директива компилятора
$U, директива компилятора
$Undef, директива компилятора
$V, директива компилятора
$VarStringChecks, директива компилятора
$W, директива компилятора
$Warnings, директива компилятора
$WeakPackageUnit, директива компилятора
$WriteableConst, директива компилятора
$X, директива компилятора
$Y, директива компилятора
$Z, директива компилятора
Приложение A. Утилиты командной строки
Компилятор, dcc32
Компилятор ресурсов, brcc32.exe
Конвертор файлов DFM, convert.exe
Утилита создания дампа, tdump.exe
IDE, delphi32.exe
Приложение B. Модуль SysUtils
Ошибки и исключительные ситуации
Классы исключительных ситуаций
Поддержка обработки ошибок
Работа с файлами
Файловый ввод и вывод
Работа с файлами
Работа с каталогами
Работа с дисками
Работа с именами файлов
Работа со строками
Функции для работы со строками ANSI
Функции для работы с PChar
Устаревшие строковые подпрограммы
Преобразования чисел
Дата и время
Локализация
Исполняемые модули
Windows
Прочее