
- •Занятие 1. Введение Почему именно Delphi?
- •Что мы видим на экране
- •Контрольные вопросы:
- •Занятие 2. Мое первое приложение в Delphi Вывести текст в окне
- •Задания для самостоятельной работы
- •Кнопки. Какие они бывают и зачем они?
- •Задания для самостоятельной работы
- •Поле редактирования
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 3. Введение в язык программирования Pascal
- •Понятие алгоритма
- •Структура процедуры
- •Правила задания имен языка Pascal
- •Задания для самостоятельной работы
- •Тип данных
- •Числовой тип данных. Целые числа
- •Числовой тип данных. Вещественные числа
- •Описание данных
- •Задания для самостоятельной работы
- •Операции
- •Присвоение значения переменной. Оператор присваивания
- •Задания для самостоятельной работы
- •Задача «Простой калькулятор»
- •Встроенные функции
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 4. Разветвляющийся алгоритм
- •Логический тип данных
- •Описание данных логического типа
- •Логические выражения
- •Разветвляющийся алгоритм
- •Оператор if
- •Оператор выбора case
- •Задания для самостоятельной работы
- •Списки. Компоненты ListBox и ComboBox
- •Зависимые переключатели. Компоненты RadioButton, RadioGroup
- •Задание для самостоятельной работы
- •Добавление формы к проекту
- •Структура модуля Pascal
- •Как открыть форму
- •Задание для самостоятельной работы
- •Способность форм ссылаться друг на друга
- •Задание для самостоятельной работы
- •Просмотр форм и ассоциированных с ними модулей
- •Основные свойства, методы и события формы
- •Менеджер проектов
- •Опции пpоекта
- •Упpавление пpоектами
- •Компиляция и сборка проекта
- •Выполнение и отладка проекта
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 6. Начинаем рисовать
- •Рисование линий
- •Задание цвета
- •Рисование фигур
- •Свойства класса tBrush
- •Вывод текста
- •События формы OnPaint и OnResize
- •Задания для самостоятельной работы
- •Занятие 7. Циклы
- •Цикл со счетчиком: for
- •Цикл с предусловием: while
- •Цикл с постусловием: repeat..Until
- •Использование операторов Continue и Break в циклах
- •Задание случайных чисел. Функция Random. Процедура Randomize
- •Вложенные циклы
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 8. Массивы
- •Одномерные массивы
- •Двумерные массивы
- •Компонент tStringGrid
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 9. Строки и символы
- •Символьный тип данных
- •Строковый тип данных
- •Сравнение текстовой информации
- •Функции для работы с текстовой информацией
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 10. Работа с изображениями
- •Редактор Image Editor
- •Как отобразить рисунок в форме
- •Компонент Timer
- •Как заставить картинку двигаться
- •Случайное движение
- •Задание для самостоятельной работы.
- •Движение по закону
- •Задание для самостоятельной работы
- •Управляемое движение
- •Задание для самостоятельной работы
- •Как совместить разные виды движения
- •Задание для самостоятельной работы
- •Использование мыши
- •Занятие 11. Процедуры и функции
- •Описание и вызов процедуры
- •Описание и вызов функции
- •Где описывать процедуры(функции)
- •Передача параметров по ссылке и по значению
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Занятие12. Еще про компоненты Еще раз про списки
- •Функция MessageDlg
- •Задание для самостоятельной работы
- •Главное меню приложения. Компонент MainManu
- •Задание для самостоятельной работы
- •Кнопочная панель. Компонент ToolBar
- •Область редактирования. Компонент Memo
- •Контекстное меню. Компонент PopupMenu
- •Диалоговые окна Windows
- •Задание для самостоятельной работы
- •Занятие 13. Объектно-ориентированный подход (ооп) в программировании Основные понятия ооп
- •Основные принципы ооп
- •Тип данных запись (структура)
- •Задание для самостоятельной работы
- •Классы и объекты в Delphi
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 14. Работа с файлами
- •Общая технология работы с файлами в Delphi
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Функция MessageDlg
При удалении элемента необходимо спросить у пользователя подтверждения на удаление элемента. Для этого будем использовать встроенную функцию MessageDlg, которая позволяет выводить в окне сообщение пользователю и получать от пользователя ответ. Внешний вид окна приведен на рисунке:
Заголовок функции имеет следующий вид:
function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons;
HelpCtx: Longint): Word;
Как видно из заголовка функция имеет четыре входных параметра:
Msg – задает текст сообщения;
DlgType – задает тип сообщения, фактически задает пиктограмму (картинку) в окне;
Buttons – задает набор кнопок в окне;
HelpCtx – используется для задания файла помощи.
Для параметра DlgType возможны следующие варианты:
Значение |
Описание |
mtWarning |
Задает пиктограмму с изображением желтого восклицательного знака |
MtError |
Задает пиктограмму с изображением красного стоп-сигнала |
mtInformation |
Задает пиктограмму с изображением голубой буквы i с точкой |
mtConfirmation |
Задает пиктограмму с изображением зеленого знака вопроса |
MtCustom |
Не содержит пиктограммы |
Для задания кнопок, как правило, используются следующие константы:
Значение |
Описание |
mbYesNoCancel |
Три кнопки “Yes”, “No”, “Cancel” |
mbOKCancel |
Две кнопки “Ok” и “Cancel” |
mbAbortRetryIgnore |
Три кнопки “Abort”, “Retry”, “Ignore” |
Для определения возвращаемого функцией значения используются константы:
Выбранная кнопка |
Возвращаемое значение |
mbOK |
mrOk |
mbYes |
mrYes |
mbNo |
mrNo |
mbCancel |
mrCancel |
mbAbort |
mrAbort |
mbRetry |
mrRetry |
mbIgnore |
mrIgnore |
Давайте изменим программный код на событие кнопки «Удалить» примера предыдущего пункта, добавив использование функции MessgaeDlg. Программный код будет иметь такой вид:
if MessageDlg('Вы уверены?', mtConfirmation, mbOkCancel, 0) = mrOk then
ListBox1.Items.Delete(ListBox1.ItemIndex);
Теперь, в случае если пользователь ошибочно нажмет на кнопку «Удалить», удаление будет произведено, если только пользователь его подтвердит.
Задание для самостоятельной работы
Создать прокручиваемый список с возможностью множественного выделения элементов. Отобразить выбор пользователя с помощью функции ShowMessage.
Даны два прокручиваемых списка. По кнопкам организовать перемещение элементов из одного списка в другой. По кнопке «>» выделенный элемент левого списка переносится в конец правого списка. По кнопке «<», наоборот, выделенный элемент правого списка переносится в конец левого списка. По кнопке «>>» все элементы левого списка переносятся в конец правого списка, соответственно по кнопке «<<» - все элементы правого списка переносятся в конец левого списка, как показано на рисунке:
.