Когда в тех или иных операциях или операторах присутствуют данные различных типов, то возникают вопросы о соответствии типов друг другу. Стандартно выделяют три группы вопросов:
•идентичность типов;
•совместимость типов;
•совместимость по присваиванию.
Идентичность типов.
Если при объявлении использовать один и тот же идентификатор или несколько переменных объявляются с помощью одного описания, то такие типы идентичны. Например,
Type Int = Integer;
Var n: Int; k: Integer;
v1, v2: Array[1..10] of Real;.
В данном случае vl и v2 идентичны, n и k идентичны,
но если объявлено: Var vl: Array[1..10] of Real; v2: Array[1..10] of Real;, то vl и v2 не идентичны.
Совместимость типов.
При программировании необходимо помнить, что на операции с программными элементами компилятор налагает ограничения, разрешая выполнение только заложенных для указанного типа действий. Кроме того, совместимость типов требуется в выражениях, в том числе и в операциях отношения, а также при передаче аргументов функциям или процедурам. Рассмотрим некоторые наиболее распространенные варианты, когда типы считаются совместимыми:
• типы идентичны;
• один тип представляет тип-диапазон другого;
• для объявления используется один и тот же базовый тип;
• оба типа - целые типы;
• оба типа - вещественные типы;
• один тип — строка типа, другой - массив символов с индексацией элементов, начинающейся от нуля.
Совместимость по присваиванию.
Для корректного выполнения операции присваивания, необходимо выполнение следующих условий:
• идентичность типов;
• совместимость типов, причем значение типа слева от знака присваивания должно находиться в границах возможных значений типа справа от знака присваивания;
• слева от знака присваивания - вещественный тип, а справа – вещественный или целый тип;
• слева - строка, кроме типа PChar, справа - любая строка;
• слева- строка, кроме типа PChar, справа - символ.
Преобразование типов.
В ряде случаев требуется преобразование одного типа в другой. Для этого используются или те же идентификаторы, с помощью которых типы объявлялись, или специальные функции или процедуры.
Например, поля компонент ввода вывода в интерфейсном окне пользователя такие как: Edit, Memo, Label, StaticText могут содержать только символьные данные. Если в поле ввода компонентов введены цифры, то они воспринимаются как символы и для преобразование их в число при выполнении программы используются специальные функции преобразования, а при выводе результатов, представленных числами их надо преобразовать в символы, используя стандартные функции преобразования. В таблице 2 приведены стандартные функции преобразования одних типов данных в другие, а так же действия допустимые над ними.
При разработке программных приложений программист должен обеспечить удобный пользователю и интерфейс при эксплуатации программы.
Для создания удобного интерфейса пользователя необходимо:
- предусмотреть в программе контроль ввода допустимых исходных данных или их отсутствия в случае ошибок, допущенных пользователем, и вывести ему окно формы соответствующее сообщение о причине ошибок;
- обеспечить автоматическое позиционирование курсора в первый компонент ввода данных пользователя при активизации программного приложения;
- обеспечить автоматическое позиционирование курсора при вводе данных пользователя в следующий компонент в окне формы после ввода данных в предыдущий компонент;
В текст программного модуля Unit необходимо включать соответствующие обработчики событий, обеспечивающие интерфейс пользователя. Наиболее часто используются стандартные обработчики событий: OneKeyPress и OnActive, OnCreate.
Сохранение проекта
Проект состоит из набора файлов, используя которые компилятор создает исполняемый файл-программу (Exe. - файл. Проект необходимо сохранить для дальнейшего использования. Чтобы сохранить проект нужно из меню File выбрать команду Save Project As. Если проект еще ни разу не был сохранен, то Delphi сначала предложит сохранить модуль (содержимое окна редактора кода) и на экране появится окно Save Unit As. В этом окне надо выбрать (или создать, если таковой нет на диске) папку предназначенную для файлов проекта и ввести имя модуля, нажав в окне кнопку (сохранить), появляется следующее окно Save Project As, в котором надо ввести имя файла проекта.
Имя файлов модуля (pas -файл) и проекта (DPR - файл) должны быть разными. Имя генерируемое компилятором исполняемого файла, совпадает с именем проекта. Поэтому файлу проекта следует присвоить такое имя, которое должен иметь исполняемый файл программы, а файлу модуля – какое-либо другое имя, полученное путем добавления к имени файла проекта порядкового номера модуля.
Таблица 2.