Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Быстрое копирование файлов
   Категория: Файловая система
  Распознавание кодировки. Перекодировка.
   Категория: Текст и строки
  Как получить код HTM страницы зная ее URL
   Категория: Интернет и Сети
  Показать удаленные записи в DBase
   Категория: Базы данных
  Удаление файла в корзину
   Категория: Файловая система
  Удалить свой же exe-шник
   Категория: Приложение
  Компонент PopupMenu
   Категория: Компоненты

Delphi - Справочник: Interface

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 Interface
1. Unit Name;
Interface
Declarations...
Implementation
Declarations...
end.

2. type Name = Interface{(BaseInterface,...)};
Ключевое слово (Unit System)
Используется для внешних определений модуля, и как скелет класса
Описание:
Ключевое слово Interface используется двумя различными способами.

Версия 1:

Он начинает определение внешнего интерфейса модуля. Здешние объявления внешне видимы другими модулями. Все эти объявления должны быть осуществлены в разделе Implementation.

Раздел Uses, если он имеется, должен быть в начале.

Версия 2:

В Объектно-ориентированном программировании, мы часто используем методы Абстрактного класса (Abstract) в базовом классе как метка - заполнитель. Все полученные классы должны использовать эти методы. Беря этот шаг в дальнейшем, определения интерфейса группируются только по абстрактным свойствам и методам. Это обеспечивает шаблон для класса, для того чтобы использовать его в гарантированной совместимости. Это походит классу только с абстрактными методами. Это выгодно тем классам, которые основаны на одном родительском классе и использующим один или более интерфейсов. Это добавляет предсказуемости операции для каждого класса, который использует интерфейс.

Для получения большей информации по этой сложной теме смотрите справку Delphi.
Пример кода: Создание класса car от интерфейса vehicle

// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type // Определение интерфейса IVehicle = Interface(IInterface) // Свойства и их функции function GetAge : Integer; function GetMiles : Integer; property age : Integer read GetAge; property miles : Integer read GetMiles; // Функция без свойств function GetValue : Currency; end; // Выполнение этого интерфейса в классе car // Обратите внимание, что TInterfaceObject определяет для нас // QueryInterface, _AddRef, _Release функции TCar = Class(TInterfacedObject, IVehicle) private fAge, fMiles : Integer; fCarType : string; function GetAge : Integer; function GetMiles : Integer; public property age : Integer read GetAge; property miles : Integer read GetMiles; property carType : string read fCarType; // Функции без свойств function GetValue : Currency; published constructor Create(age, miles : Integer; carType : string); end; // Сам класс формы TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} // Конструктор Car constructor TCar.Create(age, miles: Integer; carType: string); begin // Сохраняем параметры fAge := age; fMiles := miles; fCarType := carType; end; // Получение возраста автомобиля function TCar.GetAge: Integer; begin Result := fAge; end; // Получение пробега автомобиля function TCar.GetMiles: Integer; begin Result := fMiles; end; // Вычисление цены автомобиля function TCar.GetValue: Currency; begin Result := 10000.0 - ((age * miles)/10.0); end; // Основная линия кода procedure TForm1.FormCreate(Sender: TObject); var car : TCar; begin // Создание car! car := TCar.Create(1, 2076, 'Honda Jazz'); // Показ текущей цены этой машины ShowMessageFmt('Мой автомобиль %s, возраст %d г, пробег %d миль, цена %m', [car.carType, car.age, car.miles, car.GetValue]); end; end.

Результат:
Мой автомобиль Honda Jazz, возраст 1 г, пробег 2076 миль, цена $9,792.40
Примечание:
При выполнении интерфейса, если вы не базируете ваш класс на том, которым уже осуществили их, типа TInterfacedObject, вы должны выполнить стандартные методы интерфейса QueryInterface, _AddRef и _Release.

  << Вернуться