
- •Динамическая память и указатели. Типы указателей. Описание указателей.
- •Операции над указателями. Выделение динамической памяти для типизированных и нетипизированных указателей. Проблема утечки памяти.
- •Стеки и очереди.
- •Модули.
- •Классы, объекты. Объявление класса, принципы ооп.
- •Инкапсуляция и разграничение доступа к членам класса.
- •Методы (виды методов), конструктор и деструктор.
- •Перекрытие методов, перекрытие конструктора, inherited
- •Поля, Свойства. События
- •Полиморфизм is, as.
- •Дерево классов delphi. Класс tObject. Класс tPersistent. Класс tСomponent.
- •Класс tСontrol.
- •Свойства и методы для обеспечения отношения родительский-дочерний
- •Свойства позиционирования и выравнивания
- •Свойства, определяющие внешний вид элементов управления. Property Color Cursor:Tcursor; Enabled:Boolean; Font, Hint, ShowHint
- •События при нажатии мышью на левую кнопку. Общие события, возникающие при манипулировании мышью.
- •События, предназначенные для поддержки перетаскивания.
- •Свойства и методы, поддерживающие связь родительский-дочерний.
- •События клавиатуры TwinControl. События активизации оконного элемента и потери фокуса.
- •Класс tGraphicControl. Метка Tlabel. Компонент Timer.
- •Interval: cardinal; - интервал в милисекундах после которого начинается событие OnTimer.
- •Класс tCustomEdit. Строка ввода Edit.
- •Класс tStrings. Текстовый редактор Memo.
- •Кнопки.Button, BitBtn, SpeedButton
- •Список ListBox.
- •Комбинированная строка ввода ComboBox.
- •Items:tString;-содержит список названий переключателей.
- •Классы и компоненты, предназначенные для создания изображений. Класс tCanvas. Класс tFont. Класс tPen. Класс Tbrush.
- •Компонент Image. Компонент Shape. Компонент PaintBox.
- •Диалоговые окна. OpenDialog SaveDialog
- •Этапы развития технологии программирования.
- •Первый этап - «стихийное» программирование (50-60-е годы).
- •Второй этап - структурный подход к программированию
- •Третий этап -объектный подход к программированию(с середины 80-х до конца 90-х годов XX )
- •Четвертый этап – компонентный подход и case-технологии (с середины 90-х годов до нашего времени).
- •Проблемы разработки сложных программных систем.
- •Блочно-иерархический подход к созданию сложных систем.
- •Жизненный цикл по и этапы его разработки. Гост 19.102-77 «Стадии разработки»
- •Постановка задачи. Анализ требований и определение спецификаций. Проектирование. Реализация. Сопровождение.
- •Эволюция моделей жизненного цикла по.
- •Жизненный цикл по при использовании case-технологий. Технология rad
- •Оценка качества процессов создания по.
- •5. Оптимизирующий уровень (optimizing level)
- •Понятие технологичности программного обеспечения. Нисходящая и восходящая разработка по
- •Последовательность проектирования и реализации (Иерархический , Операционный , Комбинированный)
- •Модульное программирование. Модули и их свойства. Сцепление модулей. Связность модулей.
- •Предпроектные исследования предметной области
- •Разработка технического задания. Последовательность разработки тз.
- •Принципиальные решения начальных этапов проектирования: Выбор архитектуры программного обеспечения. Выбор типа пользовательского интерфейса. Выбор подхода к разработке.
- •Стадии тестирования. Принципы тестирования. Формирование тестовых наборов ст иФн.
- •Ручной контроль по: инспекция исходного текста, сквозные просмотры, проверка за столом.
- •Структурное тестирование.
- •Функциональное тестирование.
- •Тестирования модулей и комплексное тестирование.
- •Критерии завершения тестирования и отладки. Оценочное тестирование
Поля, Свойства. События
Поля – это данные, инкапсулированные в классе.
В классе поля описываются как обычные переменные.
Если разворачиваются несколько объектов одного класса, то каждый объект получает уникальный набор полей и общий набор методов и свойств.
Свойства – это механизм доступа к данным.
Возможно прямое обращение к полям, но фундаментальный принцип инкапсуляции требует обращаться к полям посредством свойств и методов (во избежание ошибок, для обеспечения корректности изменения данных).
Событие – это то, что происходит в результате работы компьютера. На низком уровне это изменения, (нажатие кнопки, исход времени, деление на ноль) вызывающие прерывания.
С точки зрения языка событие - это свойство процедурного типа, его значением является указатель на некоторый метод.
Присвоить такому свойству значение – означает указать адрес метода, который будет выполняться в момент наступления события.
Такие методы называются обработчиками событий
Полиморфизм is, as.
Замещение метода может быть сделано как на этапе компиляции так и на этапе выполнения программы. Такое замещение называется динамическим (или виртуальным).
Синтаксис объявления таков:
Tpar=class
Procedure DoWork; virtual; [dynamic;] //метод виртуальный
End;
Tchild=class(Tpar)
Procedure DoWork; override;//надо переопределять при выпол
End;
Полиморфизм допускает инициализацию объектной переменной любым классом потомком
Операции as и is
(man as Tman).Obed; //приведение типа (приводит объект к какому-то классу)
if man is Tman then …;//определение типа (определяет принадлежность объекта к какому-либо классу).
Дерево классов delphi. Класс tObject. Класс tPersistent. Класс tСomponent.
Принцип наследования позволяет использовать любой класс использовать как предка для создания новых классов. При этом члены класса предка наследуются.
Класс TObject.
Предок всех классов. Класс абстрактный. Обеспечивает возможность создания и разрушения объектов. Для этого определены следующие методы.
Constructor Create – выделяет динам память, инициализацию не делает, т.к. перегружается. Destructor Destroy; virtual; - освобождает выделенную память. Procedure Free – проверяет существование и, если память выделялась, то освобождает ее.
Методы класса: ClassName: shortString; - возвращает имя класса данного объекта ClassNameIs (const Name:string):Boolean; - данный класс совпадает Name InheritsForm(aClass:Tclass):Boolean; - является ли класс предком дан кл InstanceSize:Longint; - возвращает размер класс или объекта.
Класс TPersistent.
Его объекты инкапсулируют в себе некоторый носитель информации. Память или дисковые файлы.
МЕТОДЫ:
Procedure Assign(Source:Tpersistent); - присваивает данному объекту данные, содержащиеся в объекте с именем Source
Function GetNamePath: string; dynamic; - возвращает строку, содержащую имя объекта.
Function GetOwner: TPersistent; dynamic;- возвращает указатель на владельца объекта.
Класс TСomponent
Вершина иерархии компонентов. Потомки его - невизуальные компоненты (TApplication, Tform таймер, меню, диалоговые окна).
Свойства Name (строка ) – имя компонента. При помещении компонента на форму присваивается стандартное имя Label1, Edit1, которое можно заменить на более осмысленное, при этом имя должно быть правильным идентификатором. Tag: Longint; - некоторое число, которым разработчик может распоряжаться по усмотрению.
В классе TComponent вводится концепция принадлежности, которая распространяется на всю VCL. Суть:
любой компонент Делфи является собственностью другого компонента.
при разрушении компонента владельца автоматически разрушается принадлежащие ему компоненты.
Свойства реализующие концепцию принадлежности: ComponentCount:Integer; - количество компонентов во владении ComponentIndex:Integer; - номер компонента в списке владельца (нумерация с нуля). Components [Index:Integer]:TComponent; - список компонентов, для которых данный является владельцем.
Owner: TComponent; - содержит указатель на компонент владелец для текущего компонента.