Шпаргалка VCL

Пример книги, опоздавшей на несколько лет (может даже десятилетий). Изначально в ней планировалось создать всеобъемлющий мануал по библиотеке VCL, затрагивающий как Delphi, так и C++ Builder. В книге постепенно, шаг за шагом, от более простого к более сложному рассматривались различные аспекты программирования в этих средах. Так же приводилось сопоставление синтаксических конструкций языков Pascal/Delphi и С/С++. Это должно было максимально облегчить возможный переход читателя с Delphi на C++, или (чем черт не шутит) наоборот.

К сожалению, как это часто бывает, во время работы над ней пришло четкое понимание того, что материал, приводимый в ней, безнадежно устарел и потерял все остатки актуальности. Поэтому, хотя сама идея такой книги мне кажется интересной, я вынужден прекратить работу над ней. Точнее говоря работа уже давно прекращена. Данные наработки долгое время (больше года) лежали на моем компьютере. Теперь я решил поделиться ими с общественностью. Вдруг кому будет интересно.

Данные наработки выкладываю как есть. Если честно даже не придумал, как их толком назвать. Поэтому оставляю черновое название книги, которой не суждено быть.

Оглавление

Глава 1. Целые числа
Целочисленные типы данных
Семейство типов *_PTR
Операции
Префиксная и постфиксная формы инкремента и декремента
Множественное присваивание
Запятая
Приоритеты операций
Сумма инкрементов
Переполнение разрядной сетки
Переполнение разрядной сетки, приводящее к изменению знака
Сравнение знаковых и беззнаковых чисел
$ и 0x
В поисках числа 128
Операции сдвига
Сдвиг 64-разрядных чисел в C++ Builder
Сдвиг 64-разрядных чисел в Delphi
Циклический сдвиг влево
Циклический сдвиг вправо
Макрос LOBYTE
Макрос HIBYTE
Макрос MAKEWORD
Макрос LOWORD
Макрос HIWORD
Макрос MAKELONG
Макросы для 64-разрядных чисел
Комбинирование макросов
Функции Min и Max
Функции DivMod и div
Процедуры Inc и Dec
Функция Odd
Функция MulDiv
Резюме
Глава 2. Вещественные числа
Вещественные типы данных
Тройственность функций языка С
abs и fabs
Математические функции
Математические константы
Округление до целого
Присвоение
Приведение типа
Функция Ceil
Функция Floor
Функция Trunc
Функция Round
Сравнение методов округления
Реализация функции Round в C++ Builder
Функция RoundTo
Функция SimpleRoundTo
Функции Int и Frac
Функция Frexp
Функции конвертирования значений углов
Отношение целых чисел
Ошибки компьютера
Ошибка представления числа
Ошибка в расчетах
Вычитание в цикле
Сравнение чисел
Суть проблемы
Точностные константы
Функция IsZero
Функция Sign
Функция SameValue
Функция CompareValue
Функция InRange
Функция EnsureRange
Резюме
Глава 3. Символы
Символьные типы данных
Unicode символы в Delphi 7
Функции работы с отдельными символами в Delphi
Chr
Ord
Pred
Succ
UpCase
Явное приведение типа (Char и WideChar)
Как Delphi жульничает с типом данных
Функции работы с отдельными символами в C
isalnum и iswalnum
isalpha и iswalpha
iscntrl и iswcntrl
isdigit и iswdigit
isgraph и iswgraph
islower и iswlower
isprint и iswprint
ispunct и iswpunct
isspace и iswspace
isupper и iswupper
isxdigit и iswxdigit
tolower и towlower
toupper и towupper
Функции AnsiChar и WideChar
Кодирование символов
Кодировки CP866, Windows-1251 и Unicode
Проблема кириллицы в консоли
Решение задачи перекодировки на основе хэш-таблиц
Хранение кодовых страниц в виде массивов
ANSI в ANSI
ANSI в Unicode
Unicode в ANSI
Реализация функций работы с символами
Succ и Pred
isdigit и iswdigit
isxdigit и iswxdigit
iscntrl и iswcntrl
isspace и iswspace
islower и iswlower
isupper и iswupper
isalpha и iswalpha
isalnum и iswalnum
tolower и towlower
toupper, towupper и UpCase
Тип TCHAR
Управляющие символы
Резюме
Глава 4. Архитектура приложения
Структура программы на Delphi
Структура программы на языке Pascal
Структура модуля на языке Pascal
Оператор in
Код инициализации модуля
Структура проекта в Delphi
Структура программы в C++ Builder
Структура программы на языке C
Функция main
Функция WinMain
Код возврата процесса
Заголовочные файлы
Директива #include
Модули в C, C++ и C++ Builder
Структура проекта в C++ Builder
Раздельная компиляция
Сопоставление кода программ Delphi и C++ Builder
Работа в IDE
Общий интерфейс
Несовместимость Delphi
Просмотр форм и модулей
Глава 3. Строки
Строковые типы данных в Delphi
Функции работы со строками
Length
Copy
Delete
Pos
Insert
String, AnsiString и WideString
PChar и PAnsiChar
PWideChar
Строковые типы данных в C++ Builder
Функции работы со строками
strcat и wcscat
strncat и wcsncat
strchr и wcschr
strcmp и wcscmp
strncmp и wcsncmp
strcpy и wcscpy
strncpy и wcsncpy
strlen и wcslen
strrchr и wcsrchr
strstr и wcsstr
Классы string и wstring
Класс ShortStringBase
Класс ShortString
Класс AnsiString
Класс WideString
Функция MultiByteToWideChar и WideCharToMultiByte