
- •Часть 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. Объектно-ориентированное программирование
I:Integer;
begin
ListBox1.Items.Clear;
For I:= 1 to 20 do
ListBox1.Items.Add(‘ String ‘ + IntToStr(I));
end;
Код, связанный со второй кнопкой, использует цикл while, который основан на счетчике, увеличивающемся случайным образом.
procedure TForm1.Botton2.Click(Sender:TObject);
var
I:Integer;
begin
ListBox1.Items.Clear;
Randomize;
I:=0;
while I<1000
do begin
I:=I+Random(100);
ListBox1.Items.Add(‘Random number:‘+IntToStr(I));
end;
end;
При каждом щелчке по второй кнопке числа будут различными, так как они зависят от генератора случайных чисел.
3.4.1. Элементы управления редактированием
Класс TCustomEdit – это абстрактный класс для всех элементов управления редактированием в Delphi. Он включает простой элемент управления редактированием, элементы управления редактированием по маске и все элементы управления мемо (табл. 3.7).
Таблица 3.7
Некоторые свойства и методы, реализованные классом TCustomEdit
Используйте или установите это… |
Чтобы сделать это |
Brush |
Определить цвет и шаблон, используемые в качестве фона оконного элемента управления |
CanFocus |
Определить, может ли оконный элемент управления получить фокус |
Clear |
Очистить содержимое элемента управления редактированием |
Enabled |
Определить доступность элемента управления |
Focused |
Определить, находится ли оконный элемент управления в фокусе |
Font |
Определить шрифт, используемый для вывода текста в элементе управления |
GetSelTextBuf |
Скопировать выбранный текст из элемента управления в буфер |
GetTextBuf |
Скопировать текст из элемента управления в буфер |
GetTextLen |
Получить длину текста элемента управления |
Hide |
Сделать элемент управления невидимым |
Hint |
Определить текст, который отображается в подсказке для элемента управления |
SelectAll |
Выбрать весь текст в элементе управления |
SelLength |
Определить длину выбранного текста в элементе управления |
SelStart |
Определить исходную позицию выбранного текста |
SelText |
Получить доступ к выбранному тексту в элементе управления редактированием |
SetFocus |
Установить фокус на оконный элемент управления |
Show |
Сделать элемент управления видимым |
Text |
Обратиться к изменяемому тексту на элементе управления |
Класс TEdit инкапсулирует большинство возможностей стандартного элемента управления редактированием известного как «поле» или «текстовое поле». Элемент управления редактированием предоставляет одну доступную для редактирования строку текста внутри элемента управления с необязательной рамкой. При желании текст на элементе управления редактированием может быть предназначен только для чтения, так что пользователь изменять его не сможет.
Класс TEdit предусматривает только основные функциональные возможности элемента управления редактированием. При необходимости ограничить диапазон ввода, воспринимаемый этим элементом управления, используйте вместо него элемент управления редактированием по маске (TMaskEdit). Класс TEdit порожден непосредственно от TCustomEdit.
Задание для самостоятельной работы
Сконструировать форму, которая будет содержать следующие управляющие элементы:
Окно редактирования со связанной с ним меткой Operand 1. В этом окне вводится первый операнд.
Окно редактирования со связанной с ним меткой Operator. В этом окне вводится операция. В программе предусмотрены операции +, -, / и * .
Окно редактирования со связанной с ним меткой Operand 2. В этом окне вводится второй операнд.
Окно редактирования со связанной с ним меткой Result. В этом окне отображается результат запрошенной вами операции.
Кнопка Close, которая закрывает приложение.
Тип операндов целый.
Задание для самостоятельной работы
Сконструировать форму, которая будет содержать следующие управляющие элементы:
Элемент управления редактированием по маске (TMaskEdit) со связанной с ним меткой Operand 1.
Элемент управления редактированием по маске (TMaskEdit) со связанной с ним меткой Operand 2.
Элемент управления редактированием по маске (TMaskEdit) со связанной с ним меткой Result.
Кнопка Close, которая закрывает приложение.
Шесть кнопок операций + , - , * , / , mod , div .
Кнопка Clear для очистки окон элементов управления редактированием.
Тип операндов вещественный. Написать код, который будет реализовывать указанные операции по нажатию соответствующей кнопки (связать код с событием OnClick кнопки).