- •Оглавление
- •20.1. Практическая работа 83
- •Глава I. Знакомство со средой Delphi
- •1.1. Общие сведения
- •Глава II. Создание приложений в среде Delphi
- •2.1. Характеристика проекта
- •2.2. Файл проекта
- •2.3. Файл формы
- •2.4. Файл модуля
- •2.5. Файл ресурсов
- •2.6. Практическая работа
- •Глава III. Использование компонентов
- •3.1. Понятие компонента
- •3.2. Страница Standard.
- •3.3. Страница Additional.
- •3.4. Страница Win32.
- •3.5. Страница System.
- •3.6. Страница Data Access.
- •3.7. Страница Data Controls.
- •3.8. Страница qReport.
- •3.9. Страница Dialogs.
- •3.10. Основные свойства объектов.
- •Глава IV. Работа с кнопками
- •4.1. Стандартная кнопка Button.
- •4.2. Кнопка с рисунком BitBtn.
- •4.3. Кнопка быстрого доступа SpeedButton.
- •4.4. Практическая работа
- •4.5. Самостоятельная работа
- •Глава V. Поля редактирования
- •5.1. Edit-однострочный редактор
- •5.2. Memo-многострочный редактор
- •5.3. Практическая работа
- •5.4. Самостоятельная работа
- •5.5. MaskEdit - специальный редактор
- •5.6. Практическая работа
- •6.3. Структура программы.
- •6 .4. Типы данных
- •6.4.1. Простые типы данных
- •6.4.2. Структурные типы данных
- •6.4.3. Функции и процедуры работы со строками
- •6.4.4. Функции преобразования строк в другие типы.
- •6.5. Операторы языка
- •6.6. Практическая работа.
- •6.8. Самостоятельная работа
- •6.9. Самостоятельная работа
- •6.10. Самостоятельная работа
- •6.11. Обработка исключительных ситуаций
- •Глава VII. Классы в Object Pascal.
- •7.1. Понятие класса
- •7.2. Поля класса
- •7.3. Методы класса
- •Глава VIII. Процедуры и функции, реализующие диалоги
- •8.1. Процедура ShowMessage.
- •8.2. Функция MessageDlg.
- •8.3. Функция MessageDlgPos.
- •8.4. Функция InputBox
- •9.2. Практическая работа
- •9.3. Самостоятельная работа
- •Глава X. Работа со списками
- •10.1. Простой список ListBox.
- •10.2. Комбинированный список ComboBox.
- •10.3. Общая характеристика списков
- •10.3.1. Свойства
- •10.3.2. Методы
- •10.4. Объект UpDown
- •10.5. Практическая работа
- •10.6. Самостоятельная работа
- •10.7. Самостоятельная работа
- •10.8. Самостоятельная работа
- •Глава XI. Объекты MainMenu и PopupMenu.
- •11.1. Основные свойства объектов
- •11.2. Игра «Крестики-нолики»
- •11.3. Самостоятельная работа
- •Глава XII. Использование переключателей.
- •12.1. Объект CheckBox
- •12.2. Объект RadioButton
- •12.3. Объект RadioGroup
- •12.4. Практическая работа
- •12.5. Самостоятельная работа
- •12.6. Самостоятельная работа
- •Глава XIII. Регуляторы величины
- •13.1. Объект ScrollBar
- •13.2. Практическая работа
- •13.3.Объект TrackBar
- •13.4. Самостоятельная работа
- •13.5. Самостоятельная работа
- •13.6. Компонент ProgressBar
- •Глава XIV. Объединение элементов управления
- •14.1. Объект Panel.
- •14.2. Область прокрутки ScrollBox
- •14.3. Фреймы Frame.
- •14.4. Практическая работа
- •14.5. Самостоятельная работа
- •Глава XV. Работа с таблицами
- •15.1. Объекты StringGrid и DrawGrid
- •15.2. Проект «Олимпиада»
- •15.3. Практическая работа
- •15.4. Самостоятельная работа
- •15.5. Самостоятельная работа
- •Глава XVI.Страница Dialogs
- •16.1. Стандартные диалоговые окна Windows
- •16.2. Общие свойства OpenDialog и SaveDialog:
- •16.3. Общие свойства OpenPicyureDialog и SavePictureDialog:
- •16.4. Практическая работа
- •16.5.Объект FontDialog
- •16.6. Объект ColorDialog
- •16.7. Практическая работа
- •16.8. Объекты FindDialog и ReplaceDialog
- •16.9. Проект «Примитивный редактор текста»
- •Глава XVII. Элементы с закладками
- •17.1. Однострочный блокнот TabControl.
- •17.2. Практическое задание
- •17.3. Самостоятельная работа
- •17.4. Многостраничный блокнот PageControl.
- •17.5. Практическая работа
- •Глава XVIII. Иерархические структуры
- •18.1. Объект TreeView
- •18.2. Практическая работа
- •18.3. Самостоятельная работа
- •18.4.Объект ListView
- •18.5. Практическое работа
- •Глава XIX. Работа с датами и временем
- •19.1. Объект DateTimePicker
- •19.2. Объект MonthCalendar
- •19.3. Объект Calendar.
- •19.4. Самостоятельная работа
- •19.5. Объект Timer
- •19.6. Практическая работа
- •19.7. Самостоятельная работа
- •Глава XX. Объект Animate
- •20.1. Практическая работа
- •20.2. Игра «угадай число»
- •Глава XXI. Панели инструментов
- •21.1. Объект ToolBar.
- •21.2. Объект ControlBar
- •21.3. Создание текстового редактора с использованием объекта RichEdit
- •Глава XXII. Графика в Delphi
- •22.1. Класс tCanvas
- •22.2. Класс tFont.
- •22.3. Класс tPen.
- •22.4. Класс tBrush
- •22.5. Класс tGraphic
- •22.6. Класс tPicture
- •22.7. PaintBox - окно для рисования
- •22.8. Практическая работа
- •22.9. Практическая работа
- •22.10. Самостоятельная работа
- •22.11. Объект Shape
- •22.12. Самостоятельная работа
- •22.13. Создание графического редактора
Глава VIII. Процедуры и функции, реализующие диалоги
Delphi предлагает ряд процедур и функций отображающие диалоги общего назначения.
8.1. Процедура ShowMessage.
Процедура ShowMessage(const S:String) отображает окно сообщения с кнопкой ОК. Заголовок содержит название исполняемого файла приложения, а строка S выводится как текст сообщения.
Пример: Отображение простейшего окна сообщений.
Procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(‘Простейшее диалоговое окно’);
end;
8.2. Функция MessageDlg.
Функция MessageDlg(const S: String; AType: TMsgDlgType; AButtons:TMcgDlgButtons; HelpCtx: Longint): Word отображает окно сообщений в центре экрана. Она позволяет получить ответ пользователя. Параметр S содержит выводимое сообщение. Тип окна сообщения определяется параметром AType, который принимает следующие значения:
mtWarning – окно содержит черный восклицательный знак в желтом треугольнике и заголовок Warning.
mtError – окно содержит белый крест в красном круге и заголовок Error.
mtInformation –окно содержит букву i синего цвета в белом круге и заголовок Information.
mtConfirmation –окно содержит знак ? синего цвета в белом круге и заголовок Confirmation.
mtCustom – окно не содержит картинки, в заголовке выводится название исполняемого файла приложения.
Параметр AButton задает набор кнопок окна и может принимать любые комбинации следующих значений, которые задают надпись на кнопке:
Название |
Значение |
mbYes |
Yes |
mbNo |
No |
mbOK |
OK |
mbCancel |
Cancel |
mbHelp |
Help |
mbAbort |
Abort |
mbRetry |
Retry |
mbIgnore |
Ignore |
mbAll |
All |
mbYesNoCancel |
[mbYes,mbNo,mbCancel] |
mbOKCancel |
[mbOK,mbCancel] |
При нажатии любой из этих кнопок, кроме Help, закрывается диалог и возвращается функцией MessageDlg модальный результат (свойство ModalResult), проанализировав который, можно управлять выполнением приложения.
Пример: Использование функции MessageDlg.
Procedure TForm1.Button1Click(Sender:TObject);
Var rez:TModalResult;
Begin
If edit1.text<> DateToStr (Date) then
begin
rez:=MessageDlg(‘Неправильная дата’#13’Исправить автоматически?’, mtError,[mbOK,mbNo],0);
If rez=mrOK then edit1.text:=DateToStr(Date);
If rez=mrNo then edit1.setfocus;
end;
end;
8.3. Функция MessageDlgPos.
Функция MessageDlgPos (const S: String; AType: TMsgDlgType; AButtons:TMcgDlgButtons; HelpCtx: Longint; X,Y:integer): Word отличается от MessageDlg наличием параметров X и Y, управляющих положением окна на экране.
8.4. Функция InputBox
InputBox (const ACaption, APrompt, ADefault: string):string отображает диалоговое окно, служащее для ввода строки текста. Окно выводится в центре экрана. В окне имеется поле ввода с надписью, а также кнопки OK и Cancel.
Пример: Использование функции InputBox.
Procedure TForm1.Button1Click(Sender: TObject);
var soname:string;
begin
Soname:=inputbox(‘Пользователь’,’Введите фамилию’, ‘Иванов’);
end;
8.5. Самостоятельная работа
Запросить с пользователя имя, фамилию, отчество в поля Edit и вывести поздравление с днем рождения в диалоговое окно (окно сообщений).
8.6. Самостоятельная работа
Создайте приложение, которое позволит работать со списком слушателей курсов. Список можно редактировать, добавляя и удаляя записи, запросив с пользователя фамилию в специальном окне (функция inputbox).
Для подтверждения удаления записи открывается окно (функция MessageDlg). О результате операции (запись удалена, добавлена или не найдена) сообщается в соответствующем окне (ShowMessage).
Глава IX. Работа с формами
9.1. Объект Form
Форма является важнейшим визуальным компонентом, на основе которого начинается конструирование приложения. Каждое приложение может иметь несколько форм, одна из которых является главной и отображается первой при запуске.
Для подключения новой формы к проекту требуется обратиться к репозиторию File/New и выбрать подходящий из представленных здесь шаблонов форм, например: AboutBox-окно О программе, Password Dialog-диалоговое окно с редактором и кнопками для ввода паролей. Если же вы хотите подключить форму обычного вида, то нужно выполнить команду File/New Form.
Указать главную форму можно через пункт меню Project/Options(Проект/Параметры). Главная форма выбирается в раскрывающемся списке Main form на странице form.
Свойства
Свойство |
Значение |
Active |
Содержит True, если окно активно (имеет фокус ввода) |
ActiveControl |
Определяет дочерний элемент, содержащий фокус ввода |
BorderIcons |
Определяет наличие стандартных кнопок в заголовке окна |
BorderStyle |
Стиль рамки окна |
Icon |
Содержит пиктограмму окна |
Position |
Определяет положение окна в момент появления на экране |
WindowState |
Определяет состояние окна в момент его появления на экране |
Методы |
Назначение |
Close |
Закрывает окно. Для главного окна завершает работу программы |
Show |
Показывает форму в немодальном режиме Немодальная форма – позволяет переключиться в другую форму приложения без своего закрытия. |
ShowModal |
Показывает форму в модальном режиме. Модальная форма – требует обязательного своего закрытия перед обращением к любой другой форме приложения. |
Для формы определены следующие события:
OnActivate – возникает в момент активизации окна (при получении ею фокуса ввода)
OnClose – возникает перед закрытием окна
OnCreate – возникает при создании окна, но до его появления на экране
OnHide – возникает перед исчезновением окна
OnResize – возникает при изменении размеров окна
OnShow – возникает при появлении окна на экране
Итак, для вызова каждого окна нужно обращаться к его методу ShowModal или Show. Чтобы обратиться к этим методам, нужно сослаться на объект окно, который автоматически обновляется в интерфейсном разделе связанного с окном модуля. Для этого, в свою очередь, главное окно должно знать о существовании другого окна, что достигается ссылкой на модуль окна в предложении Uses, например, если нужно вызвать окно Form2 с модулем Unit2 из главного окна. То в модуле главного укажем:
Implementation
Uses Unit2
После чего вызовем окно на экран:
Form2.show
Точно так же можно сослаться в модуле второго окна на модуль главного.
Данную задачу можно и автоматизировать. Для этого на этапе конструирования нужно обратиться к пункту меню File/Uses Unit.
