Студопедия — Структура программы. Модуль кода (unit) делится на две части – интерфейс (interface) и реализацию (implementation).
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Структура программы. Модуль кода (unit) делится на две части – интерфейс (interface) и реализацию (implementation).






Модуль кода (unit) делится на две части – интерфейс (interface) и реализацию (implementation).

Раздел interface:

- uses: подключаемые модули, в которых содержатся используемые процедуры, функции, классы и т.п. Их список формируется автоматически в зависимости от добавленных в форму компонентов.

- type: описания типов. Автоматически в этом разделе описан класс вашей формы.

- var: описание глобальных переменных. Автоматически тут описана переменная типа описанного класса формы. В этой переменной во время работы программы хранится указатель на экземпляр формы.

- const: описание констант. Этот раздел автоматически не создается, однако может быть легко добавлен.

Раздел implementation:

- Здесь также можно добавить uses.

- С помощью {$R} подключаются файлы ресурсов. Автоматически подключен файл dfm, имеющий то же имя, что и файл модуля и потому подключаемый как *.dfm. В этом файле хранится информация о форме – расположение и настройки компонентов, помещенных в форму, и т.п.

- Раздел содержит описание реализаций процедур и функций. Автоматически тут создаются обработчики событий. Здесь описывается реализация необходимых в программе процедур, функций и методов классов.

 

Все то, что касается объявления доступных из других модулей переменных, констант, процедур, типов, классов и т.п., должно быть описано в разделе interface. В этой части программы, которая создается автоматически, в разделе uses перечисляются используемые модули, в разделе type описывается класс формы – потомок класса TForm, а в разделе var описывается глобальная переменная, в которой будет храниться указатель на объект-экземпляр формы. Соответственно, если надо подключить какой-то свой модуль, то необходимо добавить его в раздел uses. При описани нового типа его добавляют в раздел type до или после класса формы. Если нужно описать глобальную переменную, то ее добавляют в раздел var, а если нужна константа – создается дополнительно раздел const. В свою очередь, в разделе implementation сначала указывается ссылка на файлы ресурсов, а затем описываются реализации процедур и функций – как создаваемых автоматически обработчиков событий, так и добавляемых по необходимости. Вначале эта часть пуста, но она будет заполняться во время написания программы.

При добавлении компонента в форму автоматически модифицируется код модуля – в описании класса формы появляется переменная, хранящая ссылку на добавленный компонент.

При создании обработчика события (при нажатии на компонент, помещенный в форму, создается обработчик основного события, а остальные создаются с помощью Инспектора Объектов) в коде происходят следующие изменения:

- в разделе implementation создается пустой обработчик, который вы потом заполняете;

- в классе вашей формы создается описание этого метода (обработчики событий являются методами);

- если не создавать обработчик через страницу Events Инспектора Объектов (или двойным щелчком по компоненту), а просто написать в коде процедуру-обработчик, то он не будет должным образом связан с компонентом, и событие не сработает.

Если изменить имя компонента, то изменятся имена и обработчиков событий, которые с ним связаны.

Если необходимо изменить название обработчика, то надо воспользоваться Инспектором Объектов. Переименовывая здесь имя процедуры обработчика, корректно автоматически изменяются также и ссылки на эту процедуру.

Если необходимо удалить какой-то обработчик, то удалите весь код внутри процедуры. При следующем запуске программы все пустые процедуры автоматически корректно удаляются. Компилятор автоматически удаляет пустые процедуры при запуске. При удалении всей процедуры описание и ссылки на нее останутся, а удаление их всех требует времени и аккуратности.

При удалении компонента не удаляются процедуры-обработчики его событий. Это связано с тем, что один и тот же обработчик может использоваться для разных компонентов. В случае, если нужно удалить эти оставшиеся обработчики, удалите код внутри них и запустите программу.

Проблема обеспечения гарантированного выполнения некоторых действий решается наличием специального события OnCreate. Это событие формы. Оно возникает тогда, когда форма создается, а поскольку главная форма создается в самом начале работы приложения, то и код, описанный в обработчике данного события, выполнится один раз и в самом начале. В обработчике события OnCreate можно описать процедуры и функции инициализации, присваивать нужные значения глобальным переменным и т.п.

Раздел implementation предназначен не только для обработчиков событий. В этот раздел добавлять в него свои собственные функции и процедуры. Необходимо помнить, что они должны идти раньше процедур и обработчиков, из которых вызываются, или объявить их в разделе interface. В последнем случае эти функции и процедуры будут доступны для вызова из других модулей.

Существует также важная тонкость использования собственных функций: все обработчики событий имеют в своем названии имя формы:

procedure TForm1.FormCreate(Sender: TObject);

Это указывает на то, что работают с классом формы TForm1 и описывают методы для нее. Из обработчика просто обращаются к компонентам формы (класс формы «знает» о наличии компонентов на ней и имеет к ним непосредственный доступ), например:

MyGrid.RowCount:= Num;

Когда описывается собственная процедура, то она «ничего не знает» о компонентах формы, и поэтому нужно обращаться к компонентам через форму, а, не минуя ее.

 







Дата добавления: 2015-09-04; просмотров: 499. Нарушение авторских прав; Мы поможем в написании вашей работы!



Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.007 сек.) русская версия | украинская версия