Функции и процедуры |
![]() |
![]() |
Статьи |
Краткий обзор как использовать различные типы процедур и функций Delphi, указателей на функции и процедуры, методы и указатели методов, анонимные методы.
Автономные процедурыБолее или менее все RTL процедуры - так называемые "автономные" процедуры. Они объявлены на уровне модулей и чтобы вызвать такую процедуру, Вы должны знать, где она объявлена (имя модуля и список параметров для передачи). Пример - процедура ShowMessage, объявленная в модуле dialogs.pas, вот ее объявление:
Чтобы вызвать такую процедуру, Вы просто должны включить имя модуля, где объявлена эта процедура в раздел uses вызывающего модуля. Большинство общих модулей уже перечислено в пункте uses модуля формы, таким образом, Вы не должны вручную добавлять dialogs.pas, чтобы использовать ShowMessage. Вложенные процедурыФункции и процедуры иногда содержат другие функции и процедуры в пределах своих блоков:
Вышеупомянутые два типа объявления процедур не связаны с классом или объектом. МетодыПроцедуры, которые связаны с классом, называют методами. Большинство методов используют экземпляры класса - объекты. Некоторые методы, называемые методами класса, работают в классах. Функция Add - метод класса TStringList. Например, метод Add объявляется как:
Процедурные типы и указатели процедурDelphi позволяет обрабатывать подпрограммы (функции и процедуры) как значения, которые могут быть назначены переменным. Рассмотрим отрывок кода:
В этом коде TDisplayerProc и TIntegerDisplayerFunc - процедурные типы Переменные dp и idp - указатели процедур. Обратите внимание, что функция DisplayDoubleInteger получает процедурный тип, как второй параметр (TDisplayerProc). Указатели методовПодобно указателям процедур, указатели методов ссылаются на методы экземпляра объекта.
Анонимные методыНачиная с Delphi 2006, язык Delphi знает также анонимные методы. Анонимный метод - процедура или функция, которая не связана с ассоциированным именем. Пример анонимных методов: сортировка объекта TList. |