А. Григорьев - О чём не пишут в книгах по Delphi

Тут можно читать онлайн А. Григорьев - О чём не пишут в книгах по Delphi - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство БХВ-Петербург, год 2008. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    О чём не пишут в книгах по Delphi
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2008
  • Город:
    СПб
  • ISBN:
    978-5-9775-019003
  • Рейтинг:
    4.25/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

А. Григорьев - О чём не пишут в книгах по Delphi краткое содержание

О чём не пишут в книгах по Delphi - описание и краткое содержание, автор А. Григорьев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Рассмотрены малоосвещённые вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные механизмы их работы, особенности для протоколов TCP и UDP и др. Большое внимание уделено разбору ситуаций возникновения ошибок и получения неверных результатов в "простом и правильном" коде. Отдельно рассмотрены особенности работы с целыми, вещественными и строковыми типами данных, а также приведены примеры неверных результатов, связанных с ошибками компилятора, VCL и др. Для каждой из таких ситуаций предложены методы решения проблемы. Подробно рассмотрен синтаксический анализ в Delphi на примере арифметических выражений. Многочисленные примеры составлены с учётом различных версий: от Delphi 3 до Delphi 2007. Прилагаемый компакт-диск содержит примеры из книги.

Для программистов

О чём не пишут в книгах по Delphi - читать онлайн бесплатно ознакомительный отрывок

О чём не пишут в книгах по Delphi - читать книгу онлайн бесплатно (ознакомительный отрывок), автор А. Григорьев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Примеры ко второй главе находятся в папке 2 Использование сокетов в Delphi, содержимое которой приведено в табл. П2.2.

Таблица П2.2.Примеры к главе 2

Папка Описание Разделы главы
UDPChat Простейший чат с использованием UDP. Прием и отправка сообщений в разных нитях через различные сокеты 2.1.5. Протокол UDP. 2.1.8. Создание сокета. 2.1.9. Передача данных при использовании UDP. 2.1.10. Пример программы — простейший чат на UDP
SimplestServer Простейший TCP-сервер, реализованный в виде консольного приложения и работающий на блокирующих сокетах в одной нити. Способен взаимодействовать только с одним клиентом одновременно 2.1.6. Протокол TCP. 2.1.8. Создание сокета. 2.1.11. Передача данных при использовании TCP. 2.1.12. Примеры передачи данных с помощью TCP
SimpleClient Простой TCP-клиент использующий блокирующие сокеты и работающий с одним сервером 2.1.6. Протокол TCP. 2.1.8. Создание сокета. 2.1.11. Передача данных при использовании TCP. 2.1.12. Примеры передачи данных с помощью TCP
MultithreadedServer Многонитевой TCP-сервер на блокирующих сокетах, работающий с неограниченным чистом клиентов. Для каждого клиента создается отдельная нить 2.1.5. Протокол TCP. 2.1.8. Создание сокета. 2.1.11. Передача данных при использовании TCP. 2.1.12. Примеры передачи данных с помощью TCP
SelectChat UDP-чат с одним сокетом и одной нитью и для приема и для отправки сообщений. Для определения момента получения данных используется функция select 2.1.13. Определение готовности сокета. 2.1.14. Примеры использования функции select
SelectServer Однонитевой TCP-сервер, работающий на блокирующих сокетах и способный к взаимодействию одновременно с неограниченным числом клиентов. Для определения момента получения данных используется функция select 2.1.13. Определение готовности сокета. 2.1.14. Примеры использования функции select
NonBlockingServer Однонитевой TCP-сервер, работающий на неблокирующих сокетах и способный к взаимодействию одновременно с неограниченным числом клиентов 2.1.15. Неблокирующий режим. 2.1.16. Сервер на неблокирующих сокетах
AsyncSelectServer TСР-сервер, использующий оконные сообщения для взаимодействия с неограниченным числом клиентов 2.2.5. Асинхронный режим, основанный на сообщениях. 2.2.6. Пример сервера, основанного на сообщениях
EventSelectServer Многонитевой TCP-сервер. Нить, устанавливающая подключения, и нити, взаимодействующие с клиентами, управляются событиями, связанными с сокетами 2.2.7. Асинхронный режим, основанный на событиях. 2.2.8 Пример использования сокетов с событиями
EventSelectClient TCP-клиент, поддерживающий расширенную версию протокола обмена, реализованную в примере EventSelectServer. Использует сокеты, основанные на оконных сообщениях 2.2.5. Асинхронный режим, основанный на сообщениях. 2.2.7. Асинхронный режим, основанный на событиях. 2.2.8. Пример использования сокетов с событиями
OverlappedServer TCP-сервер на основе перекрытого ввода-вывода с использованием процедур завершения 2.2.9. Перекрытый ввод-вывод. 2.2.10. Сервер, использующий перекрытый ввод-вывод

Примеры к главе 3

Примеры к третьей главе находятся в папке 3 Подводные камни, содержимое которой приведено в табл. П2.3.

Таблица П2.3.Примеры к главе 3

