Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пр_раб_02 - Структура проекта.doc
Скачиваний:
9
Добавлен:
09.05.2015
Размер:
447.49 Кб
Скачать

Проблема циклических ссылок

Предположим необходимо, чтобы не только модуль Unit1 мог обращаться к модулю Unit2, но и модуль Unit2 мог обращаться к модулю Unit1. В этом случае логично предположить, что в разделе uses интерфейсной части модуля Unit2 необходимо указать ссылку на модуль Unit1.

Однако, при попытке компиляции такого модуля Unit2 будет выдано сообщение об ошибке: Circular unit reference to "Unit2".

По-русски это звучит так: "Циклическая ссылка на модуль Unit2".

В большинстве случаев для того, чтобы избежать этой ошибки, достаточно указать оператор uses со ссылкой на модуль Unit1 в раздел реализации:

implementation

uses Unit1;

Файлы форм (.dfm)

В файле .dfm описывается каждый компонент формы, включая значения всех свойств. Просмотреть или отредактировать файл формы можно в редакторе исходного кода. Для приложений CLX, предназначенных для использования в среде Linux, используются файлы с расширением .xfm.

Представление формы

Перейдите в конструкторе форм к форме Form1, щелкните на ней правой кнопкой мыши, и выполните команду View as Text раскрывшегося контекстного меню. В результате будет получено текстовое представление формы Form1, приведенное в листинге 1.3.

Листинг 1.3. Содержимое файла Unit1.dfm

object Form1: TForm1

Left = 192

Top = 107

Width = 696

Height = 480

Caption = 'Form1'

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'MS Sans Serif'

Font.Style = []

OldCreateOrder = False

PixelsPerInch = 96

TextHeight = 13

object Button2: TButton

Left = 250

Top = 16

Width = 163

Height = 42

Caption = 'Кнопка 2'

TabOrder = 0

OnClick = Button2Click

end

object Button3: TButton

Left =450

Top = 16

Width =163

Height =42

Caption = 'Выход1'

TabOrder = 1

OnClick = Button3Click

end

object Button1: TButton

Left = 58

Top = 16

Width = 163

Height = 42

Caption = 'Кнопка 1'

TabOrder = 2

OnClick = ButtonlClick

end

object Edit1: TEdit

Left = 56

Top = 72

Width = 121

Height = 21

Color = clSilver

TabOrder = 3

Text = 'Edit1'

end

end.

Здесь можно изменить любые свойства самой формы и расположенных на ней компонентов. Для возврата в обычный режим работы с формой щелкните правой кнопкой мыши в редакторе исходного кода и выполните команду View as Form раскрывшегося контекстного меню.

Пример изменения свойств компонента формы

Описанным выше способом можно отредактировать свойства любого компонента, например, компонента Edit1. Для этого выполним следующие действия.

  1. В конструктор форм выделите компонент Edit1 и выполните команду Edit - Cut (Вырезать), или нажмите комбинацию клавиш <Сtrl+X>. В результате компонент Edit1 будет удален из формы и помещен в буфер обмена.

  2. Перейдите в редактор исходного кода, переместитесь в самый конец файла, расположите курсор после последнего ключевого слова end. и выполните команду Edit - Paste (Вставка), или нажмите комбинацию клавиш <Ctrl+V>. В результате компонент Edit1 будет вставлен в файл исходного кода в текстовом виде, как показано на рис.1.4.

  3. Измените значение свойства Text на '' (две одинарные кавычки).

  4. Выделите фрагмент исходного кода, соответствующий компоненту Edit1, вырежьте его в буфер обмена - <Ctrl+X>.

  5. Перейдите в конструктор форм и выполните вставку из буфера обмена - Ctrl+V>. В результате текстовое поле будет пустым.

Рис.1.4

Формы сохраняются в текстовом или двоичном форматах. Выбор формата определяется флажком New forms as text в поле Module creation options на вкладке Designer диалогового окна Environment Options. Для того чтобы раскрыть на экране окно Environment Options необходимо выполнить команду Tools - Environment options.

2. Редактор исходного кода и окно Code Explorer

Как уже отмечалось выше, при размещении компонентов в конструкторе форм и определении новых обработчиков событий при помощи инспектора объектов интегрированная среда Delphi сама создает соответствующий программный код на языке Object Pascal. В дальнейшем в этот автоматически сгенерированный код можно вносить изменения при помощи встроенного в Delphi полнофункционального редактора, некоторые возможности которого уже были рассмотрены. Внешний вид этого редактора представлен на рис.2.1.

Рис.2.1

Code Insight

Одним из самых мощных средств редактора исходного кода Delphi 7 является анализатор кода - Code Insight. Функции анализатора кода перечислены в табл. 2.1.

При помощи кнопок со стрелками, расположенными в правом верхнем углу редактора, можно перемещаться между теми местами в исходном коде, в которых вносились последние изменения.

Также можно перемещаться между объявлением процедуры и ее реализацией при помощи комбинаций клавиш <Ctrl+Shift+↑> и <Ctrl+Shift+↓>.

Таблица 2.1

Название

функции

Описание

Завершение

кода

Наберите имя класса или объекта с точкой (например, кода Button1.). В результате будет отображен перечень свойств, методов и событий, определенных для этого класса (рис.2.2). Выберите один из элементов списка и нажмите клавишу<Enter>.

Введите первую часть оператора присваивания (например, Edit1.Text := ) и нажмите комбинацию клавиш <Ctrl+пробел>.

В результате будет отображен перечень возможных значений для завершения оператора.

Введите начальные символы имени функции, процедуры или метода (например, round) и нажмите комбинацию клавиш <Ctrl+пробел>. В результате будет отображен перечень возможных продолжений имени (рис.2.3).

Рис.2.2 Рис.2.3

Рис.2.4