
- •3. Основные проектные операции Delphi. Файлы, генерируемые системой Delphi. Взаимосвязь файлов на этапе проектирования и выполнения программы.
- •4.Модуль. Структура модулей. Интерфейсная часть. Раздел реализации. Компиляция модулей. Ссылки модулей. Области видимости идентификаторов.
- •5. Основные элементы языка Object Pascal. Константы и константные выражения. Переменные.
- •Зарезервированные слова языка Паскаль
- •6. Процедуры и функции. Параметры, механизмы их передачи.
- •7. Операторы Object Pascal
- •8.Динамическое распределение памяти в Object Pascal. Указатели.
- •9.Типы данных Object Pascal. Классификация типов ObjectPascal. Приведение типов.
- •10.Порядковые типы данных. Целые типы данных. Действительные типы данных. Булевы типы данных. Символьные типы данных.
- •11. Перечислимые типы. Ограниченные типы. Типы данных, специфичные для Windows.
- •12. Строки. Традиционные строки Pascal. Длинные строки Delphi.
- •Val(st: string; X: числовая переменная; var code: integer)
- •13.Массивы. Статические массивы. Операции с массивами, передача массивов как параметров. Динамические массивы.
- •14. Множества. Записи.
- •15. Файлы. Типы файлов.
- •16 Тип variant. Массивы типа Variant.
- •Теоретические положения объектно-ориентированного программирования. История, основные принципы ооп.
- •Принцип инкапсуляции в ооп. Принцип наследования в ооп.
- •Понятие полиморфизма в ооп. Языки ооп. Объектно-ориентированный анализ и проектирование.
- •Классы. Объявление классов. Реализация принципа инкапсуляции в Object Pascal. Поля. Директивы private, protected и public. Инкапсуляция и формы. Свойства.
- •21.Понятие объекта и экземпляра объекта в Object Pascal.
- •22.Конструкторы и деструкторы. Ключевое слово self.
- •23.Методы и их наследование. Статические методы.
- •25. Абстрактные методы.
- •33. Общие свойства компонентов: положение, размеры и оформление компонент.
- •35.События клавиатуры. Фокус ввода.
- •36. Механизм перетаскивания Drag&Drop, механизм причаливания Drag&Dock.
- •39. Решение проблемы утечки ресурсов с использованием механизма исключений.
- •42. Класс tList.
- •44.Класс tStream и его потомки – потоки данных.
- •45. Глобальный объект Application.
- •47. Глобальный объект Printer.
11. Перечислимые типы. Ограниченные типы. Типы данных, специфичные для Windows.
Перечислимые типы
Перечислимый тип задается непосредственно перечислением всех значений (имен) которые может принимать переменная данного типа. Отдельные значения указываются через запятую, а весь список значений заключается в круглые скобки.
Формат описания перечислимого типа:
Туре <Имя типа> = (<Имя1>,...,<ИмяN>);
Например:
Объявление типов
1.Type Day = (Su, Mo, Th, We, To, Fr, St);
2.Var dl, d2, d3: Day;
3.Season: (Winter, Spring, Summer, Autumn);
Тип Day описан явно, и для него определены значения — дни недели. Переменные d1, d2, d3 могут принимать одно из перечисленных значений. Попытка присвоить им любое другое значение вызовет программную ошибку. Второй тип определен анонимно (не имеет имени) и задается перечислением значений при объявлении соответствующей переменной Season. Последняя оказывается при этом переменной перечислимого типа и может принимать только одно их 4-х указанных в скобках значений (времен года).Достоинством перечислимых типов является то, что они облегчают контроль значений переменных, т. к. переменной нельзя присвоить не перечисленное предварительно значение. К определенным недостаткам их использования относится то, что при вводе и выводе значений перечислимых типов нельзя указывать имена соответствующих переменных в процедурах ввода/вывода.
Ограниченные типы
Этот тип формируется самим пользователем посредством сужения значений ранее определенного или стандартного типов.
Примеры:
Type
Diapason = 1 .. 30;
Letters = 'a' .. 'v';
TList = (t1, t2, t3, t4, t5, t6,t7, t8, t9, t10);
TlistSmall = (t2 .. t8);
Типы данных, специфичные для Windows.
В Delphi имеются типы данных, которые определены системой Windows – дескриптор и ссылка на цвет. Их имена, соответственно, Thandle и TcolorRef. Первый тип – это лишь переопределение типа данных Cardinal, а второй переопределение типа LongInt.
Ссылка на цвет – это просто число, описывающее цвет. Вы можете выбрать любой цвет с помощью функции RGB или напрямую значение для красной, зеленой и синей составляющих величины типа TcolorRef.
В Windows дескриптор – это число, которое является ссылкой на внутреннюю структуру данных системы. Например, когда вы работаете с окном, система выдает вам дискриптор окна (HWND). Тем самым она сообщает, что окно, с которым вы имеете дело, является окном под номером, например, 142. С этого момента ваше приложение может использовать данный номер, чтобы попросить систему обработать необходимое окно: переместить его, изменить размеры, уменьшить до пиктограммы и т.п.
Другими словами, дескриптор является внутренним кодом, который вы можете применить для обращения к конкретному элементу, обрабатываемому системой, включая окна, растровые изображения, пиктограммы, блоки памяти, курсоры, шрифты, меню и т.п.
12. Строки. Традиционные строки Pascal. Длинные строки Delphi.
Строковый тип данных Pascal.
Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки.
Синтаксис:
var s: string[n];
var s: string;
n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.
Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).
Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.
Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены.
Выражения типа char можно присваивать любым строковым переменным.
В Турбо Паскаль имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной st записывается как st[i]. Например, если st - это 'Строка', то st[1] - это 'С', st[2] - это 'т', st[3] - 'р' и так далее.
Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например:
a := 'Turbo';
b := 'Pascal';
c := a + b;
В этом примере переменная c приобретет значение 'TurboPascal'.
Кроме слияния над строками определены операции сравнения <,>,=,<>,<=,>=. Две строки сравниваются посимвольно, слева направо, по кодам символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются символом с кодом 0.
Процедуры и функции для работы со строками
В системе Turbo Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками. Ниже приводится список этих процедур и функций с краткими пояснениями.
Length(s:string):integer
Функция возвращает в качестве результата значение текущей длины строки-параметра
Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+" и работает немного менее эффективно, чем эта операция.
Copy(s:string; index:integer; count:integer):string
Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.
Пример.
s := 'Система Turbo Pascal';
s2 := copy(s, 1, 7); {s2 будет равно 'Система'}
s3 := copy(s, 9, 5); {s3 будет равно 'Turbo'}
s4 := copy(s, 15, 6); {s4 будет равно 'Pascal'}
Delete(var s:string; index,count:integer)
Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.
Пример.
s := 'Система Turbo Pascal';
delete(s,8,6); {s будет равно 'Система Pascal'}
Insert(source:string; var s:string;index:integer)
Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.
Pos(substr,s:string):byte
Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.