- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Контрольні питання
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови.
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови.
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови.
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.5: основи створення прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.5: основи створення прикладних застосувань
- •План заняття
- •Контрольні питання
- •Контрольні питання:
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.5: основи створення прикладних застосувань
- •План заняття
- •Проект Delphi
- •Модулей в проект.
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Функции преобразования в числовой формат и обратно
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •7.1. Простые типы
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Печать с помощью объекта Printer
- •Подготовка и печать отчетов с помощью QuickReport — компоненты QuickRep, qrSubDetail, qrLabel, qrExpr, qrSysData, qrMemo, qrRichText, qrShape, qrImage
- •Контрольні питання
- •Змістовий модуль 3: масиви. Записи та множини
- •Тема 3.1: масиви
- •План заняття
- •Листинг 1. Инициализация и вывод массива
- •Ввод массива
- •Использование компонента StringGrid
- •Листинг 2. Ввод и обработка массива целых чисел
- •Листинг 3. Процедура обработки события OnKeyPress
- •Листинг 4. Ввод и обработка массива дробных чисел
- •Контрольні питання
- •Объявление записи
- •Инструкция with
- •Ввод и вывод записей в файл
- •Вывод записи в файл
- •Листинг 25. Добавление записей в файл
- •Чтение записи из файла
- •Листинг 26. Чтение записей из файла
- •Контрольні питання
- •Змістовий модуль 3: масиви. Записи та множини
- •Тема 3.3: множини
- •План заняття
- •Контрольні питання
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 3: масиви. Записи та множини
- •Тема 3.4: множини обовязкова контрольна робота №28
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.1: робота з файлами
- •План заняття
- •Объявление файла
- •Назначение файла
- •Вывод в файл
- •Открытие файла для вывода
- •Листинг 20. Создание нового или замещение существующего файла
- •Листинг 21. Добавление в существующий файл
- •Ошибки открытия файла
- •Закрытие файла
- •Пример программы
- •Листинг 22. Простая база данных (запись в файл)
- •Ввод из файла
- •Открытие файла
- •Листинг 23. Обработка ошибки открытия файла (фрагмент программы)
- •Чтение данных из файла
- •Чтение чисел
- •Чтение строк
- •Конец файла
- •Листинг 24.. Чтение из файла
- •Контрольні питання
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.1: файлові структури даних. Динамічні структури даних
- •План заняття
- •Контрольні питання
- •Указатели
- •Динамические переменные
- •Листинг 27. Создание, использование и уничтожение динамических переменных
- •Листинг 28. Добавление элемента в начало динамического списка
- •Упорядоченный список
- •Добавление элемента в список
- •Листинг 29. Добавление элементов в упорядоченный список
- •Удаление элемента из списка
- •Листинг 30. Удаление узла из списка
- •Контрольні питання
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.2: динамічні структури
- •План заняття
- •Вариантные переменные
- •Контрольні питання
- •Const-параметры
- •Контрольні питання
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.2: динамічні структури
- •План заняття
- •Способы вызова подпрограмм
- •Контрольні питання
- •Этапы разработки программы
- •Спецификация
- •Создание установочного диска
- •Алгоритм и программа
- •Контрольні питання
- •Этапы разработки программы
- •Спецификация
- •Создание установочного диска
- •Алгоритм и программа
- •Контрольні питання
- •Контрольні питання
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.2: Візуальні компоненти
- •План заняття
- •Контрольні питання
- •Распознавание источника события, нажатых кнопок и клавиш, координат курсора
- •События клавиатуры
- •Распознавание нажатых клавиш
- •Контрольні питання
- •Создание нового IntraWeb приложения
- •Редактирование главной формы
- •Написание обработчика события для кнопки
- •Запуск созданного приложения
- •Контрольні питання
- •Управляющие кнопки Button и BitBtn
- •Кнопка с фиксацией SpeedButton
- •Группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox
- •Контрольні питання
- •Листинг 28. Добавление элемента в начало динамического списка
- •Упорядоченный список
- •Добавление элемента в список
- •Листинг 29. Добавление элементов в упорядоченный список
- •Удаление элемента из списка
- •Листинг 30. Удаление узла из списка
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Упражнения. Совершенствование проекта
- •Контрольні питання:
- •Контрольні питання
- •Упражнения
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами. Вызуальны компоненти. Бази даних.
- •Тема 6.2: візуальні компоненти
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.3: форми та меню
- •План заняття
- •Контрольні питання
- •Контекстное всплывающее меню — компонент PopupMenu
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.4: обробка виключних ситуацій
- •План заняття
- •Конрольні питання
- •Упражнения. Совершенствование проекта.
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами
- •Тема 6.4: обробка виключних ситуацій
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питанна
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.6: основи баз даних
- •План заняття
- •Классификация баз данных
- •Локальная база данных
- •Удаленная база данных
- •Структура базы данных
- •Контрольні питання
- •Контрольні питання
- •Упражнения
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Insert into Имя таблицы
- •Insert into Имя_таблицы
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Рисование круга
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи обов’язкова контрольна робота №63
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
Контрольні питання
Огляд поняття строка стану
Характеристика ластивостей компонента строка стану
САМОСТІЙНА РОБОТА СТУДЕНТА
Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
Тема 1.4: елементи інтерфейсу
Самостійне заняття №7 – Елементи з закладками
План заняття
Огляд поняття елементи з закладками
Характеристика властивостей компонента елементи з закладками
В данном занятии будут рассмотрены управляющие элементы с закладками, имеющие несколько страниц, перемещение между которыми осуществляется пользователем путем выбора закладки соответствующей страницы с помощью мыши.
В Delphi существуют компоненты TabControl (Одностраничный блокнот) и PageControl (Многостраничный блокнот), которые обеспечивают возможность работы с подобными элементами. Кроме того, вDelphi представлены еще такие элементы с закладками, как TabSet, TabbedNotebook и Notebook, которые используются для обеспечения совместимости с программами, разработанными в среде Windows 3.x (однако в данной книге они рассматриваться не будут).
По своей сути компоненты TabControl и PageControl являются контейнерами, которые могут содержать другие компоненты, объединенные в группы.
Одностраничный блокнот TabControl. Компонент TabControl
представляет собой прямоугольную область с набором закладок, переключение между которыми происходит автоматически при выборе одной из них. Одностраничный блокнот назван так потому, что он имеет одну общую страницу для всех закладок, и все действия по изменению отображаемой информации в зависимости от выбранной пользователем закладки должны осуществляться программно. Для этого программисту необходимо создать обработчики событий OnChange или OnChanging.
Событие OnChange возникает при активизации страницы, а событие OnChanging - перед активизацией. Поэтому с помощью обработчика события OnChanging можно заблокировать переключение страниц, если не выполнено какое-либо необходимое условие.
Одностраничный блокнот, как правило, используется в тех случаях, когда требуется создать приложение, где закладки играют роль группы зависимых переключателей, и при выборе каждой новой закладки общая структура отображаемых на странице компонентов остается без изменения, а меняется только их содержимое. Например, при создании календаря на год, где с помощью закладок осуществляется переход между разными месяцами, будут изменяться только данные в таблице, а набор строк и столбцов остается прежним.
Рассмотрим важнейшие свойства одностраничного блокнота.
Свойство Style (тип TTabStyle) определяет стиль, которым будет отображаться компонент TabControl. Данное свойство может принимать одно из трех значений:
tsTabs - стандартные закладки объемного вида;
tsButtons - закладки в виде кнопок;
tsFlatButtons - закладки в виде плоских кнопок.
В том случае, если закладка имеет вид кнопки, у нее отсутствует ограничивающая рамка, которая при необходимости должна быть создана вручную с использованием компонентов фаски (Bevel) или панели (Panel).
Свойство Tabs (тип TString) содержит список всех закладок и дает возможность обращаться к каждой из них по индексу. Данное свойство доступно для редактирования с помощью Инспектора объектов.
Свойство MultiLine (тип Boolean) определяет, могут ли закладки отображаться в виде нескольких строк. Когда данное свойство имеет значение True, то закладки будут располагаться на нескольких строках, если не помещаются в одну строку. В противном случае закладки будут размещаться на одной строке, и если они не помещаются полностью, то в правой части данного компонента появляются стрелки, с помощью которых можно осуществлять прокрутку закладок.
Свойство TabPosition (тип TTabPosition) определяет расположение закладок в различных местах одностраничного блокнота: вверху, внизу, справа или слева.
Свойство ScrollOpposite (тип Boolean) задает поведение закладок при выборе в случае, когда они размещаются в нескольких строках (имеет смысл только в случае, когда свойству MultiLine присвоено значение True). Если свойство ScrollOpposite имеет значение True, то строка с выбранной закладкой автоматически перемещается в первый ряд. В противном случае такого перемещения не происходит. При установке данному свойству значения True свойство Multi-Line также автоматически устанавливается в True.
Свойство TabWidth (тип Small In t) устанавливает ширину закладок в пикселях.
Свойство TabHeight (тип Smalllnt) задает высоту закладок в пикселях.
По умолчанию свойства TabWidth и TabHeight имеют значение 0, то есть размеры закладки устанавливаются автоматически в зависимости от длины названия.
Свойство Tablndex (тип Integer) содержит номер выбранной закладки компонента TabControl. С помощью изменения значения данного свойства можно совершать программное переключение между закладками.
Свойство HotTrack (тип Boolean) установленное в True, задает режим подсветки заголовка закладки синим цветом в момент, когда на нее наведен указатель мыши. Свойство Images (тип TCustomlmageList) дает возможность отображать на закладках графические изображения из списка ImageList, ссылка на который задается в качестве значения данного свойства. Рисунки из списка будут распределяться в соответствии с номерами закладок в списке свойства Tabs.
Пример 9.3. Пусть необходимо создать приложение с использованием компонента TabControl, который бы позволял переключаться между закладками с названиями стран и получать в таблице информацию о столице, валюте, территории и населении данной страны.
Решение. На первом этапе на форму добавляется компонент TabControl. Затем поверх него помещается таблица StringGrid.
В редакторе свойства Tabs для компонента TabControl вносятся названия стран, которые будут отображаться в виде закладок одностраничного блокнота (см. рис. 9.6). Свойству Multi-Line присваивается значение True.
Таблица будет содержать два столбца и четыре строки, поэтому для компонента StringGrid значение свойства ColCount устанавливается равным 2, а свойства RowCount - равным 4. Число фиксируемых строк, определяемое свойством FixedRows, задается равным 0.
Во время выполнения программы пользователь имеет возможность получить краткую справочную информацию о стране, выбирая соответствующую закладку одностраничного блокнота TabControl.
При этом следует отметить, что заголовки строк таблицы задаются при создании формы и при изменении страницы не переопределяются. В обработчике события OnChange компонента TabControl.
выполняется только внесение необходимых данных о стране во второй столбец таблицы в зависимости от выбранной закладки.
Ниже показано, как программно реализуется решение поставленной задачи. Сведения о странах вносятся в разделе констант (const) в виде массива типа PChar. Дальнейшее заполнение таблицы осуществляется на основе совпадения названия выбранной закладки с соответствующим элементом данного массива.
Многостраничный блокнот PaseControl.
Компонент PageControl является управляющим элементом, включающим набор из нескольких страниц, размещаемых одна под другой. Каждая страница имеет закладку, которая является неотъемлемой частью данной страницы, в отличие от одностраничного блокнота. Страницы используются для объединения различных управляющих элементов в группы, обеспечивая их компактное размещение и простое переключение между ними.
Многостраничный блокнот является более сложным управляющим элементом, чем компонент TabControl, однако многие свойства этих двух элементов совпадают. Поэтому будут рассмотрены только свойства, специфичные для компонента PageControl.
Свойство ActivePage (тип TTabSheet) определяет название текущей (выбранной) страницы компонента PageControl.
Свойство ActivePagelndex (тип Integer) служит для определения индекса текущей страницы.
С помощью свойств ActivePage и ActivePagelndex можно программно устанавливать новую активную страницу.
Свойство PageCount (тип Integer) используется для определения общего количества страниц многостраничного блокнота.
Свойство Pages [Index: Integer] (тип TTabSheet) содержит полный список всех страниц управляющего элемента PageControl. Доступ к любой странице блокнота по ее номеру можно получить путем использования данного свойства во время выполнения приложения. Порядковый номер страницы задается параметром Index.
Добавление и удаление страниц, а также перемещение между страницами компонента PageControl в процессе проектирования приложения осуществляется с помощью вызова контекстного меню (нажатием правой кнопки мыши в поле компонента) и дальнейшего выбора соответствующего пункта этого меню. Перемещаться между страницами можно также простым нажатием на закладке необходимой страницы. Это возможно, потому что каждая страница (включая закладку) является отдельным независимым объектом.
На практике данный компонент очень часто используется при создании окон настроек параметров приложения.