Папка Подпапка Описание Разделы главы
Неочевидные особенности целых чисел Assignment1 Пример потери значения при присваивании беззнаковой переменной отрицательного значения 3.1.2. Выход за пределы диапазона при присваивании
Assignment2 Пример потери значения при присваивании переменной значения, большего, чем допускается типом 3.1.2. Выход за пределы диапазона при присваивании
Overflow1 Пример перехода беззнакового значения через ноль при вычитании 3.1.3. Переполнение при арифметических операциях
Overflow2 Пример невозможности контроля переполнения с помощью опции {$R+}при использовании функции Dec 3.1.3. Переполнение при арифметических операциях
Compare1 Пример корректного сравнения знакового и беззнакового числа 3.1.4. Сравнение знакового и беззнакового числа
Compare2 Пример некорректного сравнения знакового и беззнакового числа при использовании приведения типов 3.1.4. Сравнение знакового и беззнакового числа
ForRange Пример неправильного вычисления границы диапазона цикла forпри использовании беззнаковой управляющей переменной 3.1.5. Неявное преобразование в цикле for
Неочевидные особенности вещественных чисел WrongValue Пример присваивания вещественной переменной значения, отличного от заданного в программе 3.2.6. "Неправильное" значение
Compare1 Пример ошибки при сравнении вещественной переменной и вещественного литерала 3.2.7. Сравнение
Compare2 Пример ошибки при сравнении вещественных переменных разных типов 3.2.8. Сравнение разных типов
Subtraction Пример накопления ошибки при многократном вычитании 3.2.9. Вычитание в цикле
Epsilon Примет поиска машинного эпсилон (минимального числа, которое при добавлении к единице дает значение, отличное от единицы) 3.2.12. Машинное эпсилон
Тонкости работы со строками Constants Пример, позволяющий исследовать, где в различных ситуациях хранятся строковые литералы и как они присваиваются переменным 3.3.2. Хранение строковых литералов
PCharLit Пример, демонстрирующий, что явное приведение строковых литералов к типу PCharв большинстве случаев бесполезно, а иногда приводит к ошибке 3.3.3. Приведение литералов к типу PChar
Comparisons Пример, демонстрирующий то, как в различных ситуациях компилятор сравнивает строки 3.3.4. Сравнение строк
SideChange Пример нежелательного изменения значения строковой переменной при низкоуровневом изменении значения другой строковой переменной 3.3.5. Побочное изменение
Zero Пример, демонстрирующий невозможность правильного преобразования строки, содержащей символ #0, из AnsiStringв PChar 3.3.6. Нулевой символ в середине строки
ZeroFind Пример неправильной работы функции AnsiPosсо строками, содержащими символ #0 3.3.6. Нулевой символ в середине строки
StringResult Пример, демонстрирующий особый способ хранения результата функции, возвращающей строковое значение 3.3.7. Функция, возвращающая AnsiString
RecordReadWrite Примеры, демонстрирующие правильные и неправильные способы записи типов, содержащих строки, в поток 3.3.8. Строки в записях
RecordCopy Пример, демонстрирующий возникновение нежелательных эффектов при низкоуровневом копировании записей, содержащих строки 3.3.8. Строки в записях
Прочие подводные камни OpOrder Пример того, что компилятор может вычислять операнды бинарной операции в порядке, отличном от интуитивно ожидаемого 3.4.1. Порядок вычисления операндов
UpDownDlg Пример зацикливания обработчика нажатия кнопки мыши компонента TUpDownиз-за неоправданного захвата мыши в монопольное использование 3.4.2. Зацикливание обработчика TUpDown.OnClick при открытии диалогового окна в обработчике
CloseAV Пример возникновения ошибки в перекрытом методе WndProcиз-за неправильной реализации метода TCustomForm.Release 3.4.3. Access violation при закрытии формы перекрытым методом WndProc
ClassName Пример, демонстрирующий где хранится имя оконного класса, возвращаемое функцией GetClassInfo, и как эта память может быть использована для других нужд раньше, чем указатель на нее покинет область видимости 3.4.4. Подмена имени оконного класса, возвращаемого функций GetClassInfo
ListIndex Пример, демонстрирующий ошибку обращения к свойству TComboBox.Items.Objectsпри значении свойства, равном -1 3.4.6. Ошибка List index out of bounds при корректном значении индекса
WrongAnchors Пример того, что компоненты на форме располагаются не так, как предписывает свойство Anchors, если начальный размер формы во время выполнения программы не совпадает с размером, заданным при проектировании и методы борьбы с этой проблемой 3.4.7. Неправильное поведение свойства Anchors
MethodPtrCmp Пример генерирования компилятором неправильного кода при сравнении указателей на методы и способ решения этой проблемы 3.4.8. Ошибка при сравнении указателей на метод
ParentWnd Пример возникновения ошибки при использовании в деструкторе оконного компонента свойств, требующих существования окна 3.4.10. Невозможность использования некоторых свойств оконного компонента
FrameDel Пример скрытой ошибки при использовании свойств, требующих существования окна, в деструкторе фрейма: исключение не возникает, но происходит утечка ресурсов 3.4.10. Невозможность использования некоторых свойств оконного компонента

Примеры к главе 4

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


А. Григорьев читать все книги автора по порядку

А. Григорьев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




О чём не пишут в книгах по Delphi отзывы


Отзывы читателей о книге О чём не пишут в книгах по Delphi, автор: А. Григорьев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x