ЧАСТЬ I. ОСНОВЫ |
19 |
Глава 1. Что и как можно разрабатывать в Delphi 2005 |
21 |
Многоязычная среда разработки |
21 |
Язык программирования Delphi |
22 |
Язык программирования C# |
24 |
Язык программирования Visual Basic |
24 |
Программные платформы |
25 |
Компоненты .NET и VCL |
26 |
Какие приложения можно создавать в Delphi |
27 |
Перенос существующих приложений на платформу .NET |
29 |
Резюме |
30 |
Глава 2. Введение в архитектуру Microsoft .NET |
31 |
Три вопроса о .NET |
33 |
Что это такое? |
34 |
Зачем это нужно? |
35 |
Как это работает? |
37 |
Сборки, метаданные и промежуточный код |
39 |
Язык MSIL |
40 |
Сборка (Assembly) |
41 |
Метаданные |
43 |
Особенности разработки приложений .NET |
44 |
Пространства имен |
45 |
Общая система типов (Common Type System) |
46 |
Встроенные и определенные пользователем типы данных |
46 |
Перечисления |
46 |
Классы |
46 |
Интерфейсы |
47 |
Делегаты |
47 |
Указатели |
47 |
Массивы |
47 |
Правила межъязыкового взаимодействия Common Language Specification |
47 |
.NET Framework |
48 |
Common Language Runtime |
48 |
Компиляторы |
51 |
Безопасность приложения |
51 |
Библиотека базовых классов .NET |
52 |
.NET Framework SDK |
52 |
Высокоуровневые службы |
53 |
ASP.NET |
53 |
ADO.NET |
54 |
Windows Forms |
54 |
Резюме |
54 |
Глава 3. Язык программирования Delphi |
57 |
Объектно-ориентированное программирование |
57 |
Классы и объекты |
57 |
Поля, свойства и методы |
60 |
События |
61 |
Инкапсуляция |
62 |
Наследование |
62 |
Полиморфизм |
63 |
Методы |
65 |
Abstract |
65 |
Sealed |
65 |
Static |
66 |
Virtual и Dynamic |
66 |
Override |
67 |
Перегрузка методов |
69 |
Области видимости свойств и методов |
70 |
Пространство имен |
71 |
Синтаксис языка Delphi |
72 |
Типы данных |
72 |
Функции преобразования типов |
74 |
Операторы |
76 |
Структурные типы |
76 |
Циклы |
78 |
Обработка исключительных ситуаций |
79 |
Резюме |
80 |
Глава 4. Язык программирования C# |
81 |
Типы данных |
83 |
Пространство имен |
86 |
Классы |
88 |
Static |
89 |
Virtual и Override |
89 |
Abstract |
91 |
Sealed |
92 |
Конструкторы |
93 |
Синтаксис языка C# |
95 |
Операторы |
95 |
Константы |
96 |
Строки |
96 |
Формат вывода и форматирование строк |
96 |
Массивы |
97 |
Циклы |
99 |
Условные предложения |
101 |
Обработка исключительных ситуаций |
103 |
Ввод/вывод |
105 |
Резюме |
108 |
Глава 5. Реализация .NET в Delphi |
109 |
Общая система типов (Common Type System) |
110 |
Типы данных |
110 |
Классы |
111 |
Интерфейсы |
111 |
Делегаты |
112 |
Правила межъязыкового взаимодействия (Common Language Specification) |
112 |
Пространства имен |
112 |
Компиляция в промежуточный язык, сборки, метаданные |
116 |
Управление памятью и сборка мусора |
119 |
Реализация высокоуровневых служб .NET в Delphi |
120 |
Windows Forms |
120 |
ADO.NET |
121 |
ASP.NET |
121 |
Резюме |
121 |
Глава 6. Инструментарий разработчика |
123 |
Интегрированная среда разработки приложений |
123 |
Окно приветствия Welcome Page |
124 |
Палитра инструментов |
125 |
Редактор кода |
126 |
Режим Sync Edit |
127 |
Рефакторинг |
128 |
Контекстная помощь |
129 |
Ошибки |
130 |
Список точек останова |
130 |
Резюме |
131 |
ЧАСТЬ II. ПРИЛОЖЕНИЯ WINDOWS FORMS |
133 |
Глава 7. Приложение и проект |
135 |
Главный модуль проекта |
135 |
Файл формы |
137 |
Классы Control, UserControl, Form |
140 |
Классы элементов управления (Controls) |
140 |
Классы компонентов (Components) |
141 |
Классы диалоговых окон (Common Dialog Boxes) |
141 |
Описание экземпляра класса |
141 |
Резюме |
146 |
Глава 8. Элементы управления |
147 |
Компонент Label |
147 |
Компонент LinkLabel |
149 |
Компонент TextBox |
150 |
Компонент Button |
152 |
Компонент Panel |
154 |
Компонент CheckBox |
155 |
Компонент RadioButton |
158 |
Компонент ListBox |
160 |
Компонент ComboBox |
163 |
Компонент CheckedListBox |
165 |
Компонент PictureBox |
168 |
Компонент ImageList |
170 |
Компоненты HScrollBar и VScrollBar |
171 |
Компонент NumericUpDown |
172 |
Компонент DomainUpDown |
173 |
Компонент DataTimePicker |
175 |
Компонент MonthCalendar |
177 |
Компонент Timer |
178 |
Резюме |
180 |
Глава 9. Стандартные программные механизмы |
181 |
Интерфейс переноса Drag and Drop |
181 |
Усовершенствованное масштабирование |
188 |
Управление мышью |
189 |
Резюме |
190 |
Глава 10. Меню и панель инструментов |
191 |
Компонент MainMenu |
191 |
Компонент ContextMenu |
194 |
Компонент ToolBar |
197 |
Резюме |
201 |
Глава 11. Диалоги |
203 |
Стандартные компоненты диалога |
203 |
Компонент OpenFileDialog |
204 |
Компонент SaveFileDialog |
207 |
Компоненты PrintDialog, PrintDocument, PageSetupDialog и PrintPreviewDialog |
209 |
Компонент FontDialog |
213 |
Компонент ColorDialog |
214 |
Резюме |
215 |
Глава 12. Состояние приложения |
217 |
Компонент StatusBar |
217 |
Компонент ProgressBar |
220 |
Компонент TrackBar |
222 |
Компонент ToolTip |
224 |
Компонент NotifyIcon |
224 |
Компонент HelpProvider |
226 |
Компонент ErrorProvider |
228 |
Резюме |
230 |
Глава 13. Ввод данных |
231 |
Ввод и обработка текста |
231 |
Класс Font |
231 |
Компонент TextBox |
232 |
Компоненты ComboBox и ListBox |
234 |
Компонент DomainUpDown |
235 |
Компонент RichTextBox |
235 |
Ввод данных в числовых форматах |
238 |
Ввод даты и времени |
239 |
Компонент MonthCalendar |
240 |
Компонент DateTimePicker |
242 |
Ввод двоичных данных |
245 |
Резюме |
247 |
Глава 14. Работа с файлами |
249 |
Файл как объект файловой системы |
249 |
Класс File |
250 |
Класс FileInfo |
255 |
Пути и каталоги |
257 |
Класс Directory |
258 |
Класс DirectoryInfo |
260 |
Поиск файла |
262 |
Потоки |
264 |
Класс StreamReader |
264 |
Класс StreamWriter |
266 |
Класс FileStream |
268 |
Асинхронный режим доступа к данным |
270 |
Класс MemoryStream |
272 |
Операции ввода/вывода |
273 |
Создание файла и запись данных |
273 |
Открытие файла и чтение данных |
275 |
Резюме |
276 |
Глава 15. Перечислители, списки, коллекции |
277 |
Что такое коллекция |
278 |
Как устроена коллекция |
279 |
Интерфейс ICollection |
280 |
Интерфейс IList |
280 |
Интерфейс IEnumerable |
282 |
Интерфейс IEnumerator |
282 |
Класс CollectionBase |
283 |
Коллекция строк |
283 |
Управление коллекциями |
284 |
Резюме |
285 |
Глава 16. Иерархическое представление данных |
287 |
Компонент TreeView |
288 |
Класс TreeNode |
293 |
Компонент ListView |
296 |
Класс ListViewItem |
302 |
Класс ListViewSubItem |
304 |
Резюме |
304 |
Глава 17. Использование XML |
305 |
Что такое XML |
305 |
Основы синтаксиса XML |
308 |
Пролог |
310 |
Определение |
311 |
Тело документа. Корневой элемент |
312 |
Объектная модель документа |
313 |
Интерфейсы семейства IDOMNode |
314 |
Свойства nodeType, nodeName и nodeValue |
316 |
Свойства и методы, управляющие другими вершинами |
317 |
Пространства имен |
319 |
Интерфейс IDOMDocument |
320 |
Пример создания приложения, использующего модель DOM |
320 |
Реализация модели DOM в приложениях .NET |
322 |
Класс XmlNode |
323 |
Класс XMLElement |
328 |
Класс XMLAttribute |
329 |
Класс XMLDocument |
329 |
Резюме |
334 |
ЧАСТЬ III. ПРИЛОЖЕНИЯ VCL.NET |
335 |
Глава 18. Приложение и проект |
337 |
Проект как основа разработки приложения |
337 |
Класс TApplication |
345 |
Атрибуты приложения |
351 |
Обработка сообщений |
352 |
Реакция на действия пользователей |
355 |
Система помощи |
356 |
Резюме |
357 |
Глава 19. Меню и действия |
359 |
Редактор меню |
360 |
Как работает меню |
361 |
Главное меню приложения |
364 |
Всплывающее меню |
367 |
Действия. Компонент TActionList |
368 |
События, связанные с действиями |
369 |
Свойства, распространяемые на клиентов действия |
371 |
Прочие свойства |
372 |
Стандартные действия |
373 |
Категория Edit |
376 |
Категория Search |
376 |
Категория Help |
376 |
Категория File |
377 |
Категория Dialog |
377 |
Категория Window |
377 |
Категория Tab |
377 |
Категория List |
377 |
Категория Internet |
379 |
Категория Format |
380 |
Категория Dataset |
380 |
Категория Tools |
380 |
Компонент TActionManager |
381 |
Изменение и настройка внешнего вида панелей |
383 |
Ручное редактирование коллекций панелей и действий |
384 |
Резюме |
387 |
Глава 20. Списки и коллекции |
389 |
Список строк |
390 |
Класс TStrings |
390 |
Класс TStringList |
391 |
Список указателей |
399 |
Класс TList |
399 |
Пример использования списка указателей |
402 |
Коллекции |
406 |
Класс TCollection |
407 |
Класс TCollectionItem |
408 |
Резюме |
408 |
Глава 21. Файлы и потоки |
411 |
Потоки |
411 |
Базовые классы TStream и THandleStream |
412 |
Класс TFileStream |
414 |
Класс TMemoryStream |
416 |
Класс TStringStream |
416 |
Резюме |
417 |
Глава 22. Использование графики |
419 |
Графические инструменты Delphi |
419 |
Класс TFont |
419 |
Класс TPen |
421 |
Класс TBrush |
422 |
Класс TCanvas |
422 |
Класс TGraphic |
427 |
Класс TPicture |
429 |
Класс TMetafile |
431 |
Класс TIcon |
432 |
Класс TBitmap |
433 |
Компонент TImage |
435 |
Использование диалогов для загрузки и сохранения графических файлов |
436 |
Класс TClipboard |
437 |
Класс TScreen |
439 |
Резюме |
441 |
ЧАСТЬ IV. ПРИЛОЖЕНИЯ БАЗ ДАННЫХ .NET |
443 |
Глава 23. Архитектура приложений баз данных .NET |
445 |
Как работает приложение баз данных |
446 |
Соединение с источником данных |
450 |
Адаптер данных |
450 |
Набор данных |
451 |
Отображение данных |
452 |
Методика доступа к данным в приложении БД |
452 |
Резюме |
453 |
Глава 24. Приложения ADO.NET |
455 |
Основы ADO |
457 |
Провайдеры ADO |
459 |
Соединение с источником данных |
460 |
Пулинг соединений |
464 |
Управление транзакциями |
465 |
Обработка ошибок |
470 |
Использование адаптера данных |
472 |
Отбор данных и генерация набора данных |
472 |
Выборка из одной таблицы |
476 |
Вставка, изменение, удаление данных командами SQL |
477 |
Схема связывания данных |
480 |
Параметры |
483 |
Набор данных |
489 |
Таблицы данных |
491 |
Колонка таблицы |
495 |
Автоинкрементные колонки |
498 |
Вычисляемые колонки |
499 |
Агрегатные колонки |
501 |
Фильтрация и поиск данных |
502 |
Первичный ключ таблицы |
503 |
Запись таблицы |
504 |
Управление данными |
510 |
Сортировка, поиск данных |
513 |
Ограничения |
515 |
Отношения |
519 |
Просмотры |
521 |
Команды SQL |
525 |
Пользовательский интерфейс |
530 |
Компоненты Label и LinkLabel |
532 |
Компонент Button |
532 |
Компонент TextBox |
532 |
Компонент CheckBox |
532 |
Компонент RadioButton |
533 |
Компонент ComboBox |
533 |
Компонент ListBox |
533 |
Компонент CheckedListBox |
534 |
Компоненты TreeView и ListView |
534 |
Компонент DateTimePicker |
534 |
Компоненты TrackBar, ProgressBar, VScrollBar и HScrollBar |
534 |
Компонент NumericUpDown |
534 |
Компонент DomainUpDown |
535 |
Компоненты GroupBox и StatusBar |
535 |
Компонент RichTextBox |
535 |
Компонент DataGrid |
535 |
Подключение данных |
535 |
Отображение данных |
537 |
Навигация по записям таблицы |
538 |
Работа с ячейками таблицы |
538 |
Сортировка данных |
539 |
Отображение отношений между таблицами |
539 |
Резюме |
540 |
Глава 25. Приложения BDP |
543 |
Доступ к данным |
544 |
Механизм отображения "живых" данных |
547 |
Компонент BdpCommandBuilder |
548 |
Перенос данных между разными источниками данных |
549 |
Работа с гетерогенными источниками данных |
551 |
Обмен гетерогенными данными |
554 |
Многотабличный набор данных |
555 |
Работа с удаленными источниками данных |
556 |
Удаленный сервер приложения |
558 |
Клиентское приложение |
560 |
Пример разработки распределенного приложения |
562 |
Резюме |
563 |
ЧАСТЬ V. ПРИЛОЖЕНИЯ БАЗ ДАННЫХ VCL.NET |
565 |
Глава 26. Архитектура приложений баз данных VCL.NET |
567 |
Набор данных |
568 |
Абстрактный набор данных |
568 |
Стандартные компоненты |
574 |
Компонент таблицы |
575 |
Компонент запроса |
577 |
Компонент хранимой процедуры |
580 |
Индексы в наборе данных |
581 |
Механизм подключения индексов |
582 |
Список описаний индексов |
582 |
Описание индекса |
583 |
Использование описаний индексов |
584 |
Параметры запросов и хранимых процедур |
586 |
Класс TParams |
589 |
Класс TParam |
590 |
Состояния набора данных |
592 |
Поля |
595 |
Объекты полей |
595 |
Статические и динамические поля |
598 |
Класс TField |
600 |
Виды полей |
604 |
Поля синхронного просмотра |
605 |
Вычисляемые поля |
607 |
Внутренние вычисляемые поля |
608 |
Агрегатные поля |
608 |
Объектные поля |
609 |
Ограничения |
610 |
Как работает приложение баз данных |
612 |
Модуль данных |
615 |
Подключение набора данных |
616 |
Настройка компонента TDataSource |
617 |
Отображение данных |
619 |
Резюме |
620 |
Глава 27. Процессор баз данных BDE.NET |
621 |
Архитектура и функции BDE |
622 |
Псевдонимы баз данных и настройка BDE |
626 |
Соединение с источником данных |
635 |
Компоненты доступа к данным |
640 |
Класс TBDEDataSet |
640 |
Класс TDBDataSet |
645 |
Компонент TTable |
646 |
Компонент TQuery |
652 |
Компонент TStoredProc |
654 |
Резюме |
656 |
Глава 28. Технология dbExpress .NET |
657 |
Доступ к данным dbExpress |
658 |
Драйверы доступа к данным |
659 |
Соединение с сервером баз данных |
660 |
Управление наборами данных |
665 |
Транзакции |
668 |
Использование компонентов наборов данных |
669 |
Класс TCustomSQLDataSet |
670 |
Компонент TSQLDataSet |
672 |
Компонент TSQLTable |
673 |
Компонент TSQLQuery |
674 |
Компонент TSQLStoredProc |
675 |
Компонент TSimpleDataSet |
676 |
Способы редактирования данных |
679 |
Интерфейсы dbExpress |
685 |
Интерфейс ISQLDriver |
685 |
Интерфейс ISQLConnection |
685 |
Интерфейс ISQLCommand |
687 |
Интерфейс ISQLCursor |
688 |
Отладка приложений с технологией dbExpress |
689 |
Распространение приложений с технологией dbExpress |
691 |
Резюме |
692 |
Глава 29. Технология InterBase Express для .NET |
693 |
Механизм доступа к данным InterBase Express |
694 |
Компонент TIBDatabase |
694 |
Компонент TIBTransaction |
699 |
Компоненты доступа к данным |
703 |
Область дескрипторов XSQLDA |
705 |
Структура XSQLVAR |
706 |
Компонент TIBTable |
707 |
Компонент TIBQuery |
708 |
Компонент TIBStoredProc |
710 |
Компонент TIBDataSet |
710 |
Компонент TIBSQL |
712 |
Обработка событий |
715 |
Информация о состоянии базы данных |
717 |
Компонент TIBDatabaseInfo |
717 |
Компонент TIBSQLMonitor |
719 |
Резюме |
720 |
Глава 30. Технология dbGo |
721 |
Компоненты dbGo |
721 |
Механизм соединения с хранилищем данных ADO |
722 |
Компонент TADOConnection |
723 |
Настройка соединения |
723 |
Управление соединением |
728 |
Доступ к связанным наборам данных и командам ADO |
731 |
Объект ошибок ADO |
734 |
Транзакции |
734 |
Наборы данных ADO |
735 |
Класс TCustomADODataSet |
736 |
Набор данных |
736 |
Курсор набора данных |
737 |
Локальный буфер |
739 |
Состояние записи |
740 |
Фильтрация |
742 |
Поиск |
743 |
Сортировка |
743 |
Команда ADO |
744 |
Групповые операции |
745 |
Параметры |
746 |
Класс TParameters |
747 |
Класс TParameter |
748 |
Компонент TADODataSet |
749 |
Компонент TADOTable |
750 |
Компонент TADOQuery |
751 |
Компонент TADOStoredProc |
751 |
Команды ADO |
752 |
Объект ошибок ADO |
754 |
Резюме |
754 |
ЧАСТЬ VI. РАСПРЕДЕЛЕННЫЕ ПРИЛОЖЕНИЯ БАЗ ДАННЫХ VCL.NET |
757 |
Глава 31. Архитектура распределенных приложений |
759 |
Парадигма распределенных вычислений |
760 |
Архитектура распределенных приложений |
763 |
Уровень представления данных |
767 |
Уровень обработки данных |
768 |
Уровень управления данными |
768 |
Уровень хранения данных |
769 |
Расширения базовых уровней |
770 |
Уровень бизнес-интерфейса |
771 |
Уровень доступа к данным |
771 |
Резюме |
771 |
Глава 32. Технология DataSnap |
773 |
Структура многозвенного приложения в Delphi |
774 |
Трехзвенное приложение в Delphi 2005 |
776 |
Сервер приложения |
777 |
Клиентское приложение |
778 |
Механизм удаленного доступа к данным DataSnap |
779 |
Компонент TDCOMConnection |
779 |
Вспомогательные компоненты-брокеры соединений |
781 |
Компонент TSimpleObjectBroker |
781 |
Компонент TLocalConnection |
783 |
Компонент TSharedConnection |
783 |
Компонент TConnectionBroker |
784 |
Резюме |
785 |
Глава 33. Клиент многозвенного распределенного приложения |
787 |
Структура клиентского приложения |
788 |
Компонент TClientDataSet |
789 |
Получение данных от компонента-провайдера |
790 |
Кэширование и редактирование данных |
792 |
Управление запросом на сервере |
794 |
Использование индексов |
795 |
Сохранение набора данных в файлах |
797 |
Работа с данными типа BLOB |
798 |
Представление данных в формате XML |
799 |
Агрегаты |
799 |
Объекты-агрегаты |
800 |
Агрегатные поля |
802 |
Группировка и использование индексов |
804 |
Вложенные наборы данных |
804 |
Дополнительные свойства полей клиентского набора данных |
805 |
Обработка ошибок |
806 |
Пример "тонкого" клиента |
809 |
Соединение клиента с сервером приложения |
814 |
Наборы данных клиентского приложения |
815 |
Сервер приложения |
816 |
Резюме |
818 |
Глава 34. Преобразование пакетов данных в формате XML |
819 |
Преобразование данных в формате XML |
819 |
Схема преобразования данных XML |
820 |
Формат пакета данных Delphi |
821 |
Утилита XML Mapper |
822 |
Выбор исходного файла |
823 |
Создание пакета данных и документа XML и сохранение преобразованных данных |
824 |
Связывание элементов XML и полей пакета данных |
825 |
Создание трансформационного файла и преобразование данных |
826 |
Резюме |
827 |
ЧАСТЬ VII. ПРИЛОЖЕНИЯ ECO |
829 |
Глава 35. Архитектура MDA |
831 |
Основные понятия |
832 |
Архитектура разработки приложений на основе моделей |
833 |
Типы моделей |
834 |
Уровни модели |
834 |
Этапы разработки |
835 |
Преобразование модели PIM в PSM |
837 |
Многоплатформенные модели |
838 |
Технологический фундамент |
839 |
Что нужно знать об UML |
839 |
OCL |
841 |
Стандарты метамоделирования |
841 |
XML и XMI |
841 |
Резюме |
842 |
Глава 36. Технология ECO |
843 |
Что такое ECO |
844 |
Проект ECO |
845 |
Инструментарий ECO |
850 |
Менеджер модели Model View |
850 |
Редактор UML |
851 |
Дизайнер объектного пространства |
855 |
Общая методика разработки приложений ECO |
857 |
Платформенно-независимая модель |
858 |
Пакет |
859 |
Класс |
859 |
Атрибут |
861 |
Оператор |
862 |
Отношения |
862 |
Ассоциация |
863 |
Обобщение\воплощение |
865 |
Платформенно-зависимая модель |
865 |
Объектное пространство |
866 |
Класс объектного пространства |
867 |
Общие управляющие компоненты-дескрипторы |
868 |
Компонент ReferenceHandle |
871 |
Компонент VariableHandle |
872 |
Компонент ExpressionHandle |
873 |
Компонент OclVariables |
874 |
Компонент OclPSHandle |
874 |
Пользовательский интерфейс |
875 |
Автоматическая генерация форм |
876 |
Управление данными |
877 |
Управление списками |
878 |
Drag and Drop |
879 |
Связывание визуальных компонентов с данными |
879 |
Доступ к данным |
880 |
Использование языка OCL |
882 |
Пример приложения ECO |
883 |
Вычислительно-независимая модель |
883 |
Платформенно-независимая модель |
884 |
Платформенно-зависимая модель |
887 |
Резюме |
889 |
Предметный указатель |
891 |