
- •Часть 2
- •Оглавление
- •1. Структурный подход к программированию
- •1.1. Цели структурного программирования
- •1.2. Основные принципы структурного подхода
- •1.3. Спецификация программ
- •1.4. Метод пошаговой детализации
- •2. Предыстория объектно-ориентированного программирования
- •2.1. Введение в объектно-ориентированное программирование
- •2.2. Тип Объекты
- •2.3. Основные понятия ооп. Инкапсуляция. Наследование
- •X, y : integer; {координаты позиции}
- •XX,yy:array [1..1000] of integer;
- •2.4. Совместимость объектных типов по присваиванию
- •2.5. Описание типа-потомка
- •2.6. Полиморфизм
- •2.7. Виртуальные методы. Конструкторы и деструкторы
- •2.7.1. Правила работы с виртуальными методами
- •3. Типы данных и операторы языка object pascal в delphi
- •3.1. Предопределенные типы данных
- •3.1.1 Вещественные типы
- •3.1.2. Длинные строки
- •3.2. Структурированные типы
- •3.2.1. Множества
- •Var MySet: set of 'a'..'z';
- •3.2.2. Массивы
- •Var FlexArray: array of Real;
- •Var Ints: array of array of Integer;
- •3.2.3. Записи
- •Var Record1,Record2:tDateRec;
- •3.2.4. Указатели
- •I: Integer;
- •V1,v2,v3,v4,v5:Variant;
- •I:Integer;
- •3.3. Типы данных, специфичные для Windows
- •3.3.1. Приведение и преобразование типов
- •3.4. Операторы языка Паскаль
- •I:Integer;
- •I:Integer;
- •3.4.1. Элементы управления редактированием
- •3.5. Процедуры и функции библиотеки vcl
- •4. Реализация ооп на языке pascal
- •V: Real;
- •Наследование
- •Virtual;
- •Конструкторы и деструкторы
- •Перекрытие методов
- •5. Программирование в среде delphi
- •5.1. Основные элементы
- •5.2. Реализация объектно-ориентированного программирования
- •5.3. Разработка интерфейса приложения
- •5.3.1. Создание простейшего Windows-приложения
- •5.3.2. Создание Windows-приложения с метками и кнопками
- •Объект Свойство Значение
- •6.1.3. Меню Edit
- •6.1.4. Меню Search
- •6.1.5. Меню View
- •6.1.6. Меню Run
- •6.1.7. Меню Component
- •6.1.8. Меню Tools
- •6.1.9. Полоска кнопок быстрого доступа SpeedBar
- •6.1.10. Локальные меню. SpeedMenu
- •6.2. Работа с формами
- •6.2.1. Палитра компонентов
- •6.2.2. Object Inspector
- •6.2.3. Написание кода
- •6.2.4. Компиляция проекта
- •6.2.5. Интегрированный отладчик
- •6.2.6. Файлы, создаваемые системой
- •7. Структура delphi-программ
- •7.1. Разработка проекта Dialog
- •7.2. Процедуры вызова диалоговых окон
- •7.3. Преобразования типов
- •Var factW,optW,Rost,Delta:integer;
- •Var factW,optW,Rost,Delta:real;
- •7.4. Простейшие компоненты
- •7.4.1. Группы радиокнопок - компоненты RadioGroup, RadioButton, GroupBox
- •7.4.2. Компоненты выбора из списков - ListBox, ComboBox
- •7.4.3. Многострочные окна редактирования Memo и Richedi
- •7.4.4. Графические объекты
- •If OpenDialog1.Execute
- •Image1.Picture.LoadFromFile
- •7.4.5. Канва и пиксели
- •X, y :real; // координаты функции
- •7.4.6. Воспроизведение немых видео клипов – компонент Animate
- •7.4.7. Установка и настройка приложения: работа с файлами *.Ini
- •IniFile.Free;
- •Упражнения
- •8. Репозиторий объектов и эксперты
- •8.1. Страницы репозитория объектов
- •8.1.1. Страница New
- •8.1.2. Страница Forms
- •8.1.3. Страница Dialogs
- •8.1.4. Страница Data Modules
- •8.1.5. Страница Projects
- •8.2. Эксперты Delphi
- •8.2.1. Application Expert
- •8.2.2. Dialog Box Expert
- •9. Классы и модули
- •9.1. Классы и сокрытие информации
- •9.2. Классы и модули
- •9.3. Модули и область видимости
- •9.4. Модули и программы
- •9.5. Информация о типе на этапе выполнения
- •If MyAnimal is Dog then …
- •If MyAnimal is Dog
- •If MyAnimal is Dog then
- •10. Использование компонентов
- •10.1. Буксировка из одного компонента в другой
- •10.2. Обработка исключений
- •10.3. Восприятие ввода для пользователя
- •Val( Edit1.Text,Number,Code);
- •Val((Sender as tEdit).Text,Number,Code);
- •11.2. Различные роли элементов меню
- •11.3. Редактирование меню с помощью Menu Designer
- •If OpenDialog1.Execute
- •If SaveDialog1.Execute
- •Procedure tForm1.ViewEdit1Click(Sender:tObject); begin
- •If Panel1.Visible
- •If Buttons1.Enabled
- •12. Получение «ввода от мыши» и рисование в форме
- •12.1. События, связанные с мышью
- •12.2. Рисование в форме
- •If ssShift in Shift
- •If Circle then Canvas.Ellipse(Center.X-Radius.X,Center.Y-
- •Else Canvas.Rectangle(Center.X-Radius.X,Center.Y-
- •12.3. Черчение и рисование в системе Windows
- •13. Инструментальная линейка и строка состояния
- •13.1. Построение инструментальной линейки
- •Procedure tForm1.SpeedButton1Click(Sender:tObject); begin
- •If SpeedButton1.Down
- •13.2. Добавление всплывающих подсказок в линейку
- •13.3. Комбинированный список в инструментальной линейке
- •13.4. Построение строки состояния
- •14.1. Добавление второй формы в программу
- •14.2. Создание диалоговой панели
- •Задание № 1
- •Procedure tForn1.BitBtnClick(Sender:tObject); begin PageControl1.SelectNextPage(true);
- •Do ListBox1.Items.Add(PageControl1.Page[I].Caption);
- •14.3.1. Блокнот с набором ярлыков
- •If FontDialog1.Execute
- •15.2. Жизненный цикл программного средства
- •15.3. Понятие качества программного средства
- •15.4. Обеспечение надежности основной мотив разработки программных средств
- •15.4.1. Методы борьбы со сложностью
- •15.4.2. Обеспечение точности перевода
- •15.4.3. Преодоление барьера между пользователем и разработчиком
- •15.4.4. Контроль принимаемых решений
- •Литература
- •Часть 2. Объектно-ориентированное программирование
Procedure tForm1.SpeedButton1Click(Sender:tObject); begin
If SpeedButton1.Down
then Label1.Font.Style:= [fsBold]
else Label1.Font.Style:= []
end;
кнопка, которая будет изменять размер шрифта с 24 на 12 и вести себя как чекбокс, т. е. при нажатой кнопке размер шрифта 24, при отжатой – 12;
добавьте в форму меню, с помощью которого можно будет отключать и включать различные кнопки, используя свойство Enabled, скрывать и показывать линейку с помощью свойства Visible панели.
13.2. Добавление всплывающих подсказок в линейку
Всплывающая подсказка – текст, который кратко описывает быструю кнопку под курсором. Этот текст обычно выводится на экран в окне желтого цвета, после того как курсор мыши оставался неподвижным над кнопкой в течение некоторого времени. Для добавления всплывающих посказок в инструментальную линейку приложения просто устанавливают значение свойства ShowHints панели, которая используется как инструментальная линейка, равным True. Вы также можете изменить значение по умолчанию свойств HintColor и HintPause глобального объекта Application и, что необязательно, добавить непосредственно конкретный текст для всплывающей подсказки кнопок инструментальной линейки (свойство Hint). Текст подсказок можно изменять при изменении состояния кнопки, написав некоторый код, использующий свойство Hint.
13.3. Комбинированный список в инструментальной линейке
Существует несколько распространенных приложений, которые используют комбинированные списки в инструментальных линейках для того, чтобы показывать списки стилей, шрифтов, размеров шрифта и т. д. Используем в следующем задании такой подход: создадим комбинированный список, чтобы позволить пользователю выбирать шрифт и окно редактирования с прокруткой компонентов (SpinEdit) для установки размера шрифта, каждый с собственной меткой. Два новых компонента и их метки имеют соответствующее сообщение в свойстве Hint. Комбинированный список заполняется, когда начинает работать приложение, копируя названия текущих шрифтов из объекта Screen:
procedure TForm1.Form1Create (Sender:TObject);
var
I:Integer;
begin
for I:= 1 to Screen.Fonts.Count
do ComboBox1.Items.Add Screen.Fonts.Strings[I-1]);
{скопируйте название шрифта в комбинированный список}
ComboBox1.ItemIndex:=ComboBox1.Items.IndexOf(Label1.
Font.Name);{выберите текущий шрифт}
end;
Когда выбирается новый элемент комбинированного списка, текст текущего элемента комбинированного списка копируется в название шрифта надписи:
procedure TForm1.ComboBox1Change(Sender:TObject);
begin
Label1.Font.Name:=
ComboBox1.Items[ComboBox1.ItemIndex];
end;
Для управляющего элемента редактирования с прокруткой:
procedure TForm1.SpinEdit1Change Sender:TObject);
begin
if not (SpinEdit1.Text = ‘ ‘)
then Label1.Font.Size:= SpinEdit1.Value;
end;
Задание № 2
Из формы, созданной в предыдущем примере, удалить кнопку изменения размера шрифта.
Согласно вышеизложенному поместить в форму комбинированный список, чтобы позволить пользователю выбирать шрифт и окно редактирования с прокруткой компонентов (SpinEdit) для установки размера шрифта, каждый с собственной меткой.
Записать код для добавленных компонентов.